1

次のように、 Win32_Processクラスを呼び出して、vbscript内からリモートWindowsサーバーで簡単なcmdユーティリティを実行しようとしています。

serverIP = "10.0.0.3"
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & serverIP & "\root\cimv2:Win32_Process")
RunCommand = "cmd.exe /c echo hello >c:\hello.txt"
wscript.echo RunCommand
intReturn = oWMI.Create(RunCommand, Null, Null, intProcessID)  
wscript.echo intReturn
Select Case intReturn
        Case 0 Wscript.Echo "Successful"
        Case 2 Wscript.Echo "Access denied"
        Case 3 Wscript.Echo "Insufficient privilege"
        Case 8 Wscript.Echo "Unknown failure"
        Case 9 Wscript.Echo "Path not found"
        Case 21 Wscript.Echo "Invalid parameter"
        Case Else Wscript.Echo "Unable to execute for unknown reason"
End Select

これは、privが不十分な場合は常に失敗します(戻りコード3)。

誰かが私が間違っていることを見ることができますか?スクリプトはドメイン管理者として呼び出されたcmdセッションから実行されているため、WMIのセキュリティについて完全に理解していないことがない限り、正常に機能するはずです。

PSEXECを提案する人もいるでしょう。私はそれを認識しており、それにフォールバックする可能性があります。しかし、これはそのままでは解決可能な問題のように思われるので、このスクリプトの外部実行可能ファイルへの依存関係を作成したくありません。

私が試したいくつかのことを述べます。

  • このフェロー、プロファイルがロードされていない場合、問題が発生する可能性があると述べています。呼び出し元のユーザー(ドメイン管理者)が両方のシステムにログインしている場合でも、同じ問題が発生します。
  • このスレッドで、Richard Muellerは、impersonationlevel=impersonateとauthenticationlevel=Pktの両方を指定する必要があると述べています。やってみました。まだ行きません。
  • このページでは、モニカ内で必要なNT権限を指定する必要があるようです。SeInteractiveLogonRight、SeNetworkLogonRight、SeBackupPrivilege、SeRestorePrivilege、SeDebugPrivilege、およびSeChangeNotifyPrivilegeを指定してみました。何も機能しませんでした。

これをグーグルで検索する際に私が気付いた共通のスレッドは、人々がこの問題を一部のターゲットコンピューターで見ているが、他のコンピューターでは見ていないということです。したがって、根本的に欠けているのは、このタスクを実行するために必要なセキュリティ特権の完全な内訳であるように思われます。ロリポップは、そのような内訳を確実に提供できる人に感謝して送られます!

視聴者数が増えることを期待するのは無駄です。.netの人々は同じWMIの問題を扱うことが多く、洞察を持っている可能性があるため、ここに.netタグを追加します。

ああ。バンプ、これはタンブルウィードにはなりませんよね?

4

4 に答える 4

2

同様の問題がありました。http://social.technet.microsoft.com/Forums/en-US/winserverManagement/thread/305557c4-df94-4d92-85bf-a049c83f120cからの提案が 役に立ちました。手短に: LOCAL SERVICE および NETWORK SERVICE アカウントに「プロセス レベルのトークンを置き換える」(SeAssignPrimaryTokenPrivilege) 権限が付与されていることを確認します。

于 2010-07-02T10:59:00.967 に答える
1

このページでは、モニカ内で必要な NT 権限を指定する必要があるようです。SeInteractiveLogonRight、SeNetworkLogonRight、SeBackupPrivilege、SeRestorePrivilege、SeDebugPrivilege、および SeChangeNotifyPrivilege を指定してみました。何も機能しませんでした。

上記の特権文字列を (NT 権限から直接) 使用しようとした場合、それは機能しないことに注意してください。WMI セキュリティ設定の表 6.8 に示されているモニカ特権を使用する必要があります。

(ただし、既にドメイン管理者であり、cmd.exe echo > file を実行しようとしている場合、それはほとんど問題ではありません)

于 2009-08-19T19:35:17.450 に答える
0

「MicrosoftWindows管理者向けの高度なVBScript」という本から抜粋したMSTechnetのこの詳細ページを確認してください。 具体的には、「第6章:DonJonesとJefferyHicksによるリモートスクリプト」であり、ターゲットデバイスがリモートスクリプト用に適切に構成されていることを確認する詳細が含まれています。 。

また、c:\ winnt \ system32 \ WBEM \ logs\wmiprov.txtもチェックしてください。次のようなものが表示されているに違いありません。

(Mon Jun 01 16:57:19 2009.2x) : ***************************************
(Mon Jun 01 16:57:19 2009.2x) : Could not get pointer to binary resource for file:
(Mon Jun 01 16:57:19 2009.2x) : C:\WINNT\system32\DRIVERS\wmiacpi.sys[MofResource](Mon Jun 01 16:57:19 2009.2x) : 
(Mon Jun 01 16:57:19 2009.2x) : ***************************************
于 2009-06-01T23:56:22.477 に答える
0

サーバー側のログイベントでエラーに関する詳細情報を見つけてください。これは、アクセス権の障害を診断したり、FileMonを使用してアクセスを監視したりするのに役立ちます。

于 2009-04-30T13:10:24.153 に答える