Я пытаюсь подключиться к машине Windows через PowerShell на машине Linux, чтобы получить информацию о некоторой системе, но мне нужно добиться этого без использования WinRm.
Во-первых, я установил PowerShell, следуя инструкциям здесь. Запуск PowerShell с pwsh
работал нормально.
Затем я попытался получить некоторую информацию через WMI, используя следующую команду:
Get-WmiObject -Class Win32_Process -Impersonation 3 -ComputerName IP_ADDRESS
Возвращаемое значение - Get-WmiObject : The term 'Get-WmiObject' is not recognized as the name of a cmdlet, function, script file, or operable program.
,
Следуя журналу изменений для версии 6.0 ядра PowerShell, я обнаружил, что функции Get-Wmi * должны быть заменены эквивалентами Get-Cmi *. Давай попробуем:
Get-CimInstance -Class Win32_Process -Impersonation 3 -ComputerName IP_ADDRESS
Возвращаемое значение: Get-CimInstance : The term 'Get-CimInstance' is not recognized as the name of a cmdlet, function, script file, or operable program.
В поисках списка команд, набрав Get-
и затем Tab, возвращаемое значение действительно не показывает никакой функции Wmi или Cim.
Я могу подключиться к тому же компьютеру с помощью командлета Invoke-Command
, но, как я уже сказал, мне нужно добиться этого без использования WinRm, и, видимо, это не относится к Invoke-Comand
После большого поиска в Google я нашел только один подобный вопрос здесь, в SO, но он использует командлет Enter-PSSession
, который также использует WinRM, если я правильно понял.
Наконец, я нашел этот пост в блоге с перчатками, как мои потребности. Тем не менее, это предполагает использование командлетов Invoke-WmiMethod
и Invoke-CimMethod
которые, к удивлению никого, не являются признанными командами.
Мой вопрос: есть ли какой-либо способ выполнить запрос WMI для получения некоторой информации о Windows через PowerShell на компьютере с Linux без использования WinRm?
Примечание 1: я могу запускать командлеты Get-Wmi*
и Get-Cim*
в Windows PowerShell на компьютере (например, подключенном через RPC);
Примечание 2: я знаю обходной путь для решения этой проблемы в Linux без PowerShell, и он должен работать для кого-то с подобной проблемой, но он не работал для меня из-за неразрешимой (на данный момент, по крайней мере) проблемы кодирования ;
ИНФОРМАЦИЯ
ОС: Debian 8.10
$ PSVersionTable.PS Версия: 6.0.1
Удаленный Windows: W10 Pro