Похоже, что 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 возвращать ожидаемый тип?
psexec
вместо удаленного взаимодействия PowerShell (invoke-command
) или передаете-computername
вget-ciminstance
? - person alroc   schedule 16.10.2014psexec
не является PowerShell и не может возвращать объекты. Она просто выводит строки, как и любая другая команда, которые затем анализирует PowerShell. Как сказал @alroc, вы хотите использовать фактические функции удаленного взаимодействия рассматриваемых команд. (ps
вPsExec
не означает PowerShell — этот префикс был принят, потому что стандартная команда Unix для вывода списка процессов —ps
.) - person Jeroen Mostert   schedule 16.10.2014