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 (将#修改为@)