检查 PowerShell 版本
要查看你的 PowerShell 版本,可以在 PowerShell 控制台输入$PSVersionTable
,按 Enter 键后,查看 PSVersion 的值。不要省略开头的 $ 。$ 开头后面跟一串字符,表示这是一个变量。PSVersionTable 是环境变量,默认已经有值了。变量名不区分大小写。命令结果类似下图:
上面高亮显示的 PSVersion 5.1.17763.1007 说明当前 PowerShell 的版本是 5.1 。
注:以下命令不能查看 PowerShell 版本。
powershell.exe --version
本文使用的版本是 Windows PowerShell 5.1 ,如果你的 PowerShell 版本比较旧,可以先升级你的 PowerShell 。升级 PowerShell 需要安装 WMF 程序,可以查看微软官方文档 升级现有 Windows PowerShell 。
以管理员身份运行 PowerShell
在进行后面的操作前,先检查当前 PowerShell 是否以管理员身份运行。如下图左上角有“管理员”,说明当前是以管理员身份运行的。要做到这样,可以在 Windows PowerShell 的程序上右键单击,在弹出的菜单中选择 “以管理员身份运行”,点击即可。注:不以管理员身份运行 PowerShell , 后面的操作可能会出现异常。
配置 PowerShell 远程管理
在使用 PowerShell 管理远程计算机之前,需要对计算机进行配置,否则会出现 拒绝访问 等错误提示。如下所示:
PowerShell 连接的客户端和服务器都需要进行配置,配置的步骤很简单。
服务器需要启动 WinRM 服务,需要放开 WinRM 服务的防火墙限制,以及其他配置。这些步骤不需要一个个手动操作,只需要运行一个内置的命令即可全部配置完成。
Enable-PSRemoting
Enable-PSRemoting
会自动执行如下操作:
- 启动 WinRM 服务
- 设置 WinRM 服务的启动类型为开机自动启动
- 创建一个侦听器接收任意 IP 地址的请求
- 启用 WinRM 服务对应的防火墙规则
- PowerShell 会话配置
- 其他操作
运行该命令后,检查看看 WinRM 服务是否已经启动。
Get-Service WinRM
Get-Service
命令可以查看指定服务的运行状态。如下图显示 “Running” , 则表示 WinRM 服务已经启动完成。
服务器还需要给用户设置密码,空密码是无法连接成功的,连接时会显示 拒绝访问 的错误提示。
客户端需要设置信任列表,将服务器加入客户端的信任列表,客户端才允许访问服务器。注:以下操作在客户端计算机执行。
Set-Item WSMan:localhostClientTrustedHosts *
命令最后的星号是必须的,表示将任何计算机加入当前计算机的信任列表。这个星号前面还有一个空格,不能省略。星号也可以替换成服务器的 IP 地址。如果不设置这个,在连接时,可能会出现如下错误提示:
连接远程计算机
配置完成后,使用如下命令即可连接远程计算机。其中的示例 IP 地址要替换成你要连接的目标计算机的实际 IP 地址。使用 IP 地址时,-Credential
参数是必须的,该参数后面的是服务器上的用户名。用户名不区别大小写。注:非客户端计算机的用户名。缺少 -Credential
时,默认使用当前用户,且仅适用于客户端计算机加入域控制的情况下。
Enter-PSSession 192.168.229.146 -Credential administrator
要退出远程管理,执行 exit
命令。