多语言展示
当前在线:1042今日阅读:99今日分享:20

在独立(工作组)计算机上启用PowerShell远程

如何在工作组电脑上启动Power Shell呢?        为了防止黑客利用我们的计算机来做非法事情,我们必须在这里区分需要在本地和远程计算机上完成的任务。
工具/原料

PowerShell

在远程计算机上
1

在域成员上,您还可以使用Enable-PSRemoting cmdlet 启用PowerShell Remoting 。确保您的PowerShell主机具有管理员权限; 否则,您将收到此错误消息:      启用 - PSRemoting:访问被拒绝。要运行此cmdlet,请使用“以管理员身份运行”选项启动Windows PowerShell。

2

即使您认为这个陷阱,您将在工作组计算机上获得下一个错误消息:          WinRM已被更新以接收请求。          WinRM服务启动。          Set-WSManQuickConfig:

3

您可能知道Windows有三种网络连接类型:私有,公共和域。当您第一次连接到网络时,Windows将要求连接类型。您可以在网络和共享中心中为网络发现和文件和打印机共享设置不同的规则。

4

以上错误消息表示我们已将网络设置为Public以启用PowerShell Remoting。有几种方法来改变连接类型。由于某些原因,只有Microsoft知道,您不能在网络和共享中心这样做。Metro界面中的其他选项都不符合我启用PowerShell Remoting的目标。

5

更新1:  有一个比以后的段落更容易的解决方案。您只需要添加-SKipNetworkProfileCheck参数:      Enable-PSRemoting -SkipNetworkProfileCheck -Force      奇怪的是,错误消息没有提到参数。通过建议将网络连接类型更改为私有,消息使我处于错误的轨道。我在下面的段落中解释一下如何做到这一点。       更新2:更改网络连接类型比编辑注册表更容易一些(见下文)。您可以简单地使用PowerShell cmdlet:Set-NetConnectionProfile -NetworkCategory Private。但是,我没有结合Enable-PSRemoting测试这个。

6

唯一的工作方式是更改注册表中的连接类型。在遵循以下步骤之前,您必须确保计算机已连接到网络,如有可能,请连接到Internet。(顺便说一下,当您尝试在没有网络连接的计算机上启用Remoting时,您也可能会绊住上述错误。)

7

这是您必须编辑的注册表项:       HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkList \ Profiles

8

您可能会在Profile文件夹中看到不同的配置文件。确保您获得正确的网络连接,其中ProfileName对应于当前网络连接的名称,如下面的屏幕截图所示:

9

然后您必须将类别值更改为1,将网络连接类型设置为Private  (0代表Public)。还要确保CategoryType设置为0.更改注册表后,必须重新启动计算机。

10

现在您可以使用以下命令启用PowerShell Remoting:      Enable-PSRemoting -Force          该-Force参数只是给你几个确定的提示。

11

请注意,Microsoft的文档提到了解决网络连接类型问题的另一种解决方案。但是,对我来说,这样做并没有奏效。如果它适用于你,请告诉我。为了完整起见,这是Microsoft建议的命令:      Set-NetFirewallRule –Name 'WINRM-HTTP-In-TCP-PUBLIC' –RemoteAddress Any

在本地电脑上
1

在Active Directory环境中,您只需使用计算机名称即可连接到远程计算机。如果远程连接到独立计算机,则通常必须使用IP地址。如果您尝试使用Enter-PSSession cmdlet使用远程计算机的IP地址连接到远程计算机,则PowerShell会抛出以下错误:       Enter-PSSession:连接到远程服务器10.0.2.33失败并显示以下错误消息:WinRM客户端无法处理请求...。

2

该错误消息建议使用winrm命令将IP添加到受信任的主机。但是,如果在PowerShell中输入正确的命令,您将收到以下错误消息:     winrm:错误:使用命令行无效...

3

更新:刚刚知道,您也可以在PowerShell中运行此wirm命令,如果您将参数引入引号(winrm set winrm / config / client'@ {TrustedHosts =“10.0.2.33”}')。

4

我们需要的是一个管理员命令提示符:     winrm set winrm/config/client @{TrustedHosts='10.0.2.33'}

5

你可能想知道为什么你需要一个老式的命令提示符来做到这一点。实际上PowerShell命令是一样的。我不知道为什么上面的错误信息没有提到。这是PowerShell向受信任主机添加IP地址的方法:        Set-Item WSMan:\localhost\Client\TrustedHosts -Value '10.0.2.33' -Force

6

如果您必须管理多个远程主机,或者如果IP始终更改,则可能需要将所有IP地址添加到受信任的主机:     Set-Item WSMan:\localhost\Client\TrustedHosts -Value '*' -Force

7

您还可以使用PowerShell读取受信任的主机列表:      Get-Item WSMan:\localhost\Client\TrustedHosts

8

PowerShell有时可能会显示此错误:       Get-Item:找不到路径“WSMan:\ localhost \ Client \ TrustedHosts”,因为它不存在。     在这种情况下,您可能只需手动启动Windows远程管理(WS-Management)Windows服务。

9

请注意,如果您重新启动机器,该列表将不会更改。如果要清除受信任主机的列表,可以运行以下命令:     Set-Item WSMan:\localhost\Client\TrustedHosts -Value '' -Force

10

现在,您终于准备好通过PowerShell远程管理远程管理机器:     Enter-PSSession -ComputerName 10.0.2.33 -Credential $Credentials

注意事项

在技术研究的路上永远没有止境,希望自己可以越来越充实

推荐信息