
ドメインに参加している 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$ に接続しログインした後に上記処理を試行しましたが、
シャットダウンが進みませんでした。
何卒よろしくお願いいたします。

No.2ベストアンサー
- 回答日時:
MapNetworkDrive はファイル共有サービスだから RPC とは別では?
win32shutdown rpc ファイアウォール
あたりのキーワードで検索してみてはどうでしょう。
この回答への補足
試したところ、サーバーの FW を無効にしても回避せず、また、WMI コマンドでも同一のエラーが表示されたことから、経路上で RPC サービスポートで使用される可能性のあるポートがシャットダウンされている可能性が高そうです。
そのため、この方法はあきらめることとなりました。
ご回答ありがとうございました。
ありがとうございます。
135 はさすがに許可されている気がしますが、RPC サービスポートは確かにふさがれてる可能性はありそうです。
設定を確認してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
以下のコードを実行しても、オ...
-
JSPの処理の途中で、JavaScript...
-
リクエスト結果が一瞬しか表示...
-
PowerPointで時計表示
-
列を非表示にするマクロが実行...
-
【JavaScript】DOMContentLoade...
-
VBA SORT Applyでエラー
-
innerHTMLなどの反映タイミング
-
VBA ステータスバー DoEvents
-
1つのVBAコードをすべてのコア...
-
〔Excel:VBA〕マクロの実行が異...
-
ラベルの色がかわってくれない
-
PDFフォームで条件つき金額を表...
-
JavaScriptでファイルの保存
-
JavaScriptで ブラウザの閉じる...
-
delete[]と、delete演算子の明...
-
VBS作動中のブラウザのmsgboxに...
-
Vba SelStart、SelLen教えてく...
-
Onclickイベントでデータをcgi...
-
VB.NET2003 テキストボックスに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
if(1){...}とはどういうことで...
-
JSPの処理の途中で、JavaScript...
-
JavaScriptでショートカットキ...
-
以下のコードを実行しても、オ...
-
デザイン時のVisible=Falseは実...
-
C#でボタン名を変更しても動く
-
〔Excel:VBA〕マクロの実行が異...
-
VBA ステータスバー DoEvents
-
リクエスト結果が一瞬しか表示...
-
ラベルの色がかわってくれない
-
1つのVBAコードをすべてのコア...
-
VBA SORT Applyでエラー
-
初心者です。gulpでコンパイル...
-
eval()の危険性の具体例を教え...
-
列を非表示にするマクロが実行...
-
PowerPointで時計表示
-
innerHTMLなどの反映タイミング
-
JavaScriptで、実行するたび値...
-
VB.netでタイマーがスタートし...
-
alert()が実行できない
おすすめ情報