ActiveDirectory内のコンピューターの詳細をその製造元とモデルの情報で更新するスクリプトのアイデアをいじっています。理想的には、このスクリプトでコンピューターアカウントを介してADにアクセスする必要があります。つまり、スクリプトを「NT Authority\NetworkService」として実行する必要があります。これは可能ですか?または、スクリプト/実行可能ファイルでNetworkServiceを偽装できますか?
"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のアクセス許可を更新するだけで、ユーザーは次のようにコンピューターオブジェクトの説明を変更できます。
私があなたが望むことをすることがどれほど実行可能であるか私にはわかりません。権限のエスカレーションは、StackOverflowで確認する方がよい場合があります。ただし、ローカル管理者としてスクリプトを実行しないもの。 DCを除いて、アカウントは存在します。\DCでは、ドメイン管理者またはこのタスクに対する制限された権限を持つ他のアカウントとして実行できます。
コンピューターがすでにADに存在する場合は、反対方向からこの問題にアプローチします。サーバー側では、コンピューターオブジェクトを介してイライラし、PsExecを使用して、リモートシステムで必要な情報を見つけて返します。
http://technet.Microsoft.com/en-us/sysinternals/bb897553.aspx
次に、タスクスケジューラを使用して必要なアクセス許可を持つアカウントでスクリプトを実行します。