用于将计算机加入域的 Powercli 脚本



我想要从具有所有模块的虚拟机运行Powercli脚本。 该脚本应将其他 VM 插入域。

$ScriptText ="Add-Computer -DomainName foofoo.com -DomainCredential " + $DomainC +"  -OUPath 'OU=CACI,OU=Computers,OU=bla,OU=Regions,DC=bla,DC=com'" 
echo $Script
Invoke-VMScript -vm $VMName -GuestCredential $AdminC -ScriptText $ScriptText 

正确插入所有变量。

润色Add-Computer -DomainName foofoo.com -DomainCredential $DomainC -OUPath 'OU=CACI,OU=Computers,OU=bla,OU=Regions,DC=bla,DC=com'从另一个虚拟机 Poweshell 控制台运行良好,输出消息WARNING: The changes will take effect after you restart the computer ..

$Script返回:

Add-Computer -DomainName foofoo.com -DomainCredential System.Net.NetworkCredential -OUPath 'OU=CACI,OU=Computers,OU=bla,OU=Regions,DC=bla,DC=com'

但在那之后这个脚本卡住了,我没有错误或其他输出。

知道

这是什么原因吗?

添加计算机 CMDlet 采用域凭据参数的凭据对象。 通过尝试将其转换为$scripttext变量中的字符串 - 您将在转换中丢失凭据类型。 您需要在脚本文本中创建一个凭据对象,而不是传入包含凭据对象的变量。这增加了一些复杂性,因为您通常希望从安全保管库中提取密码。 下面的示例显示了如何将密码作为纯文本包含 - 但由于明显的原因,并不真正建议这样做。

$scripttext = @'
$user = "UserName"
$password = ConvertTo-SecureString "bar" -AsPlainText -Force
$DomainC = New-Object PSCredential $user, $password
Add-Computer -DomainName foofoo.com -DomainCredential $DomainC -OUPath 'OU=CACI,OU=Computers,OU=bla,OU=Regions,DC=bla,DC=com'
'@
Invoke-VMScript -vm $VMName -GuestCredential $AdminC -ScriptText $ScriptText 

相关内容

  • 没有找到相关文章

最新更新