![](/img/trans.png)
[英]Need Assistance With a Powershell Script to Move a Computer Object in Active Directory to New OU As Soon as the Computer Object Gets Created in AD
[英]Move Computer to new OU in SCCM 2012 Task Sequence with Powershell
在SCCM任務序列中,如何將計算機移至新的OU?
要求:
由於這是一個“任務序列”步驟,因此該命令將在SCCM客戶端上本地執行,因此除非在該任務可能影響的每個系統上都安裝了該模塊,否則不能選擇使用Active-Directory模塊。
命令行執行默認為CMD.exe,強制執行痛苦的字符串轉義步驟。
在網上環顧四周,我發現了一篇博客文章 ,其中詳細介紹了SCCM允許在任務序列中執行稱為“運行命令行”的步驟。 但是,該博客文章解決方案不是獨立的命令行執行。
另外,我在嘗試Powershell解決方案將本地主機(任何非域控制器)移動到新的OU時,發現了一個帶有摘要的博客文章,其中提到使用ADSI而不是Active-Directory模塊。
將這些過程組合到單個命令行執行中,花費了一些時間,但是我能夠解決將CMD.exe字符串解析/轉義和Powershell字符串解析/轉義組合到單個命令行執行中的問題,該命令將在SCCM內運行任務序列。
命令行:
C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe -command iex \" `$TargetOU=\"\"OU=TargetOUName,DC=ConglomiCo,DC=com\"\"; `$SysInfo=New-Object -ComObject \"\"ADSystemInfo\"\";`$ComputerDN=`$SysInfo.GetType().InvokeMember(\"\"ComputerName\"\",\"\"GetProperty\"\",`$Null,`$SysInfo,`$Null);`$Computer=[ADSI]\"\"LDAP://`$ComputerDN\"\";`$OU=[ADSI]\"\"LDAP://`$TargetOU\"\";`$Computer.psbase.MoveTo(`$OU);" \"
注意:確保在“運行命令行”任務中指定具有適當權限的域帳戶:
此解決方案在命令行條目中包含目標OU,但是可以很容易地對其進行修改,以讀取注冊表項,文件系統上的文本文件等,其中可能包含目標OU DN。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.