
Я пытаюсь подключиться к машине 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.PSVersion: 6.0.1
Удаленные окна: W10 Pro
решение1
Вместо этого рассмотрите PoSH вместо SSH.
Пошаговое руководство см. здесь:
Удаленное взаимодействие PowerShell через SSH
Обзор
PowerShell remoting обычно использует WinRM для согласования соединения и передачи данных. SSH был выбран для этой реализации remoting, поскольку он теперь доступен для платформ Linux и Windows и обеспечивает настоящий многоплатформенный PowerShell remoting. Однако WinRM также предоставляет надежную модель хостинга для удаленных сеансов PowerShell, чего эта реализация пока не делает. И это означает, что конфигурация удаленной конечной точки PowerShell и JEA (Just Enough Administration) пока не поддерживаются в этой реализации.
PowerShell SSH remoting позволяет вам выполнять базовый сеанс PowerShell remoting между машинами Windows и Linux. Это делается путем создания процесса хостинга PowerShell на целевой машине в качестве подсистемы SSH. В конечном итоге это будет изменено на более общую модель хостинга, похожую на то, как работает WinRM, для поддержки конфигурации конечной точки и JEA.
Командлеты New-PSSession, Enter-PSSession и Invoke-Command теперь имеют новый набор параметров для упрощения этого нового удаленного подключения.
https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting
Обновлено в связи с комментарием Энтони Гейгана
Что касается ---
«Это выглядит многообещающе, но ссылка на репозиторий GitHub больше не работает».
----Ссылка ведет прямо на репозиторий MS PS, так что, да, странно, что происходит 404. В любом случае, вы можете получить это напрямую в своей системе с помощью PowerShell.
В любом случае …
Find-Module -Name '*ssh*' | Format-table -AutoSize
# Results
Version Name Repository Description
------- ---- ---------- -----------
2.1 Posh-SSH PSGallery Provide SSH and SCP functionality for executing commands against remote hosts.
0.0.2.0 OpenSSHUtils PSGallery Utilities and functions for configuring OpenSSH on Windows.
2.1.3 SSHSessions PSGallery Svendsen Tech's SSH-Sessions module provides SSH session creation, management and interaction from Power...
1.0.0 SSH PSGallery Provides a PowerShell-based SSH client based on SSH.net http://sshnet.codeplex.com/
0.0.75 PSSharedGoods PSGallery Module covering functions that are shared within multiple projects
1.1.3 PowerSSH PSGallery This module detects the first use of an SSH command, automatically runs the SSH agent, keeps the SSH aut...
0.9.5 WinSSH PSGallery Install OpenSSH-Win64, optionally install ssh-agent and sshd Services. Also includes functions to help c...
1.0.1 ssh-wrapper PSGallery Exposes ssh from WSL by wrapping: bash -c "ssh $args". Requires Windows Subsystem for Linux on Windows 10.
0.3.1 posh-sshell PSGallery Provides integration with ssh-agent and pageant from within Powershell
2.0.1.8 SkypeForBusinessHybridHealth PSGallery Uses on-premises modules such as Skype For Business and SkypeOnlineConnector to validate basic requireme...
1.0.4 PSShortcut PSGallery This module eases working with Windows shortcuts (LNK and URL) files.
1.1.4 PowerSSH-Legacy PSGallery This module detects the first use of an SSH command, automatically runs the SSH agent, keeps the SSH aut...
1.0 cEPRSSharepoint PSGallery DSCModule helps in installing & configuring the sharepoint site, Farm etc.,
0.0.3 dockeraccesshelper PSGallery Allow a user account to access the docker engine without elevated access rights
0.3 PSShareFile PSGallery A PowerShell module to manipulate various objects in Citrix's ShareFile service
0.0.1 PSSherpaDesk PSGallery PowerShell module for interacting with the SherpaDesk API
Find-Module -Name '*Posh-SSH' |
Save-Module -Path "$env:USERPROFILE\Documents\WindowsPowerShell\Modules"
Install-Module -Name 'Posh-SSH'
Используйте эту ссылку для демонстрации SSHRemoting
Я только что это сделал, поэтому знаю, что это работает.
Посмотрите эти видеоролики на YouTube PowerShell SSH Remoting в действии.