6

ローカル WMI 呼び出しから ping ステータスを取得する HTA 内に VBScript があります。また、リモート PC の最後の再起動時刻を取得する関数もあります。

Function GetReboot(strComputer)
    Set objWMIService = GetObject _
        ("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colOperatingSystems = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")
    For Each objOS in colOperatingSystems
        dtmBootup = objOS.LastBootUpTime
        dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
        dtmSystemUptime = DateDiff("h", dtmLastBootUpTime, Now)
        Wscript.Echo dtmSystemUptime
    Next
    GetReboot = dtmLastbootupTime
End Function

それは大まかに言えば、明らかに変数を宣言し、別の日付関数などを持っています..

これは、私がローカル管理者であるため、WMI で "localhost" を呼び出すと機能します。ただし、リモート サーバーへの WMI 呼び出しを行う場合、AD 管理者アカウントでローカル マシンにログインしている場合にのみ機能します。

ユーザーにユーザー名とパスワードの入力を求め、それを WMI 呼び出しに渡して、管理者の詳細だけで誰でも機能するようにする方法はありますか?

4

2 に答える 2

7

SWbemLocator.ConnectServerメソッドを使用すると、リモートコンピューターに接続するときにユーザー名とパスワードを指定できるようです使用する必要のある構文は似ているようです。objWMIServiceオブジェクトを別の方法で作成する必要があります。

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
Set objWMIService = objSWbemLocator.ConnectServer("MachineName", "root\cimv2", "Username", "Password")

Googleで「WbemScripting.SWbemLocator」を検索すると、より多くのドキュメントが利用可能になります

于 2010-10-14T04:31:15.683 に答える
0

ドメイン管理者として、他のユーザーとしてプロセスを開始できる追加の権利をアカウントに追加できます。AD におけるこの権利は、「ユーザーが委任に対して信頼されることを許可する」と呼ばれます。それは非常に強力です。これは、別のユーザーとしてタスクを実行する唯一の正当な方法です。右に設定するには、このリンクを参照してください。

http://support.microsoft.com/kb/932455

于 2012-08-27T23:27:00.887 に答える