【发布时间】:2017-06-21 05:39:44
【问题描述】:
我正在使用下面的 PowerShell 脚本将服务器电源计划设置为高性能模式。问题是,即使在通过文本文件(Servers.txt)传递服务器名称之后,它也只对我正在执行脚本的服务器进行更改。我已经使用foreach 循环遍历服务器列表,但仍然没有运气。不知道我在哪里错过了逻辑,有人可以帮忙。提前致谢。
$file = get-content J:\PowerShell\PowerPlan\Servers.txt
foreach ( $args in $file)
{
write-host "`r`n`r`n`r`nSERVER: " $args
Try
{
gwmi -NS root\cimv2\power -Class win32_PowerPlan -CN $args | select ElementName, IsActive | ft -a
#Set power plan to High Performance
write-host "`r`n<<<<<Changin the power plan to High Performance mode>>>>>"
$HighPerf = powercfg -l | %{if($_.contains("High performance")) {$_.split()[3]}}
$CurrPlan = $(powercfg -getactivescheme).split()[3]
if ($CurrPlan -ne $HighPerf) {powercfg -setactive $HighPerf}
#Validate the change
gwmi -NS root\cimv2\power -Class win32_PowerPlan -CN $args | select ElementName, IsActive | ft -a
}
Catch
{
Write-Warning -Message "Can't set power plan to high performance, have a look!!"
}
}
【问题讨论】:
标签: powershell foreach server