我工作的是一个Powershell脚本,它接受一个JSON文件来创建一个新的VM; JSON文件包含VM加入域并运行自定义脚本的说明。这两件事都会发生,但脚本以用户workgroup\system
运行,因此无法访问网络驱动器。
我是否可以采取措施确保在域加入完成之前脚本不会运行?如何最好地检测(从新VM本地)域加入完成?你如何延迟运行脚本直到更好的时间(像一次性的cron作业)?
更新:将问题分成两部分,另一半是here。
另外,非常感谢 Dewi Jones一个多小时的互动支持。我很感激能够只给出一个复选标记作为回报。
答案 0 :(得分:1)
获取域名,如果域名等于您加入的域名,则继续。
$domain = gc env:UserDNSDomain
While ($domain -neq "FQDN")
{
Start-Sleep -seconds 2
}
否则,您可以使用凭据调用脚本,如下所示
$username = 'user'
$password = 'password'
$PSArgs = 'Script file name'
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential $username, $securePassword
Start-Process Powershell.exe -Credential $credential $PSArgs