Использование PSComputerName в Invoke-Command PowerShell

Всякий раз, когда вы используется командлет Invoke-Command для удаленного выполнения кода, PowerShell автоматически добавляет колонку PSComputerName в результат. Это очень удобно так как при выполнении Invoke-Command на нескольких компьютерах, можно контролировать какой компьютер возвращает информацию.

Invoke-Command { Get-Service } -ComputerName PC1, PC2, PC3

Но есть проблема, если используется Select-Object нужное имя мы не получим:

Invoke-Command { Get-Service } -ComputerName PC1, PC2, PC3 | Select-Object PSComputerName, Name, Status

Обойти проблему, можно определив хеш-таблицы в которую добавить имя компьютера, попутно можно дать более понятное название:

$pcname = @{
    Name = 'Machine'
    Expression = { $_.PSComputerName }
  }
Invoke-Command { Get-Service } -ComputerName PC1, PC2, PC3 | Select-Object $pcname, Name, Status
Теги:

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

Оставить комментарий

(required)

(required)