powershell - Powershell中的for循环执行x个不同的服务器重启
问题描述
我试图使用 PowerShell 脚本执行 x 个不同的服务器重新启动,但是一旦它到达我的 for 循环,它就结束了,我不知道我在哪里犯了错误。
代码:
$x = Read-Host "How much you want to restart"
for ($i=0; $i -eq $x; $i++)
{
$name = read-host "Enter Servername" $i "to restart"
Restart-Computer -ComputerName $name -wait
write-host "Server" $name "restarded"
}
编辑:谢谢我更正的答案,$i++
但在输入数字后它仍然会立即结束。
解决方案
将重启代码与收集 COMPUTERNAME 分开封装可能会有所帮助。这样就可以从提示输入名称的脚本或任何其他方法创建计算机列表。
如果您确信将重新启动正确的计算机,请-WhatIf
从Restart-Computer
cmdlet 中删除 。
=== 重启.ps1
[cmdletbinding()]
Param (
[Parameter(Mandatory = $true, Position = 0)]
[string[]]$ComputerName
)
foreach ($Computer in $ComputerName) {
Write-Information "reboot $Computer"
Restart-Computer -ComputerName $Computer -Wait -WhatIf
}
然后,它可以使用:
Do-Reboot -ComputerName SERVER1,SERVER2,SERVER3
如果您想在每次重新启动时在控制台上看到某些内容,请使用:
Do-Reboot -ComputerName SERVER1,SERVER2,SERVER3 -InformationAction Continue
如果您在文本文件中有服务器列表,则可以使用它。
Do-Reboot -ComputerName $(Get-Content -Path '.\rebootlist.txt')
推荐阅读
- python - 无法将 STR 更改为 FLOAT 以从 Excel 求和
- html - 使用 gcloud 部署的网页出现 404 错误?
- ruby-on-rails - 无法使用 rails 6 actiontext 渲染 youtube 嵌入 iframe
- reactjs - gatsby graphql 查询在开发和生产中产生不同的结果
- powershell - 无法识别通过 powershell 的 Microsoft Graph API 查询参数
- python - 如何打印存储对象的对象列表的属性?
- laravel - Laravel 5:找不到类权限
- regex - 如何替换仅出现在某些内容之间的分隔符?
- python - 如何使用应用程序将 .py 转换为 .exe?
- angular8 - 在角度 8 中使用 dl-date-time-picker 重置日期选择器视图