В первом примере вы переутомляетесь с кавычками. (также server1
имеет конечную двойную кавычку, но без начальной двойной кавычки ..)
Помещая серверы в одинарные кавычки '
, текст внутри него берется буквально, поэтому вы вводите командлет с такими именами, как "server2"
, поэтому , включая символы двойных кавычек.
Эти кавычки явно не относятся к имени сервера.
Кстати: не ошибка, но вы * Не нужно @()
при создании массива имен серверов.
Это был бы лучший способ настройки массива строк, где вы можете использовать либо одинарные, либо двойные кавычки, но не оба:
$serverList = 'server1', 'server2', 'server3', 'server4', 'server5'
Get-CimInstance -ComputerName $serverList -ClassName win32_operatingsystem | Select-Object csname, lastbootuptime
Вы также заметили, что при использовании в качестве параметров командлета вам даже не нужны кавычки, а элементы интерпретируются как строки, если они не содержат пробелов:
Get-CimInstance -ComputerName server1,server2,server3,server4,server5 -ClassName win32_operatingsystem | Select-Object csname, lastbootuptime