blog


あくなき追求、深追いこそ永遠の目標

Windows Vistaのリモートデスクトップをマルチセッションに対応させる

Windows Vista

Windows Vista Business、Ultimate、Enterpriseにはリモートデスクトップサーバ機能を実装しているので、別のPC(リモートデスクトップクライアント)から遠隔ログインでき、Vista上で作業を行うことができる。でも、マルチセッションにVistaのどのバージョンも対応していないため、直接ログインしている状態で、遠隔よりリモートデスクトップログインを行うとすると、直接ログインしている人はログアウトしないといけない。Vistaはデフォルト状態だと、シングルセッションにしか対応していない。せっかくVista用にハイスペックマシンを購入したのに、同時に1人しか利用できないのは寂しい話だ。そうであれば、自宅のVistaをマルチセッションサーバにし試してみよう!
(※以下の作業は自己責任で)
(※対象はService Pack 1 があたっているVista Business、Ultimate、EnterpriseのOS)
(※そもそもリモートデスクトップは何ぞや?という方はネットで調べてみよう)

作業前に準備する事

  • バイナリエディタの用意
  • システムファイルのバイナリデータを書き換えるために、バイナリエディタが必要。お勧めは、Stirling。無料で使いやすいので、Vectorよりダウンロードしていただきたい

  • リモートデスクトップのシステムファイルをバックアップ を取る
  • C:\Windows\System32\termsrv.dllファイルをバックアップ
    (※termsrv.dllがリモートデスクトップサーバ機能)




    実作業

  • リモートデスクトップのシステムファイルをデスクトップにCOPYする
  • termsrv.dllはシステムファイルの為、C:\Windows\System32\termsrv.dllを直接バイナリエディタで開こうとしても権限をあたえられていないため、読み込めない。そこでデスクトップなどにCOPYして移動しておく

  • バイナリエディタで指定の箇所を書き換える
  • Stirlingを起動させファイル(F) => 開く(O)でtermsrv.dllを読み込む
    stirling

    検索・移動(S) => 指定アドレスへ移動(J)を選すると、16進数でアドレスを入力するボックスがでるので以下のアドレスを入力して置換していく

    [検索するアドレス]: [置換前の値] => [置換する値]
    0005FDF2: 74 => EB
    00064FD7: 8B => B8
    00064FD8: 81 => 00
    00064FD9: 38 => 01
    00064FDA: 06 => 00
    00064FDC: 00 => 90
    00064FDD: 39 => 89
    00064FDF: 3C => 38
    00064FE3: 75 => EB
    000701BA: 01 => 00
    

  • 修正したリモートデスクトップのシステムファイルを元のフォルダに上書きする
  • 指定箇所のデータを修正した、termsrv.dllを元のフォルダに上書きしようとすると、権限がない警告により上書きができない場合がある。そのときは、Administratorでログインしtermsrv.dllにプロパティ => セキュリティ => 編集よりアクセス許可を追加してやると上書きができるようになる



    確認

  • リモートデスクトップクライアントよりアクセスしてみる
  • Windows XP Profesionalなどのクライアントからモートデスクトップ接続してみると、今までシングルセッションでしかアクセスできなかった、Vistaマシンに対して、マルチセッションでログインできるようにあり画期的である


     
    投稿日:2008/06/02 | カテゴリ:Windows | コメント:(0)

    Vista時代の最新サーバーサイド開発事情 X-Dev 2007

    xdev

    X-Dev 2007に行ってまいりました。スケジュールの都合上参加できたのは【サーバサイド X フレームワーク】Vista時代の最新サーバーサイド開発事情という講義だけでした。備忘的にblogに残しておきたいと思います。後援者はWingsプロジェクト 代表の山田祥寛(やまだよしひろ)さん。

  • ユーザエクスペリエンスの重要性
  • Webアプリケーションで機能要件どおりのものを作成するのは、いまや当たり前で+αの付加価値をつけるべきである。それは何か?アプリケーションとしての使いやすさ、直感的なユーザインターフェースが必要
    当たり前といえば当たり前のことですが、時間 or お金の問題から毎回プロジェクトで実現することは難しく、またはどうすれば上記2点を実現できるか?昨今のテーマではあると思います



  • マイクロソフトのプレゼンテーション技術(UIを操作する技術の事)
  • マイクロソフトテクノロージとして以下のものあげられます

    ASP.NET AJAX

    Silverlight(旧WPF/E)

    Windowsフォーム(click once)

    WPF

    なんといってもRIAのSilverlightに期待です!!



  • WPF
  • .NET Framework 3.0で提供されるプレゼンテーション技術

    2D/3Dグラフィック、静止画像、動画コンテンツをリッチに表現可能

    XMLベースのマークアップ言語XAMLでUIの開発が可能

    XAMLをデザイナが習得すれば、プログラマはよりいっそうロジック部分に集中できるようになるかな?!



  • Silverlight
  • クロスプラットフォーム対応(Windows、MacOSXに対応します)

    対応ブラウザはIE、Firefox、Safari(Macに対応するのがうれしい!)

    WPFと共通のXAMLでの開発が可能

    開発言語は.NET対応言語から選択が可能(VB.NET、C#、IronRuby...)

    Siliverlight1.0ではJavaScriptのみ対応

    PHPやJavaEEなどの既存記述も容易である仕様

    Adobe Airに対抗する技術である

    .NETのクローン構築を目指すNovell傘下のオープンソースプロジェクト「Mono」を基盤に、Linux版Siliverlight「Moonlight」を構築する

    Aode AirとのRIA分野での一騎打ちの様相になるとにらんでいます。個人的にどっちをとって習得するかとなると、Silverlightかと思います。1.0はリリース(2007/9/5)されたばかりで一体どんなpluginか想像がつかないのですが、1.0以降のリリースには.NET開発言語での開発が可能になるということで、新しく言語を覚える必要もなく、既存の言語スキルでpluginを開発できるというところでしょうか。なら1.0もほぼJavaScriptということで、既存の技術ではあるのですが、マイクロソフトの初版リリースはどうもβテスト的な思いがありそうで、あまり使いたくないといったところです



  • Expression Studio
  • デザイナ向け開発ツール(VisualStudioのデザイナ版みたいなもの)

    visual Studioとの連携も容易(Expression Studioで開発したプロジェクトをVisual Studioから読み込むがことが可能)

    とうとうデザイナ領域にまで手を延ばし始めましたね。どちらかというと、Dream Weaver(Adove)に軍配があがっている分野であるが、Visual Studioとの親和性の高さを謳って、巻き返しを図れるかどうか?!みものです



  • ASP.NET AJAX
  • サーバ/クライアントを包括する総合的なAJAX対応フレームワーク

    基本的にJavaScriptの知識がなくても実装可能(要はVisualStudio側で隠蔽しているということ)

    Ajaxを使って、一部のHTMLを書き換えるという処理が簡単(Prototype.jsでいうAjax.Update機能を実現するのにPrototype.jsより簡単)

    何から何まで万能ではないので以下の点に注意が必要

      ☆JavaScriptを意識させない代わりに裏側の処理が重い(巨大なViewStateには気をつける)
      ☆何から何まで非同期で処理される危険性がある(テキストボックスの変更なども)
      ☆不要な処理はScriptManager.IsAsysncPostbackプロパティを使って識別する
      ☆TImer.Inervalプロパティには十分な間隔を指定
      ☆TImer.Inervalプロパティをエンドユーザによって入力させるようなロジックは避けるべきである
    JavaScriptを完全に意識しなくていいというのは簡単(サンプル程度)な処理でしかなくて、複雑なことをするには、やはりガリガリコードを書く必要があるので、JavaScriptを極める必要はないにしろ、言語仕様位は押さえておくべきかと思いました



  • Visual Studio 2008 + .NET Framework3.5
  • CSSサポート強化でプロパティウィンドでCSSの適用状態がより確認しやすく

    JavaScriptのデバッグ機能が大幅にUP!!

    マルチターゲッティングサポート(.NET Framework2.0/3.0/3.5の切り替えが可能に)

    LINQプロバイダにより、XML・RDBMS・Object・DataSetに対して一元メソッドにより同じようにアクセスしデータを取得できる

    マルチターゲッティング機能が、個人的には一番便利になるなーという印象でした。バージョン毎にVisualStudio2003、2005とインストールして保守しなくて済むようになりますので。折角なら、1.0/1.1にも対応してほしかったですが、それができないほど1.0/1.1と2.0以上のバージョン間で互換性が低いのでしょうか...

     
    投稿日:2007/09/12 | カテゴリ:Windows | コメント:(0)

    Windowsの80番ポートを占有しているのは誰だ?

    windowsXP

    仕事の関係で.NETの業務をこなすべくWindowsXPが入っているデスクトップPCに.NETの開発環境を構築する事になりました。 まずはWebサーバのIISのインストール。WindowsXP Proffesionalなので、

    [プログラムの変更と削除] ->[Windowsコンポーネントの変更と削除]-> [インターネットインフォメーションサービス(IIS)] にチェックを入れればなんなく、インストールできます。

    さて、IISの管理マネージャから起動させようとしたら、エラーで出て起動できません。そこで telnet localhost 80 とコマンドプロンプトでたたいてみたら、案の上、他のアプリが先に起動してて占有されているではありませんか。 そういえば、以前、Windows版Apache、Tomcatなどをテストで立ち上げていた記憶があったので、これら 悪戯なアプリ君達が起動しているのかと思い、調べましたが起動していませんでした??? ちょっぴり焦りました。

    netstat -b でlisten中のアプリケーションを調べるには上記コマンドで実現可能です。

    早速プロンプトでたたいてみると localhost:80 [Skype.exe] なんと、Skypeが占有しているではありませんか!!!listen portで80をあえて使うのは何故?! FW(ファイアウォール)でport:80しか許可されていない環境の相手と通信する為でしょうか、ぬかりがないですね。 さすがSkypeというべきかeBayですね。

    とりあえず、このままSkypeにport:80を使わせておくのはしゃくなので、 [ツール] ->[設定]-> [接続パラメータとプロキシの設定] -> [上記のポートに代わりポート80を使用する]にチェックが入っていたのを外し、Skypeには別のportの割りあえを行いました とりあえず、IISは起動できましたが、今回解決に時間がかかってしまったのは 思い込みがあったためだと思います。まさかWebサーバ以外のアプリケーションが占有しているはずがないという思い込みが。 ネットを調べると他にもSkype port:80占有のネタがありますね


     
    投稿日:2007/05/13 | カテゴリ:Windows | コメント:(0)