在 Linux 中通过 PowerShell 远程连接到 Windows

在 Linux 中通过 PowerShell 远程连接到 Windows

我正在尝试通过 Linux 机器中的 PowerShell 连接到 Windows 机器以获取一些系统信息,但我需要在不使用 WinRm 的情况下实现这一点。

首先,我按照说明安装了 PowerShell这里。启动 PowerShellpwsh工作正常。

然后我尝试使用以下命令通过 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.

变更日志对于 PowerShell 核心版本 6.0,我发现 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 功能。

我能够使用 cmdlet 连接到同一台计算机Invoke-Command,但正如我所说,我需要在不使用 WinRm 的情况下实现它,而且显然,情况并非如此调用命令

经过大量的谷歌搜索,我只找到了一个类似的问题在这里,但它使用 cmdlet Enter-PSSession,这也是使用温控器如果我理解正确的话。

最后我找到了这个博客文章完全符合我的需求。但是,它建议使用 cmdlet Invoke-WmiMethod,而且Invoke-CimMethod,出乎意料的是,这些命令无法被识别。

我的问题是:有没有办法在不使用 WinRm 的情况下在 Linux 机器上通过 PowerShell 运行 WMI 查询来获取一些 Windows 信息?

注1:我能够在 Windows 机器 PowerShell 中运行Get-Wmi*Get-Cim*cmdlet(例如,通过 RPC 连接);

笔记2:我知道一个解决方法在没有 PowerShell 的情况下在 Linux 中处理它,它应该对有类似问题的人有用,但由于无法解决(至少现在),它对我来说不起作用编码问题

信息

  • 操作系统:Debian 8.10

  • $PSVersionTable.PSVersion: 6.0.1

  • 远程Windows:W10 Pro

答案1

请转而寻求通过 SSH 实现的 PoSH。

请参阅此处的步骤:

通过 SSH 进行 PowerShell 远程控制

概述

PowerShell 远程处理通常使用 WinRM 进行连接协商和数据传输。SSH 被选为此远程处理实现,因为它现在可用于 Linux 和 Windows 平台,并允许真正的多平台 PowerShell 远程处理。但是,WinRM 还为 PowerShell 远程会话提供了一个强大的托管模型,而此实现尚未提供此功能。这意味着 PowerShell 远程端点配置和 JEA(Just Enough Administration,足够管理)在此实现中尚不受支持。

PowerShell SSH 远程处理可让您在 Windows 和 Linux 计算机之间进行基本的 PowerShell 会话远程处理。这是通过在目标计算机上创建 PowerShell 托管进程作为 SSH 子系统来实现的。最终,这将更改为更通用的托管模型,类似于 WinRM 的工作方式,以支持端点配置和 JEA。

New-PSSession、Enter-PSSession 和 Invoke-Command cmdlet 现在具有新的参数集,以促进这种新的远程连接

https://github.com/PowerShell/PowerShell/tree/master/demos/SSHRemoting

针对 Anthony Geoghegan 的评论进行了更新

至于---

“这看起来很有希望,但到 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 实际操作。

相关内容