PowerShell启动睡眠cmdlet
嘿,我对PowerShell很陌生,在他的博客上找到了Ed Wilson的一个有用脚本: 我需要根据自己的需要对它进行一些定制,只是需要一些帮助来下载正确的代码 我将只使用他的代码,因为我所做的只是将其替换为我的凭据和广告信息:PowerShell启动睡眠cmdlet,powershell,sleep,cmdlet,Powershell,Sleep,Cmdlet,嘿,我对PowerShell很陌生,在他的博客上找到了Ed Wilson的一个有用脚本: 我需要根据自己的需要对它进行一些定制,只是需要一些帮助来下载正确的代码 我将只使用他的代码,因为我所做的只是将其替换为我的凭据和广告信息: $cn=Get-ADComputer-filt* $cred=获取凭据iammred\administrator $session=New PSSession-cn$cn.name-cred$cred icm-会话$Session-脚本块{gpupdate/force}
$cn=Get-ADComputer-filt*
$cred=获取凭据iammred\administrator
$session=New PSSession-cn$cn.name-cred$cred
icm-会话$Session-脚本块{gpupdate/force}
我添加了下面两行,尝试暂停脚本以允许gpupdate处理,然后重新启动计算机:
开始睡眠-s 120
重新启动计算机-ComputerName$cn.name
当我一起运行脚本时,它似乎在我输入凭据后挂起。我的猜测是,它不喜欢我展示Start-Sleep cmdlet的方式,因为我可以在没有Start-Sleep的情况下成功运行Restart-Computer cmdlet。问题是它没有等待gpupdate完成,因此策略不会被推送。我运行脚本时没有收到任何错误,它只是挂起。我让它运行了大约10分钟,但没有成功
我感谢任何帮助或建议,使这个脚本正常工作。提前感谢您的输入。您的睡眠调用没有问题,但这不是最好的方法。您可以等待作业完成并超时(如果命令挂起),例如:
@基思·希尔是对的,睡眠看起来不错。您可以做的另一件事是将sleep/restart命令推送到目标机器上:
icm -Session $session -ScriptBlock {
gpupdate /force; Start-Sleep -s 120; Restart-Computer -Force}
谢谢。非常好,感谢您提供了有关如何使用-AsJob cmdlet的示例。我已经阅读了该示例,但不知道如何正确使用它。当我添加此代码时,出现了一个错误,表示客户端无法连接到目标。我验证了我要测试的机器正在通过winrm quickconfig接受请求。我还需要做什么?顺便谢谢你的帮助。
icm -Session $session -ScriptBlock {
gpupdate /force; Start-Sleep -s 120; Restart-Computer -Force}