資格情報をVBScriptのWMI呼び出しに渡します
-
30-09-2019 - |
質問
HTA内にVBScriptがあり、ローカルWMIコールからpingステータスを取得します。また、リモート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
それは大まかにそれが何であるか、明らかに私は変数を宣言し、別の日付関数などを持っています。
これは、私がローカル管理者であるために「localhost」と呼ばれる場合に機能します。ただし、リモートサーバーにWMI呼び出しを行う場合、これはAD Adminアカウントを使用してローカルマシンにログインした場合にのみ機能します。
ユーザーにユーザー名とパスワードを求めて、それをWMIコールに渡して、管理者の詳細だけを使用して誰かとして機能する方法はありますか?
解決
のように見えます swbemlocator.connectserver メソッドを使用すると、リモートコンピューターに接続するときにユーザー名とパスワードを指定できます。使用する必要がある構文は似ているようです。 objWMIService
異なるオブジェクト:
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer("MachineName", "root\cimv2", "Username", "Password")
Googleで「wbemscripting.swbemlocator」を検索する場合、より多くのドキュメントが利用できます
他のヒント
ドメイン管理者として、アカウントに追加の権利を追加することができます。これにより、他のユーザーとしてプロセスを開始できます。 ADのこの権利は、「ユーザーが代表団に信頼されることを許可する」と呼ばれます。それは非常に強力です。これは、別のユーザーとしてタスクを実行する唯一の正当な方法です。このリンクを参照して、正しいものを設定します。
所属していません StackOverflow