查找服务器名称是否包含特定字母的循环,将其设置为在一周中的特定日期重新启动
Loops that find if a server name contains certain letters, sets those to reboot on certain day of the week
我有以下代码,但不确定我是否在正确考虑解决方案。我获取一组服务器名称,并想查找是否有包含字符 'as01' 的服务器。如果是这样,那么 'as01a' 将在星期六开始重新启动,'as01b' 将在星期日重新启动,然后所有其余不包含 'as01' 的服务器将随机分配给其余服务器星期。
foreach($server in $servers){
if ( $server -like '*as01*') {
$i=6 #set reboot to start on saturday
set-xaworkergroup $([DayofWeek]($i++%7)) -servernames $_
}
else{ set-xaworkergroup $([DayofWeek]($i++%7)) -servernames $_ }
}
试试这个:
$i=0
$j=0
$servers = &{$args} as01a as01b as01c as02 as03 as04 as05 as06 as07 as08
foreach ($server in $servers)
{
if ($server -like '*as01*')
{ "$server reboots on $([DayOfWeek](0,6)[$i++%2])" }
else { "$server reboots on $([DayOfWeek](1..5)[$j++%5])" }
}
as01a reboots on Sunday
as01b reboots on Saturday
as01c reboots on Sunday
as02 reboots on Monday
as03 reboots on Tuesday
as04 reboots on Wednesday
as05 reboots on Thursday
as06 reboots on Friday
as07 reboots on Monday
as08 reboots on Tuesday
我有以下代码,但不确定我是否在正确考虑解决方案。我获取一组服务器名称,并想查找是否有包含字符 'as01' 的服务器。如果是这样,那么 'as01a' 将在星期六开始重新启动,'as01b' 将在星期日重新启动,然后所有其余不包含 'as01' 的服务器将随机分配给其余服务器星期。
foreach($server in $servers){
if ( $server -like '*as01*') {
$i=6 #set reboot to start on saturday
set-xaworkergroup $([DayofWeek]($i++%7)) -servernames $_
}
else{ set-xaworkergroup $([DayofWeek]($i++%7)) -servernames $_ }
}
试试这个:
$i=0
$j=0
$servers = &{$args} as01a as01b as01c as02 as03 as04 as05 as06 as07 as08
foreach ($server in $servers)
{
if ($server -like '*as01*')
{ "$server reboots on $([DayOfWeek](0,6)[$i++%2])" }
else { "$server reboots on $([DayOfWeek](1..5)[$j++%5])" }
}
as01a reboots on Sunday
as01b reboots on Saturday
as01c reboots on Sunday
as02 reboots on Monday
as03 reboots on Tuesday
as04 reboots on Wednesday
as05 reboots on Thursday
as06 reboots on Friday
as07 reboots on Monday
as08 reboots on Tuesday