如何解决Powershell-关闭命令-捕获错误并记录错误
我仍然对Powershell还是很陌生,感谢大家,并且以前的一些文章我学到了很多东西,所以一切都是自学的。我需要一个脚本作为任务在中央计算机上运行,以确保所有其他脚本每天都关闭。我设法按需完成此工作。但是我看到了一个错误,我希望这里的人足够帮助您编辑脚本并解释所做的更改以及它们的总体工作原理!
该脚本根据需要运行。但是,如果计算机响应ping,则脚本会发送shutdown命令。 直到出现WinRM之类的问题或密码被使用之前,一切都很好。 该脚本将记录ping并在未关闭时将关闭记录为成功。我还没有解决的一点是如何捕获错误并将错误输出到文本文件中,以便稍后查看结果。
我尝试了几件事,但从未成功。我会先感谢大家,并保持安全
#shutdown machine
$susername = "User_Name"
$spassword = ConvertTo-SecureString "password" -AsPlainText -Force
$spsCred = New-Object System.Management.Automation.PSCredential -ArgumentList ($susername,$spassword)
############################################################################################
# running commands
cls
write-host "Shutting down netowrk machines
"
$currentTime = Get-Date -format "dd-MMM-yyyy HH:mm:ss"
write-host "$currentTime - Program Luanched."
Add-Content $PSScriptRoot\Shutdown_Log.txt "*****************************************************************************"
Add-Content $PSScriptRoot\Shutdown_Log.txt "$currentTime - Program Luanched."
$Computers = Get-Content $PSScriptRoot\PC_List.txt
Foreach ($Computer in $Computers)
{
#Ping Test. If PC is shut off,script will stop for the current PC in pipeline and move to the next one.
if (Test-Connection -ComputerName $Computer -Count 1 -Quiet)
{
# If responds. Do this....
write-host "$computer Responding - Continuing...."
Invoke-Command -ComputerName $computer -ScriptBlock { Shutdown /s /f /c "IT Daily Shutdown" } -credential $spsCred
$currentTime = Get-Date -format "dd-MMM-yyyy HH:mm:ss"
write-host "$currentTime - $computer - Responded. Shutting down machine..... "
Add-Content $PSScriptRoot\Shutdown_Log.txt "$currentTime - $computer - Responded. Shutting down machine..... "
} else {
# If no response - then do this.....
$currentTime = Get-Date -format "dd-MMM-yyyy HH:mm:ss"
write-host "$currentTime - $computer - did not respond,moving on.... "
Add-Content $PSScriptRoot\Shutdown_Log.txt "$currentTime - $computer - did not respond,moving on.... "
}
} # bottom of foreach loop
$currentTime = Get-Date -format "dd-MMM-yyyy HH:mm:ss"
write-host "$currentTime - Program Terminated."
Add-Content $PSScriptRoot\Shutdown_Log.txt "$currentTime - Program Terminated."
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。