windows服务器远程执行命令(PowerShell + WinRM)

  

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

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

<强>

<强>

开启WinRM服务:

Enable-PSRemoting force

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

Disable-psremoting force

查看WinRM服务监听信息:

WinRM列举WinRM/config/侦听器

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

删除WinRM HTTP侦听:

WinRM删除WinRM/config/侦听器吗?地址=* +运输=HTTP

重新建立HTTP侦听:

winrm创建winrm/config/侦听器吗?地址=* +运输=HTTP

WinRM服务更改监听端口:

set-item force wsman: * \ \ localhost \侦听器\侦听器端口5985

查看WinRM的配置:

WinRM得到WinRM/配置

查看端口监听状态:

netstat nao |中“5985”

皐indows服务器远程执行命令(PowerShell

<强>

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

$信誉=Get-Credential

皐indows服务器远程执行命令(PowerShell

,,,,美元信誉的对象类型名称为:System.Management.Automation.PSCredential,其中的密码和用户名都是其属性,所以可以新建一个该类型的对象。在此处需要注意的是密码类型为SecureString,用户名类型为字符串,所以需要将明文的密码转换为安全字符串,可以使用ConvertTo-SecureString命令。

,,,,非交互式保存凭据代码示例:

account 美元;=,“管理员”,,   $ password =,‘123456’,,   $ secpwd =, convertto-securestring  password 美元;-asplaintext  -force ,   $cred = new-object System.Management.Automation.PSCredential -argumentlist $account,$secpwd

    Invoke-Command在本地和远程计算机上运行命令,并从命令返回所有输出,包括错误。使用一个Invoke-Command命令,可以在多台计算机上运行命令。部分参数介绍:

-Port

指定远程计算机上用于此命令的网络端口。用于WinRM默认监听端口被更改的情况下,指定新的端口。

-ComputerName

指定运行此命令的计算机。默认值为本地计算机。

使用 ComputerName 参数时,Windows PowerShell 会创建一个临时连接,此连接仅用于运行指定的命令,之后将关闭。如果需要持续性连接,请使用 Session 参数。

在一个逗号分隔列表中键入一台或多台计算机的 NETBIOS 名称、IP 地址或完全限定的域名。要指定本地计算机,请键入计算机名称、“localhost”或句点 (.)。

-Session

在指定的 Windows PowerShell 会话 (PSSession) 中运行此命令。

通过创建 PSSession,Windows PowerShell 可以建立与远程计算机的持续性连接。

-Credential

指定有权执行此操作的用户帐户。默认值为当前用户。

-command/-ScriptBlock

指定要运行的命令。用大括号 ({ }) 括起命令以形成脚本块。

-FilePath

在一台或多台远程计算机上运行指定的本地脚本。

-AsJob

在远程计算机上将命令作为后台作业运行。使用此参数可运行需要较长时间才能完成的命令。

使用 AsJob 时,此命令返回代表作业的对象,然后显示命令提示符。要管理作业,请使用 Job cmdlet。要获取作业结果,请使用 Receive-Job。

-ThrottleLimit

指定为运行此命令可建立的并发连接的最大数目。如果省略此参数或输入 0 值,则使用默认值 32。

    PSSession即Windows PowerShell会话。当你需要与远程计算机的持续连接时,则使用PSSession。PSSession相关命令:

Enter-PSSession

启动与远程计算机间的交互式会话。

New-PSSession

创建PSSession,并返回一个表示PSSession的对象。你可以将对象保存在变量中。

windows服务器远程执行命令(PowerShell + WinRM)