Shutdown/restart 在 powershell 中使用变量的命令
Shutdown/restart command using a variable in powershell
我正在使用我的工具开发 GUI 重启模块。
为此,我想使用命令提示符 "shutdown" 命令行。
它的目的是替换多个服务器上的 "shutdown -i" 然后我可以自动 ping 它们以检查重启是否成功。
在 CMD 中,命令行如下所示:
shutdown /r /t 30 /m \server /c "reboot reason"
在我的脚本中,我将要求:
- 原因=$评论
- time = $time(该值以及是否需要也位于复选框中)
- 服务器名称=$服务器
我会测试几个"if"s时间选项,是否选中,重启原因不为空,然后将它们全部添加到一个变量中:
$reboot = "/r /t " + $time + "/m \" + $server + "/c " + $comment
然后在powershell命令中使用变量:
& shutdown $reboot
我的问题是这行得通吗?有人这样用过吗?或者有更好的方法吗?
我几天没法测试它,因为我现在网络上没有任何可以重新启动的服务器。
应该可以,是的。我还建议使用数组作为参数以保持其清洁。
$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)
我正在使用我的工具开发 GUI 重启模块。 为此,我想使用命令提示符 "shutdown" 命令行。 它的目的是替换多个服务器上的 "shutdown -i" 然后我可以自动 ping 它们以检查重启是否成功。
在 CMD 中,命令行如下所示:
shutdown /r /t 30 /m \server /c "reboot reason"
在我的脚本中,我将要求:
- 原因=$评论
- time = $time(该值以及是否需要也位于复选框中)
- 服务器名称=$服务器
我会测试几个"if"s时间选项,是否选中,重启原因不为空,然后将它们全部添加到一个变量中:
$reboot = "/r /t " + $time + "/m \" + $server + "/c " + $comment
然后在powershell命令中使用变量:
& shutdown $reboot
我的问题是这行得通吗?有人这样用过吗?或者有更好的方法吗? 我几天没法测试它,因为我现在网络上没有任何可以重新启动的服务器。
应该可以,是的。我还建议使用数组作为参数以保持其清洁。
$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)