Смысл скрипта, который Вы привели в том, что вначале нужно явно в тексте скрипта указать имя вцентра или нескольких:
$VIServers = “vCenter” ( то есть переменная $VIServers принимает значение vCenter)
, затем скрипт получает список вм на этих вцентрах, применяет к ним фильтр по имени: $VMs = Get-View -ViewType VirtualMachine -Filter @{"Name" = "PCX*"}
и потом уже с подходящими машинами делает действия.
Чтобы Вам рестартовать другие машины, или на другом вцентре, надо будет править сам скрипт.
Смысл того, что привёл я в том, что скрипт остаётся неизменным. Переменные ему перезаются при запуске.
(Как в примере.\Restart-VMs.ps1 -vCenter vc01.ict-freak.local -vmName "VM1","VM2") то есть $vCenter в скрипте принимает значение vc01.ict-freak.local, а $vmName принимает значения VM1 и VM2
$VIServer и $vm - встроенные объекты (как я понимаю), то есть они не задаются, они уже есть в PowerCLI и имеют понятные значения.
param( обозначает, что параметры будут указываться призапуске (напр -vCenter vc01 -vmName "VM1","VM2" )
[parameter(Mandatory =$true)]
[string[]]$vCenter, - обозначает, что введённый за -vCenter аргумент будет подставляться в переменную $vCenter (-vCenter vc01)
[parameter(Mandatory =$true)]
[string[]]$vmName - обозначает, что введённый за -vmName аргумент будет подставляться в переменную $vMname (-vmName "VM1","VM2")
)
Запустить весь скрипт можно так, как указано там в примере.
Если Вам необходимо рестартовать разные машины в разное время, то в случае с вашим скриптом надо делать разные скрипты и запихивать их в планировщик. В случае со скриптом, который я привел, надо будет запускать всего 1 скрипт, просто указывая разные аргументы. Это намного проще