當系統的管理者制作了域政策,修改了本地管理者組的成員時,一般情況下我們是無法添加使用者權限的,即使添權重限,由于組政策登入時應用和90分鐘另加30分鐘的随機值自動重新整理組政策,你的修改仍舊會被覆寫。
我們的思路是,用戶端的本地計算機政策有一個啟動腳本設定,運作這個啟動腳本的賬戶是SYSTEM,也就是說這裡的運作權限沒有問題。對于組政策自動更新時間,我們在腳本做循環檢測,當賬戶權限被删除時,自動添加。
另一個問題是,PowerShell腳本功能過于強大,微軟為了安全,預設情況下是不允許運作任何PowerShell腳本的。此時我們必須修改本機的組政策的PowerShell腳本運作政策。
另外:腳本執行中,如果有安全軟體運作,可能會有阻止添加賬戶的提示,請手動放行。
使用本地管理者登入
具體的操作方法:
1.打開本地組政策管理器。
2.修改PowerShell的執行政策。
計算機>管理模闆>Windows組建>Windows PowerShell>啟用腳本執行。
3.添加 計算機的啟動PowerShell腳本。
以下是PowerShell腳本的具體内容。
# 恢複Powershell的預設執行政策,預設不允許執行任何腳本
# Set-executionpolicy default -force
#設定Powershell的執行政策為,可以執行任何腳本
#PowerShell的執行政策請手動運作,或在組政策中運作。
#計算機>管理模闆>Windows組建>Windows PowerShell>啟用腳本執行。
#Set-ExecutionPolicy RemoteSigned -force
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'`""
#根據傳回的結果,确定是否需要添權重限。
if($wmi -eq $null)
{
net localgroup /add Administrators "Domain Users"
Echo "已完成管理者權限的添加,請登出後重新登陸使用!"
}
}
#死循環,重複檢測。若需要退出,請結束powershell程序。
while(1)
{
Add_LocalAdmin_Limit
Echo "OK"
#延遲3000秒,防止組政策重新整理。
Sleep 3000
<a href="http://down.51cto.com/data/2367153" target="_blank">附件:http://down.51cto.com/data/2367153</a>
本文轉自秘飛虎51CTO部落格,原文連結:http://blog.51cto.com/mifeihu/1719679 ,如需轉載請自行聯系原作者