當系統的管理員製做了域策略,修改了本地管理員組的成員時,通常狀況下咱們是沒法添加用戶權限的,即便添加權限,因爲組策略登陸時應用和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