2

私は、フィールド サービス技術者がプライベート ワークステーション OU 内のコンピューターをチーム ワークステーション OU に、またはその逆に変換できるようにする、私が勤務する会社向けのスクリプトのパッケージ化に取り組んでいます。

それは今のところこのスクリプトのほんの一部であり、1 日のほとんどの間、私を困惑させてきました。このスクリプトのさまざまなバリエーションを試してみたところ、正しい軌道に乗ると思われるスクリプトにたどり着きました。

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colItems = objWMIService.ExecQuery("Select Name from Win32_ComputerSystem",,48) 
For Each objItem in colItems 
strPCName = objItem.Name 
Next 
Set objNewOU = GetObject("LDAP://OU=Computers,OU=Corporate,DC=xxxxx,DC=net") 
Set objMoveComputer = objNewOU.MoveHere("LDAP://CN=" & strPCName & ",OU=Computers,OU=Corporate,DC=xxxxx,DC=net",vbnullstring) 

サーバー上にそのようなオブジェクトはありませんというエラーが表示されます。問題の OU にコンピューターを手動で配置すると、そのエラー メッセージが表示されません。これは私が現時点で立ち往生しているところです。

スクリプトは現在、私の個人的な研究室にあります。

4

1 に答える 1

1

次のスクリプトを使用して、うまくいく解決策を得ることができました。

Set objSysInfo = CreateObject("ADSystemInfo") 
strComputerDN = objSysInfo.ComputerName

Set objNewOU = GetObject("LDAP://OU=Private Workstations,OU=xxxx,OU=xxxx,DC=xxxx,DC=xxxx") 
Set objMoveComputer = objNewOU.MoveHere _ ("LDAP://" & strComputerDN, vbNullString)

スクリプトの動作から判断すると、スクリプトは strComputerDN を使用してコンピューターの場所を特定し、objNewOU を使用してコンピューターの移動先を特定します。objmoveComputer は、コンピューターをその OU に移動することを決定できる限り、この情報を統合します。

于 2016-02-22T16:18:08.680 に答える