[英]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.