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"
2、PowerShell脚本保存凭据方法
使用Get-Credential命令来交互式输入凭据(用户名+密码),可以先将凭据保存到一个变量中,如:
$cred = get-credential
$cred的对象类型名称为:System.Management.Automation.PSCredential,其中的Password和UserName都是其属性,所以可以新建一个该类型的对象。在此处需要注意的是Password类型为SecureString,UserName类型为String,所以需要将明文的Password转换