因为进行远程powershell管理必须需要启用winrm的服务,所以需要在windows平台上启用winrm服务winrm service 默认都是未启用的状态,先查看状态;如无返回信息,则是没有启动;
winrm enumerate winrm/config/listener
针对winrm service 进行基础配置:
winrm quickconfig
查看winrm service listener:
winrm e winrm/config/listener
为winrm service配置auth:
winrm set winrm/config/service/Auth '@{Basic="true"}'
为winrm service 配置加密方式为允许非加密:
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
非administrator用户需要执行以下步骤:
用户加到administrators组:
禁用UAC(改注册表)
为什么winrm要禁用uac,在这篇文章里可以找到:
Disable User Account Control (UAC) - Windows Server | Microsoft Docs
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
Powershell执行:
Set-PSSessionConfiguration -Name Microsoft.PowerShell –showSecurityDescriptorUI
添加DPM用户读取、执行权限:
Powershell执行:
获取SDDL格式的当前访问描述符:
(Get-PSSessionConfiguration -Name "Microsoft.PowerShell").SecurityDescriptorSDDL
然后,您可以使用此SDDL字符串授予对任何其他服务器或工作站上PowerShell的访问权限。
注:每台服务器获得的描述符不一样,请将上面获取到描述符替换到$SDDL=“”
Powershell执行:
$SDDL = "O:NSG:BAD:P(A;;GA;;;BA)(A;;GXGR;;;S-1-5-21-3222124782-533421702-3897355594-1018)(A;;GA;;;RM)(A;;GA;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)"
Set-PSSessionConfiguration -Name Microsoft.PowerShell -SecurityDescriptorSddl $SDDL
Powershell执行
设置信任主机:
Set-Item WSMan:localhost\client\trustedhosts -value 192.168.40.63 ---DCP_IP
重启WMI服务: