none
Windows Server 2008 R2のログオン/ログオフスクリプト(VBS)における%ClientName%取得について RRS feed

  • 質問

  • お世話になっております。

    Active Directory管理下(ADサーバ:Windows Server 2008 R2)においてグループポリシーでログオン/ログオフスクリプト(VBS)を動かしており、メンバサーバにログオン/ログオフするとリモートデスクトップの接続元コンピュータの名前を取得するようになっております。

    Windows Server 2000 SP4のメンバサーバにリモート接続すると接続したコンピュータ名は取得できるのですが、Windows Server 2008 R2のメンバサーバにリモート接続してもコンピュータ名が取得できずにおります。

    以下はスクリプトにて接続しているコンピュータ名を取得する部分です。

    Set WshShell = WScript.CreateObject("WScript.Shell")
    strClientName = WshShell.ExpandEnvironmentStrings("%ClientName%")

    %ClientName%が取得できないのはWindows Server 2008 R2特有の問題なのでしょうか?

    解決策をご教授いただけないでしょうか?

    以上、よろしくお願いいたします。

    • 移動 Jundan Wu 2012年10月3日 17:43 (移動元:Windows Server 2008 R2 全般)
    2012年1月14日 19:15

回答

  • Windows Server 2003までは問題なく動作しますが、Windows Server 2008以降はログオンスクリプト中で%ClientName%の取得が出来ないようです。

    ポリシーの[ユーザーの構成]-[管理用テンプレート]-[システム]-[ログオン]にある、「ユーザーのログオン時に実行するプログラムを指定する」から実行すると%ClientName%が使えるのですが、この場合UACの影響を受けるためか、ネットワーク共有から起動する場合に「開いているファイル セキュリティの警告」の警告が出てしまいますし、ここに設定するコマンドには%systemroot%などの環境変数が使えないようです。

    [過去にAnswersで同様の質問がありました]
    http://answers.microsoft.com/ja-jp/windows/forum/windows_xp-networking/%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87/0c085de1-7930-4b0e-8813-b1ab429c7b0e?page=2

    ※あくまでも実際に行ってみた結果なので、環境による違いや、別のいい方法があるのかもしれません。

    • 回答としてマーク 田中夢 2012年1月27日 1:37
    2012年1月15日 14:34
  • 同様のスクリプトを2008R2のリモートデスクトップで接続している状態で、ホストのデスクトップで実行してみたところ、問題なく、接続もとのPC名が取得できました。

    このスクリプトはログオン、ログオフスクリプトで実行とのことですが、リモート接続している状態のホストのデスクトップ上などで実行した場合も、PC名が取得できませんでしょうか。

    こんな情報もありましたので、参考までに

    http://rcmtech.wordpress.com/category/scripting/

    レジストリからPC名を取得する方法のようです。


    WIN1
    • 回答としてマーク 田中夢 2012年1月27日 1:37
    2012年1月15日 13:24

すべての返信

  • 同様のスクリプトを2008R2のリモートデスクトップで接続している状態で、ホストのデスクトップで実行してみたところ、問題なく、接続もとのPC名が取得できました。

    このスクリプトはログオン、ログオフスクリプトで実行とのことですが、リモート接続している状態のホストのデスクトップ上などで実行した場合も、PC名が取得できませんでしょうか。

    こんな情報もありましたので、参考までに

    http://rcmtech.wordpress.com/category/scripting/

    レジストリからPC名を取得する方法のようです。


    WIN1
    • 回答としてマーク 田中夢 2012年1月27日 1:37
    2012年1月15日 13:24
  • Windows Server 2003までは問題なく動作しますが、Windows Server 2008以降はログオンスクリプト中で%ClientName%の取得が出来ないようです。

    ポリシーの[ユーザーの構成]-[管理用テンプレート]-[システム]-[ログオン]にある、「ユーザーのログオン時に実行するプログラムを指定する」から実行すると%ClientName%が使えるのですが、この場合UACの影響を受けるためか、ネットワーク共有から起動する場合に「開いているファイル セキュリティの警告」の警告が出てしまいますし、ここに設定するコマンドには%systemroot%などの環境変数が使えないようです。

    [過去にAnswersで同様の質問がありました]
    http://answers.microsoft.com/ja-jp/windows/forum/windows_xp-networking/%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%87/0c085de1-7930-4b0e-8813-b1ab429c7b0e?page=2

    ※あくまでも実際に行ってみた結果なので、環境による違いや、別のいい方法があるのかもしれません。

    • 回答としてマーク 田中夢 2012年1月27日 1:37
    2012年1月15日 14:34
  • こんにちは。
    フォーラム オペレーターの田中夢です。
     
    WIN1 さん、OMEGAT さん
    参考になるアドバイスをありがとうございます。
     
    325po5 さん
    質問を投稿されてからしばらく経過しましたが、その後皆様の投稿をご覧になっていただけましたか?
    こちらのご質問につきましては、WIN1 さんと OMEGAT さんのアドバイスを参考にしていただけたのではないかと思われますので、勝手ながら私のほうで [回答としてマーク] とさせていただきますね。


    OMEGAT さんがご紹介くださっている Answers のスレッドに記載されているように、まずはグループポリシーで「ユーザーのログオン時に実行するプログラムを指定する」で実行する vbs ファイルを指定して正常に動作するかどうかを試してみてはいかがでしょうか?

    また、私の方でも何かご紹介できる情報がないか国内外のサイトを探してみたところ、下記のサイトでWindows Server 2008 で %ClientName% を取得する VBScript を紹介していました。
    こちらの記事は WIN1 さんがご紹介しているサイトの別の記事のようなのですが、ご参考までにご紹介させていただきますね。

    <参考情報>
    - How to get ClientName within logon script on Server 2008 R2 XenApp 6
    http://rcmtech.wordpress.com/2011/06/09/how-to-get-clientname-within-logon-script-on-server-2008-r2-xenapp-6/


    今後とも TechNet フォーラムをどうぞよろしくお願いします。
    ---------------------------------------------------------------------
    日本マイクロソフト株式会社 フォーラム オペレーター 田中夢

    2012年1月27日 1:37