ドメインに参加している WinXP クライアントから、ワークグループ環境の複数台の Windows Server 2003 (主に) に対して ping を実行し、ping に対して応答があった場合はシャットダウンするスクリプトを記述したいと考えています。

# ワークグループ環境の Windows Server 2003 は検証環境で、社内セキュリティポリシーの運用上ドメインに参加できません。

この場合、
1. 複数のマシンに ping を打つ
2. 1 で応答がかえってくれば管理者の資格情報を使用してログイン
3. シャットダウンを実行
という流れになると思います。

そして、最終的には 1 が成功した場合に If 構文で 2、および、3 を実行する、という
ように書けば一連の処理は成功すると考えています。

現在上記 1~3 の処理で細分化し、それぞれについて動作確認をとっています。
しかし、2、および、3 を実行してもうまくいかないため、これらについて伺いたく
質問させていただきます。

2 について

以下の構文を組んでいますが、vbs を実行すると、後述のエラーダイアログが表示されます
(対象 PC やアカウント名などはダミーとご認識ください)。
別の資格情報 (接続先マシンの管理者アカウント) を指定して接続できるコードをご教授ください。

-----
Const WbemAuthenticationLevelPktPrivacy = 6

strComputer = "atl-ws-01"
strNamespace = "root\cimv2"
strUser = "Administrator"
strPassword = "4rTGh2#1"

Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer (strComputer, strNamespace, strUser, strPassword)
objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy

Set colItems = objWMIService.ExecQuery ("Select * From Win32_OperatingSystem")
For Each objItem in ColItems
Wscript.Echo strComputer & ": " & objItem.Caption
Next
-----

エラー : RPC サーバーを利用できません。
コード : 800706BA
ソース : SWbemLocator

3 について

以下の構文を組んでいますが、エラーは表示されないものの、シャットダウンが開始されません。

-----
On error resume Next

Const LogOff = 0 'ログオフ
Const REBOOT = 2 '再起動
Const SHUTDOWN = 8 'シャットダウン

Dim objWMIService
Dim colOperatingSystems
Dim objOperatingSystem
Set objWMIService = GetObject("winmgmts:{impersonationLevel= impersonate,(Shutdown)}\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
objOperatingSystem.Win32Shutdown(SHUTDOWN)
Next
Set objWMIService = Nothing
Set colOperatingSystems = Nothing
Call ErrorCheck
End Function
-----

また、試しに objNetwork.MapNetworkDrive を使用してサーバーの IPC$ に接続しログインした後に上記処理を試行しましたが、
シャットダウンが進みませんでした。

何卒よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

MapNetworkDrive はファイル共有サービスだから RPC とは別では?


win32shutdown rpc ファイアウォール
あたりのキーワードで検索してみてはどうでしょう。

この回答への補足

試したところ、サーバーの FW を無効にしても回避せず、また、WMI コマンドでも同一のエラーが表示されたことから、経路上で RPC サービスポートで使用される可能性のあるポートがシャットダウンされている可能性が高そうです。

そのため、この方法はあきらめることとなりました。
ご回答ありがとうございました。

補足日時:2011/04/22 18:37
    • good
    • 0
この回答へのお礼

ありがとうございます。
135 はさすがに許可されている気がしますが、RPC サービスポートは確かにふさがれてる可能性はありそうです。

設定を確認してみます。

お礼日時:2011/04/15 23:52

ファイアーウォールとか。

    • good
    • 0
この回答へのお礼

ありがとうございます。
ただ、FW だとすると、.MapNetworkDrive でもサーバーに接続することはできないのではないかと考えられます。

RPC で最初に接続するので TCP135 を確認する、ということを示唆されていらっしゃいますでしょうか。FW である場合、どこのポートを確認すればよいでしょうか (本当はパケットを採取できれば FW の影響かどうかはわかりますが、アプリをインストールできないので質問させていただいています)。

お礼日時:2011/04/14 19:33

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング