用PowerShell远程管理

2018-11-08 05:33
网络安全和信息化 2018年1期
关键词:远程管理委派身份验证

PowerShell远程管理的简单应用

在域控上打 开Windows Power Shell ISE集成脚本环 境(如 图 1),执 行“Get-AD Computer -filter *”命令,可以返回域中所有计算机信息。执行“Get-AD Computer-filter * |select name”命令,只显示域中所有主机的名称。在脚本编辑面板 中 输 入“STOP-Computer-Computername xxx -force”,其中的“xxx”为具体的主机名称(以下与之相同),点击F5键,可以将该主机强制关机。使用“Invoke-Command”命令,可以向指定的主机上发送指定的命令,函数,脚本和脚本块。

远程管理功能类别

图1 Windows PowerShell ISE集成脚本环境

PowerShell的远程管理功能,分为非持久性会话,持久性会话和隐式远程管理等类别。非持久性会话,利用Invoke-Command命令,在执行命令后不保持连接,远程主机上的PowerShell进程立即退出。通过在命令后面添加脚本块,执行后将其推送到目标主机上,然后在目标主机上执行该脚本块。也可以进入建立的会话,在其中直接执行各种指令。持久性会话使用的是New-PSSession等命令,可持续性地保持连接状态,断开后可重新连接。隐式远程管理,可同时管理多台计算机。

设置远程管理权限

PowerShell默认使用Windows身份验证方式,在域环境和工作组环境中,身份验证是存在差异的,在特定情况下,还能需要使用额外的参数。默认情况下,本地或者域管理员组成员拥有完全控制权限。对于非管理员组的成员来,必须添加到本地或者域中的Remote Management Users组中,才拥有远程访问权限。对权限进行设定,需要使用“Set-PSSession Configuration Microsoft.Powershell-Show Security DescriptorUI”命令来实现。

为PowerShell远程管理配置证书

为了保证连接的安全,最好配置证书来执行身份认证和数据加密处理,可以在被控机上打 开PowerShell ISE窗口,执 行“Get-Childltem wsman:local hostListener |select *” 命令,显示侦听器信息,在返回信息中的“Keys”栏中显 示“{Transport=HTTP,Address=*}”,即默认使用一个侦听器,属于HTTP协议,可以侦听来自所有的地址的网络连接。使用HTTPS协议安全性更高,但是需要使用数字证书。

假设在域控上安装有CA证书颁发机构,在本机上执行“mmc”程序,在控制台中点击菜单“文件→添加/删除管理单元”项,在左侧选择“证书”项,点击“添加”,选择“计算机账户”,将其添加进来。在控制台左侧选择“证书→个人”,在右键菜单上点击“所有任务→申请新证书”,在向导界面中点击“下一步”,选择“Active Directory注册策略”,在下一步窗口中选择“计算机”项,点击“注册”来申请一张计算机证书。打开该证书的属性窗口,在“常规”面板中的“颁发给”栏中显示安装证书的主机信息,例如“server1.xxx.com”。 之 后在PowerShell 窗口执行相关的命令来创建侦听器,当客户端进行连接时,可以使用HTTPS进行安全连接。

查看证书信息

执 行“New-Item WSMan:localhostListener-Transport https-Credential "xxxxxx"”命令,其中的“xxxxxx”为证书的指纹,在“Address:*”提示栏中可以设置地址侦听的范围,默认为全部地址。这样,就创建了一个HTTPS的侦听器。执行“Get-Childltem wsman:localhostListener”命令,会显示默认的HTTP侦听器和上述创建的HTTPS侦听器。

在控制端上打开PowerShell窗口,执行“gpupdate /force”命令,来刷新组策略。因为是在域环境中,在被控段和控制端都是以相同的域管理员身份登录,所以可以执行“Enter-PSSession -computerName server1.xxx.com -UseSSL”命令,使用HTTPS协议连接被控机。进入连接会话后,就可以在直接在该机上执行各种命令了。

创建远程管理会话

默认状态下,PowerShell的远程管理功能是打开的。也可以在PowerShell中执 行“Enbale-PSRemoting-force”命令,激活远程管理功能。需要对IP为192.168.1.10的主机进行远程关机,可以执行“Invoke-Command -ComputerName 192.168.1.10-Script{Stop-Computer}”,该机就可以自动关机了。

在工作组环境,因为需要执行身份验证操作,如果宿主机和被控机之间的管理员密码不同,是无法执行上述命令的。需要执行“Invoke-Command -ComputerName 192.168.1.10-Script{Stop-Computer-Force} -Credential administrator”命 令,指定登录是使用的账户名,这 里 为Administrator,在身份认证窗口中输入其密码后,才可以执行该 命 令。 执 行“Enter-PSSession -ComputerName 192.168.1.10 -Credential administrator”命令,可以进入连接会话中,犹如在该机上打开了PowerShell命令窗口,可以执行各种命令。

在会话中执行各种命令

执行“hostname”命令,可以显示该机的名称。执行“Add-WindowsFeather webserver”命令,可以在目标机上安装IIS组件。对于管理员来说,有时希望远程管理域控上的活动目录,在域中某台服务器上的PowerShell中 执 行“PSSession DCServer”命 令,这 里 的“DCServer”为域控名称,进入域控上的PowerShell会话界面,在“[dcserver]:PS C:>”提示栏中输入所需的命令,犹如在域控上操作PowerShell一样,执行“exit”命令返回。用户也可以创建新的会话线程,执行“New-PSSession DCServer”命令,在返回信息中的“State”列表中如果显示“Opened”字样,说明该会话连接成功。执行“Get-Module-PSSession(Get-PSSession)-ListAvailable”命令,可以从已经建立的会话中获取目标主机上的所有模块信息。

管理多个会话

当针对多个目标主机创建多个会话后,最好为不同的会话添加对应的前缀,这样就可以知晓命令是从哪台目标机上运行的。例如,执 行“$pssession1 =New-PSSession -Computer dcserver.xxx.com”命 令,创建一个新的会话,并设置变 量“$pssession1”。 执行“Import-PSSession-Session $pssession1-Prefix dcserver”命 令,可以添加名为“dcserver”的前缀。这里所说的前缀是和具体的命令绑定起来使用的。因为PowerShell在默认启动时,只导入常用的模块。在本地操作时,需要导入目标主机上的所需的模块,来满足远程控制的需要。例如,执行“Import-PSSession -Session$pssession1 -Module ActiveDirectory”命令,导入活动目录管理模块。之后可以在本地上执行“Get-ADUser -Filter *”等命令,来执行对应的管理操作。

配置远程凭据委派

服务器池只是一个抽象的概念,在实际连接时只能连接到其中某台服务器上。当连接成功后,如果试图对服务器池中的其他主机远程控制,就需要以当前连接的服务器为跳板,来连接池中其他服务器,这时就需要明确指定凭据信息,这就涉及到远程凭据委派功能。

执 行“New-PSSession server1.xxx.com”命令,连接到服务器场中Server1服务器上。执行“Import-PSSession (Get-PSSession)-Prefix server 1-AllowClobber”命令,导入会话连接并设置前缀,允许覆盖本地命令。但是,当试图在PowerShell中对该机执行特定的操作(例如加载脚本和模块等),系统会显示无法访问本地服务器场的提示。因为对该机的远程访问,可能会涉及到对场中其他服务器(例如SQL Serve服务器等)的访问操作,这就需要使用到远程凭据委派功能。

使用远程凭据委派

在本地机上执行“Enable-WSManCredSSP-Role Client-Delegate Computer"server1.xxc.com"”命令,允许向Server1委派凭据,这里的目标主机名称需要使用FQDN格式。执行“Get-WSManCredSSP”命令,可以看到系统提示已将计算机配置为允许将新凭据委派到目标计算机中。

登录到Server1上,执行“Enable-WS Man Cred SSP-Role Server”命令,允许该机接受凭据委派。在返回的提示信息中显示基本身份验证处于禁止状态,Kerberos验证处于允许状态,为了便于测试,可以在本地机上 执 行“Enter-PSSession-Computer Name server1.xxx.com -Authentication Credssp -Credential administrator@xxx.com”命令,使用凭据委派方式进入连接会话(后面要设置目标服务器池的管理员账户名)。在打开的身份验证窗口中输入该账户的密码即可。

猜你喜欢
远程管理委派身份验证
高校校办企业会计委派制实施办法探讨
GSM-R网络SIM卡远程管理技术方案研究
人脸识别身份验证系统在养老保险生存核查中的应用
基于ZigBee与移动4G的小型安防系统研究与设计
Radmin在服务器远程管理中的应用
西门子全新远程管理平台使远程访问安全简便
烟草专卖内管委派制对县级局内部监管的思考
新形势下如何发挥专卖内管委派制的作用和效能
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
HID Global推动多层身份验证解决方案