Windows 远程管理 (WinRM) 是 WS-Management 协议的 Microsoft 实现。该协议是基于简单对象访问协议 (SOAP) 的、防火墙友好的标准协议,使来自不同供应商的硬件和操作系统能够互操作。WS-Management 协议由硬件和软件制造商群体开发,作为一种公共标准,可用于与实现该协议的任何计算机设备远程交换管理数据。

    使用PowerShell对服务器远程管理,要在远程服务器上启用WinRM。

一、知识储备:

1、WinRM相关操作

开启WinRM服务:

Enable-PSRemoting –Force

阻止本地计算机接收远程命令(不会停止WinRM服务):

Disable-psremoting –Force

查看WinRM服务监听信息:

winrm enumerate winrm/config/Listener

WinRM2.0默认端口5985(HTTP端口)或5986(HTTPS端口)。

删除WinRM HTTP侦听:

winrm delete winrm/config/listener?Address=*+Transport=HTTP

重新建立HTTP侦听:

winrm create winrm/config/listener?Address=*+Transport=HTTP

WinRM服务更改监听端口:

set-item -force wsman:\localhost\listener\listener*\port 5985

查看WinRM的配置:

winrm get winrm/config

查看端口监听状态:

netstat -nao | findstr "5985"

wKioL1kdBBzCxE20AAGJt42HbX0069.png-wh_50

2、PowerShell脚本保存凭据方法

    使用Get-Credential命令来交互式输入凭据(用户名+密码),可以先将凭据保存到一个变量中,如:

$cred = get-credential

wKioL1kdBCjSkN7xAABGBTheQDA354.png-wh_50

    $cred的对象类型名称为:System.Management.Automation.PSCredential,其中的Password和UserName都是其属性,所以可以新建一个该类型的对象。在此处需要注意的是Password类型为SecureString,UserName类型为String,所以需要将明文的Password转换