web-dev-qa-db-ja.com

「NT Authority \ NetworkService」としてプロセスを実行するにはどうすればよいですか?

ActiveDirectory内のコンピューターの詳細をその製造元とモデルの情報で更新するスクリプトのアイデアをいじっています。理想的には、このスクリプトでコンピューターアカウントを介してADにアクセスする必要があります。つまり、スクリプトを「NT Authority\NetworkService」として実行する必要があります。これは可能ですか?または、スクリプト/実行可能ファイルでNetworkServiceを偽装できますか?

5
bshacklett

Devxexecを使用できます: http://blog.developex.com/?p=105

例えば:

devxexec.exe/user:NETWORK_SERVICE cmd

6
Mak

"The Scripting Guy"は既にこの質問に回答しています: http://www.Microsoft.com/technet/scriptcenter/resources/qanda/apr05/hey0429.mspx

マシンのモデル番号を取得するには、WMI呼び出しを含める必要があります...

私の実装は次のようになりました:

Set objSysInfo  = CreateObject("ADSystemInfo")
Set objUser     = GetObject("LDAP://" & objSysInfo.UserName)
Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName) 

If objComputer.operatingSystem = "Windows*Server*" Then
    Quit
Else
    strMessage = objUser.CN & " logged on to " & objComputer.CN & " " & Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time & "." 

    objComputer.Description = strMessage
    objComputer.SetInfo 
End If

次のコマンドを使用して、GPOから上記のスクリプトを呼び出します:[ユーザーの構成]-> [Windowsの設定]-> [スクリプト]-> [ログオン]

次に、OUのアクセス許可を更新するだけで、ユーザーは次のようにコンピューターオブジェクトの説明を変更できます。 screencap

2
lluke

私があなたが望むことをすることがどれほど実行可能であるか私にはわかりません。権限のエスカレーションは、StackOverflowで確認する方がよい場合があります。ただし、ローカル管理者としてスクリプトを実行しないもの。 DCを除いて、アカウントは存在します。\DCでは、ドメイン管理者またはこのタスクに対する制限された権限を持つ他のアカウントとして実行できます。

0
cwheeler33

コンピューターがすでにADに存在する場合は、反対方向からこの問題にアプローチします。サーバー側では、コンピューターオブジェクトを介してイライラし、PsExecを使用して、リモートシステムで必要な情報を見つけて返します。

http://technet.Microsoft.com/en-us/sysinternals/bb897553.aspx

次に、タスクスケジューラを使用して必要なアクセス許可を持つアカウントでスクリプトを実行します。

http://technet.Microsoft.com/en-us/library/cc721871.aspx

0
boyonwheels