Почему переменная $ servername корректно расшифровывается в $servername
ниже, но не в следующей строке Get-Process -ComputerName $servername
?Переменная Powershell не будет расширяться в команде Get-Process
1) Если я вручную установил $servername="example-server"
на примерный сервер в этом списке (копирование/вставка) в цикле, он работает. 2) Если я вставляю строку $servername | Measure-Object -Character
в цикле, чтобы попытаться проверить правильность содержимого переменной (скрытое пространство или что-то еще), я не получаю никакого вывода. Однако, если я вручную назначу $servername
и запустим, он отобразит правильное количество символов в строке.
$servers = Import-CSV C:\temp\AllServers.csv
foreach ($servername in $servers)
{
$servername
Get-Process -ComputerName $servername | Where-Object {$_.Handles -gt 1000} | Sort-Object Handles -Descending
}
Есть ли какая-то обработка или форматирование, необходимые с выделенными csv массивами, которые мне не хватает?
Содержание AllServers.csv
- это одна колонка, первая строка которой является заголовком столбца servers
.
'Get-Process -ComputerName $ servername.servers' – PetSerAl
@PetSerAl Ах, пропустили это, мои извинения. –
Как @PetSerAl указывает на то, что ваша переменная $ servername не является строкой, а скорее объектом строки csv. Вы должны использовать правильное поле в своем вызове. Также -ComputerName может принимать массив строк напрямую. –