Я в тупике. Я запускаю приведенный ниже код на коробке 2012 R2, пока я его разрабатываю. Все, что делает эта часть, это получает имя хоста, захватывает число с конца, запускает функцию, чтобы увидеть, является ли она нечетной или четной, а затем устанавливает местоположение хранилища на основе этого.
По какой-то причине после того, как оператор If возвращает значение, сценарий просто останавливается, как если бы сценарий завершился. Как вы можете видеть, я добавил запись-отладку "сообщение 3", и она просто даже не регистрируется. Кто-нибудь знает какие-либо ошибки в PS для такого сценария? Или я где-то допустил ошибку. Сервер работает под управлением WMF 4.0.
function check-oddOrEven($number)
{
If([bool]!($number%2))
{
$OddEvnResult = "Even"
return $OddEvnResult
}
Else
{
$OddEvnResult = "Odd"
return $OddEvnResult
}
}
Write-Debug "message1" -debug
$oddStrgPath = "C:\ClusterStorage\Volume1"
$evnStrgPath = "C:\ClusterStorage\Volume2"
$hostname = $env:computername
#$hostname = "testN02"
$OddEvnSplit = $hostname.split('N')[1]
Write-Debug "message2" -debug
$OddEvnResult = check-oddOrEven $OddEvnSplit
if ($OddEvnResult -eq "Odd")
{
write-host "Odd number in hostname detected (1,3,5..etc). Setting storage path to" $oddStrgPath
#set-vmhost -VirtualHardDiskPath $oddStrgPath -VirtualMachinePath $oddStrgPath
$OEresult= $oddStrgPath
return $OEresult
}
else
{
write-host "Even number in hostname detected (2,4,6..etc). Setting storage path to" $evnStrgPath
#set-vmhost -VirtualHardDiskPath $evnStrgPath -VirtualMachinePath $oddStrgPath
$OEresult= $evnStrgPath
return $OEresult
}
Write-Debug "message3" -debug
Я попытался написать-хост и запись-вывод, но безуспешно. Вот вывод из консоли:
DEBUG: message1
DEBUG: message2
Even number in hostname detected (1,3,5..etc). Setting storage path to C:\ClusterStorage\Volume2
C:\ClusterStorage\Volume2