PowerShell start-sleep cmdlet

做~自己de王妃 提交于 2019-12-12 04:08:47

问题


Hey I am very new to PowerShell and found one of Ed Wilson's helpful scripts on his blog: http://blogs.technet.com/b/heyscriptingguy/archive/2012/11/12/force-a-domain-wide-update-of-group-policy-with-powershell.aspx.

I needed to customize it a little for my needs and just need some help getting the right code down.

I will just use his code because all I did was replace it with my credentials and AD info:

$cn = Get-ADComputer -filt *
$cred = Get-Credential iammred\administrator
$session = New-PSSession -cn $cn.name -cred $cred
icm -Session $session -ScriptBlock {gpupdate /force}

What I added was the next two lines to attempt to pause the script to allow the gpupdate to process then restart the computer(s):

Start-Sleep -s 120
Restart-Computer -ComputerName $cn.name

When I run the script all together it seems to just hang after I enter my credentials. My guess would be it doesn't like the way I present the Start-Sleep cmdlet because I can run the Restart-Computer cmdlet with success without Start-Sleep. The problem is it doesn't wait for gpupdate to finish so the policy doesn't get pushed. I do not get any errors when I run the script, it just hangs. I have left it running for about 10 minutes with no success.

I appreciate any help or suggestions to make this script work properly. Thanks in advance for any input.


回答1:


There's nothing wrong with your sleep invocation but it isn't the best way to go. You can wait on the job to finish with a timeout (in case the command hangs) e.g.:

$job = icm -Session $session -ScriptBlock {gpupdate /force} -AsJob
Wait-Job $job -Timeout 120
Remove-PSSession $session
Restart-Computer $cn.name



回答2:


@Keith Hill is right, sleep looks good. Another thing you can do is push the sleep/restart commands onto your target machines:

icm -Session $session -ScriptBlock {
    gpupdate /force; Start-Sleep -s 120; Restart-Computer -Force}


来源:https://stackoverflow.com/questions/23430615/powershell-start-sleep-cmdlet

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!