簡體   English   中英

使用Powershell將計算機移至SCCM 2012任務序列中的新OU

[英]Move Computer to new OU in SCCM 2012 Task Sequence with Powershell

在SCCM任務序列中,如何將計算機移至新的OU?

要求:

  • Powershell代替VBS
  • sccm客戶端系統上沒有“文件”

由於這是一個“任務序列”步驟,因此該命令將在SCCM客戶端上本地執行,因此除非在該任務可能影響的每個系統上都安裝了該模塊,否則不能選擇使用Active-Directory模塊。

命令行執行默認為CMD.exe,強制執行痛苦的字符串轉義步驟。

在網上環顧四周,我發現了一篇博客文章 ,其中詳細介紹了SCCM允許在任務序列中執行稱為“運行命令行”的步驟。 但是,該博客文章解決方案不是獨立的命令行執行。

另外,我在嘗試Powershell解決方案將本地主機(任何非域控制器)移動到新的OU時,發現了一個帶有摘要的博客文章,其中提到使用ADSI而不是Active-Directory模塊。

將這些過程組合到單個命令行執行中,花費了一些時間,但是我能夠解決將CMD.exe字符串解析/轉義和Powershell字符串解析/轉義組合到單個命令行執行中的問題,該命令將在SCCM內運行任務序列。

  • 在SCCM2012中:編輯任務序列時,單擊“添加”,“常規”,“運行命令行”

命令行:

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);" \"

注意:確保在“運行命令行”任務中指定具有適當權限的域帳戶:

  • SCCM客戶端系統上的管理執行權限
  • 具有移動計算機帳戶對象的AD權限
  • 寫入對目標OU的訪問權限

此解決方案在命令行條目中包含目標OU,但是可以很容易地對其進行修改,以讀取注冊表項,文件系統上的文本文件等,其中可能包含目標OU DN。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM