【问题标题】:Simple Multiple Desktop restart script that logs and saves output记录和保存输出的简单多桌面重启脚本
【发布时间】:2021-10-30 09:56:16
【问题描述】:

我开始学习 powershell 及其所有压倒性的荣耀,并好奇如何拥有一个简单的脚本,例如:

restart-computer -ComputerName blahblah-mi  -force

我被要求能够吐出它使用的命令,任何错误,例如无法访问计算机,最后让它在指定路径中保存文件并注明日期。

我正在玩 start-Transcript 和 Stop,但我想在这里可能会得到比继续阅读我的书和谷歌搜索更好的回应。

*我也试过了:

restart-computer -ComputerName blahblah-mi  -force > c:\scripts\ranscripts\OUTPUT.txt

这运行了命令并给了我一个输出,但没有日期或什么命令,如果有任何问题,基本上只是一个名为 OUTPUT 的空白文本文件。

#这是为了工作,必须每周日完成

【问题讨论】:

  • 请提供一些您需要帮助的当前代码。另外,考虑阅读How do I ask a good question?
  • 抱歉第一次来这里,我更新了。
  • 没问题。大多数使用一开始都需要一些指导:)
  • 您不应该重定向输出或重新启动计算机。 Start-Transcript 仅存储您输入的命令,而不是结果。您似乎正在尝试编写日志文件。您需要使用 $Error 变量或 try{code} catch{handling} 结构来捕获错误,然后使用 Out-File 将相应的结果作为文本输出。

标签: powershell automation


【解决方案1】:
$Computer = 'blahblah-mi'
Restart-Computer -ComputerName $Computer -Force -ErrorVariable RestartError
if ($RestartError) {
    "$(Get-Date) - Error restarting $computer" | 
    Out-File c:\scripts\ranscripts\OUTPUT.txt -Append
}
else {
    "$(Get-Date) - Successfully restarted $computer" | 
    Out-File c:\scripts\ranscripts\OUTPUT.txt -Append
}

【讨论】:

  • 早上丹尼斯,哇没想到会有这么多帮助。谢谢你:D。你知道我可以附加到变量的计算机是否有限制吗?也许是带有名称的文本文件?由于与 python 如此不同,我正在努力完全掌握 powershell,我是初学者,但可以阅读并编写简单的东西。所以第一行是保存计算机的变量 $Computer 下一行是带有变量的命令,而不是带有 force 的名称,我还不熟悉 -errorvariable 重启错误道歉。有没有什么书或视频可以让你变得更好?
  • 不,只需将变量创建为字符串数组,[string[]]$Computer = @('c1',c2','c3','etc')。但在这种情况下,您需要解析$RestartError 变量以找出哪些计算机没有成功。或了解如何使用 foreach-object 或管道 (|)。
猜你喜欢
  • 2015-08-23
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 2012-02-22
相关资源
最近更新 更多