使用powershell对Windows统一管控

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用powershell对Windows统一管控相关的知识,希望对你有一定的参考价值。

开启winrm服务允许被管控

winrm服务即Windows远程管理(Windows Remote Manager),是微软官方提供的不用通过页面,而是基于命令远程管控其他Windows机器的方法,包括ansible远程管控Windows也是基于winrm协议的。因此任何一台Windows服务器都自带了winrm服务,通过一定设置可以实现Windows被远程管控。下面是具体设置方法:

首先,winrm使用端口为5985,需要在防火墙设置允许5985端口来源,或者关闭防火墙。

另外,使用命令开启winrm服务,可以用cmd

call WinRM quickconfig -q
call winrm set winrm/config/service/auth @Basic="true"
call winrm set winrm/config/service @AllowUnencrypted="true"
call winrm set winrm/config/winrs @MaxMemoryPerShellMB="1024"
call winrm set winrm/config/winrs @MaxShellsPerUser="100"
call net stop winrm
call net start winrm

也可以通过powershell开启

enable-psremoting

验证是否打开,执行

winrm enumerate winrm/config/listener

出现如下代表已成功开启

使用powershell对Windows统一管控_Windows

另外,如果管理服务器是一台windows,则需要在管理服务器执行如下命令,代表它可以去管控别的服务器

call winrm set winrm/config/client @TrustedHosts="*"

单台后台管控

有两种方式,第一种是进入到被管控机器的powershell命令行,类似于ssh过去,使用Enter-PSSession命令,使用方式为

Enter-PSSession -ComputerName IP或servername -Credential username,这样进去之后,就相当于在被管控的机器上执行命令了,使用exit命令退出

使用powershell对Windows统一管控_Windows_02

第二种方式是,将命令直接传送到被管控机器执行,并返回执行结果,使用invoke-command命令,使用方式为

Invoke-Command -ComputerName IP或servername -Credential username -ScriptBlock 执行的命令,这样会将远程被管控的机器,本地执行结果返回过来

使用powershell对Windows统一管控_winrm_03


批量后台管控

批量后台管控多台服务器,是基于前面的Invoke-Command,把每台管控的Invoke-Command命令做成子job的形式,然后再返回job的执行结果,基本命令形式如下

$job = Invoke-Command -ComputerName server1,server2,server3 -Credential $cred -AsJob

然后通过查看作业状态和返回结果方式,查看命令执行的返回

(Get-Job $job.name).ChildJobs|get-job |select location,state,output

使用powershell对Windows统一管控_Windows_04


以上是关于使用powershell对Windows统一管控的主要内容,如果未能解决你的问题,请参考以下文章

4A(统一安全管控平台)解析

4A(统一安全管控平台)解析

4A(统一安全管控平台)解析

福建海峡银行使用ManageEngine统一管控业务应用系统

集成底座统一认证配置说明

Powershell 批量重命名文件