
□やりたいこと
2台のXP環境で、WSHを使用してリモートスクリプトを実行させたい
(ローカルサーバAからリモートサーバBでJBSを実行)
□事象
サーバAのVBS(rmt_local.vbs)を起動したところ、
CreateScript実行時に以下のエラーとなります。
【エラーメッセージ】
429 ActiveX コンポーネントはオブジェクトを作成できません。
□質問
原因と対応方法を知りたい。
下記の設定以外になにが影響しているのか?
□環境
【ローカルサーバA】
OS:WindowsXP Professional Version 2002 SP3
WSH:Version5.8
ドメイン:WORKGROUP
【リモートサーバB】
OS:WindowsXP Professional Version 2002 SP3
WSH:Version5.8
ドメイン:WORKGROUP
【スクリプト配置】
ローカルサーバAのC:\TESTにのみスクリプト(1)と(2)を格納している
リモートサーバBにはC:\TESTのフォルダのみ作成している
□設定関連
●ローカルとリモートで設定
ファイアウォール設定(DCOM、wsdcript.exeを通す)
ドメインプロファイルの設定でリモート管理の例外を許可
実行ユーザをAdministratorsグループに追加
●ローカルのみ設定
COMセキュリティのアクセス許可で「ANONYMOUS LOGIN」のリモートアクセスを許可
●リモートのみ設定
レジストリ:HKEY\LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
の下のforceguest(文字列値)に0を設定
レジストリ:HKEY\LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings
の下にRemote(文字列値) を作成して1を設定
COMセキュリティのアクセス許可でEveryoneグループの「リモートアクセス」を許可
COMセキュリティの起動許可でAdminstratorsグループの「リモートからの起動」と
「リモートからのアクティブ化」を許可
================================================================
□スクリプト(1)
【rmt_local.vbs】
Option Explicit
On Error Resume Next
Dim objWshCtrl ' WshController オブジェクト
Dim strRemotePC ' リモートのコンピュータ名
Dim strScript ' 実行するスクリプトファイル
Dim objExecCmd ' 実行コマンド情報
Set objWshCtrl = WScript.CreateObject("WshController")
If Err.Number = 0 Then
strRemotePC = "B"
strScript = "rmt_remote.vbs"
Set objExecCmd = objWshCtrl.CreateScript(strScript, strRemotePC)
If Err.Number <> 0 Then
Set objExecCmd = Nothing
WScript.Echo "エラー: CreateScript " & Err.Description
WScript.Echo "異常終了しました。"
Else
WScript.Echo strRemotePC & " で " & strScript & " を実行します。"
objExecCmd.Execute
Do While objExecCmd.Status = 1
WScript.Sleep(100)
Loop
WScript.Echo "正常終了しました。"
End If
Else
WScript.Echo "エラー: CreateObject " & Err.Description
End If
Set objExecCmd = Nothing
Set objWshCtrl = Nothing
================================================================
□スクリプト(2)
【rmt_remote.vbs】
Option Explicit
On Error Resume Next
Dim objFSO ' FileSystemObject
Dim objFile ' ファイル書き込み用
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\TEST\test.log", 8, True)
objFile.WriteLine Now()
objFile.Close
Set objFile = Nothing
Set objFSO = Nothing
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ワークグループ内のWindows XP Pro SP2同士で、WSHのリモート操作を行う(別のコンピュータにスクリプトを送って実行する)実験に成功した経験があります。
私は下記の@ITの記事を見て設定しました。WshControllerオブジェクトの詳細
http://www.atmarkit.co.jp/fwin2k/operation/wsh09 …
wscript -regserver コマンドは実行されているでしょうか。Windows XPにはバグがあるようです。
http://support.microsoft.com/kb/311269/ja
その他「wscript regserver」で検索してみて下さい。
また、レジストリのforceguestは文字列値 REG_SZではなくDWORD値 REG_DWORDです。
SHIMAPEEさん
回答と指摘をありがとうございます
上記の内容+下記の設定をすることで
成功するようになりました。
リモート側で「ローカル セキュリティ設定」の
「ネットワークアクセス: ローカルアカウントの共有とセキュリティモデル」を「クラシック ローカルユーザがローカルユーザとしてログオンする」に設定
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
[teraterm] waitコマンドで停止...
-
「読み取りと実行」と「読み取...
-
VB.NET「閉じられたファイルに...
-
バッチファイルの内容を表示さ...
-
複数のbatファイルを自動実行し...
-
VBScript(WHS)でWMIを使ってリ...
-
Excel VBAで複数のバッチファイ...
-
VBScriptでコマンドプロンプト...
-
バッチファイルが不正終了して...
-
VBscriptが起動しない?
-
エクセル フォルダの画像を画...
-
ホームページのリンクからプロ...
-
シェルスクリプトを実行したい
-
batからexeを実行し戻り値を受...
-
VScodeのエラー解決法 Pythonの...
-
pythonスクリプトを管理者権限...
-
VB.NETでのDOSコマンドを実行に...
-
実行中のログをフォームのテキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
複数のbatファイルを自動実行し...
-
これってパソコンの最適化が完...
-
Windows System32 Security Hea...
-
「読み取りと実行」と「読み取...
-
バッチファイルの内容を表示さ...
-
VBscriptが起動しない?
-
exeファイルを実行するとコマン...
-
Access の VBA 実行中に他の操...
-
Excel(エクセル) VBA プロシー...
-
PDFファイルを開き、印刷し、閉...
-
ネットワーク名が見つかりません
-
pythonスクリプトを管理者権限...
-
エクセル フォルダの画像を画...
-
VBScriptでコマンドプロンプト...
-
Excel VBA ステップインが途中...
-
WSH.Run の処理内容をテキスト...
-
バッチファイルが不正終了して...
-
ExcelのVBAが特定のPC上でのみ...
おすすめ情報