Тип возвращаемых данных PsExec

Похоже, что PsExec возвращает типы, отличные от ожидаемых при локальном запуске команды. Я пытаюсь запустить эту команду удаленно Get-CimInstance CIM_ComputerSystem с помощью этого

$computerSystem = &$workingDirectory/psexec.exe \\10.44.20.20 powershell.exe "Get-CimInstance CIM_ComputerSystem"

Обычный тип возвращаемого значения для Get-CimInstance CIM_ComputerSystem возвращает CimInstance, и доступ к членам можно получить следующим образом $computerSystem.Name.

Однако при использовании psexec он возвращает массив объектов в странном формате. При просмотре переменной во время отладки кажется, что она имеет те же члены, что и CimInstance, но к ним нельзя получить доступ из-за типа массива объектов.

Есть ли способ передать это CimInstance или получить psexec для доступа к его членам или заставить psexec возвращать ожидаемый тип?


person John    schedule 16.10.2014    source источник
comment
Почему вы используете psexec вместо удаленного взаимодействия PowerShell (invoke-command) или передаете -computername в get-ciminstance?   -  person alroc    schedule 16.10.2014
comment
Я не знал о параметре -ComputerName для Get-CimInstance. Это решает проблему, с которой я столкнулся, спасибо. Любая идея, почему PsExec ведет себя таким образом?   -  person John    schedule 16.10.2014
comment
psexec не является PowerShell и не может возвращать объекты. Она просто выводит строки, как и любая другая команда, которые затем анализирует PowerShell. Как сказал @alroc, вы хотите использовать фактические функции удаленного взаимодействия рассматриваемых команд. (ps в PsExec не означает PowerShell — этот префикс был принят, потому что стандартная команда Unix для вывода списка процессов — ps.)   -  person Jeroen Mostert    schedule 16.10.2014
comment
Это имеет большой смысл. Спасибо.   -  person John    schedule 16.10.2014


Ответы (1)


Используйте параметр -ComputerName для Get-CimInstance вместо psexec. Это вернет объекты, которые может использовать Powershell, вместо строковых данных.

person alroc    schedule 16.10.2014