使用powershell中的变量关闭/重启命令

时间:2015-02-23 15:32:23

标签: powershell cmd shutdown reboot

我正在使用我的工具中的GUI重启模块。 我想使用命令提示符" shutdown"这个命令行。 其目的是取代" shutdown -i"在多个服务器上然后我可以自动ping它们以检查重启是否成功。

在CMD中,命令行如下所示:

shutdown /r /t 30 /m \\server /c "reboot reason"

在我的剧本中,我会要求:

  • reason = $ comment
  • time = $ time(值,如果需要,也可以在复选框中)
  • 服务器名称= $ server

我将测试一些"如果" s时间选项,是否检查并且重启原因不为空,然后将所有这些添加到变量:

$reboot = "/r /t " + $time + "/m \\" + $server + "/c " + $comment

然后在powershell中的命令中使用该变量:

& shutdown $reboot

我的问题是这会有效吗?有没有人像这样使用它?或者有更好的方法吗? 我几天都无法测试它,因为我现在没有任何服务器可以在网络上自动重启。

1 个答案:

答案 0 :(得分:1)

应该有用,是的。我还建议使用数组作为参数来保持它的清洁。

$time = 120
$server = "mycomputer"
$comment = "this is my comment."
$reboot = @("/r", "/t", $time, "/m", "\\$server", "/c", $comment)

& shutdown $reboot

或者您可以尝试使用WMI(未经测试):

$time = 120
$comment = "this is my comment."
$server = "mycomputer"

Invoke-WmiMethod -ComputerName $server -Class Win32_OperatingSystem -Name Win32ShutdownTracker -ArgumentList @($time, $comment, 0, 2)