当系统的管理员制做了域策略,修改了本地管理员组的成员时,通常状况下咱们是没法添加用户权限的,即便添加权限,因为组策略登陆时应用和90分钟另加30分钟的随机值自动刷新组策略,你的修改仍旧会被覆盖。
咱们的思路是,客户端的本地计算机策略有一个启动脚本设置,运行这个启动脚本的帐户是SYSTEM,也就是说这里的运行权限没有问题。对于组策略自动更新时间,咱们在脚本作循环检测,当帐户权限被删除时,自动添加。
另外一个问题是,PowerShell脚本功能过于强大,微软为了安全,默认状况下是不容许运行任何PowerShell脚本的。此时咱们必须修改本机的组策略的PowerShell脚本运行策略。shell
另外:脚本执行中,若是有安全软件运行,可能会有阻止添加帐户的提示,请手动放行。安全
使用本地管理员登陆
具体的操做方法:
1.打开本地组策略管理器。
2.修改PowerShell的执行策略。
计算机>管理模板>Windows组建>Windows PowerShell>启用脚本执行。
3.添加 计算机的启动PowerShell脚本。ide
如下是PowerShell脚本的具体内容。对象
# 恢复Powershell的默认执行策略,默认不容许执行任何脚本
# Set-executionpolicy default -force
#设置Powershell的执行策略为,能够执行任何脚本进程
#PowerShell的执行策略请手动运行,或在组策略中运行。
#计算机>管理模板>Windows组建>Windows PowerShell>启用脚本执行。
#Set-ExecutionPolicy RemoteSigned -forceit
Function Add_LocalAdmin_Limit()
{
#查询Domain Users组是否是本地Administrators组的成员,若是查询到则返回一个WMI对象,查询不到返回一个Null。
$wmi=Get-WmiObject -Query "SELECT * FROM Win32_GroupUser WHERE PartComponent=`"Win32_Group.Domain='$env:USERDOMAIN',Name='Domain Users'`" And GroupComponent=`"Win32_Group.Domain='$env:COMPUTERNAME',Name='Administrators'`""io
#根据返回的结果,肯定是否须要添加权限。
if($wmi -eq $null)
{
net localgroup /add Administrators "Domain Users"
Echo "已完成管理员权限的添加,请注销后从新登录使用!"
}
}模板
#死循环,重复检测。若须要退出,请结束powershell进程。
while(1)
{
Add_LocalAdmin_Limit
Echo "OK"
#延迟3000秒,防止组策略刷新。
Sleep 3000
}
class