Пожалуйста, прочитайте этот пост от StackOverflow об операторе return. Вот резюме:
Возврат : возврат к предыдущему пункту вызова. Если вы вызовете эту команду из скрипта (вне каких-либо функций), она вернется в оболочку. Если вы вызовете эту команду из оболочки, она вернется в оболочку (которая является предыдущей точкой вызова для одной команды, запущенной из оболочки) . Если вы вызываете эту команду из функции, она вернется туда, откуда была вызвана функция.
Выполнение любых команд после точки вызова, в которую она возвращается, будет продолжено с этой точки. Если скрипт вызывается из оболочки и содержит команду Return вне каких-либо функций, то, когда он возвращается в оболочку, больше нет команд для выполнения, что делает использование Return таким же образом, как и Exit.
Таким образом, вы должны удалить оператор return из ваших «if» и «else», оставив только переменную для отображения ее содержимого.
Пример:
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 $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 $OEresult }