天天看點

PowerShell檢測并添加使用者權限

 當系統的管理者制作了域政策,修改了本地管理者組的成員時,一般情況下我們是無法添加使用者權限的,即使添權重限,由于組政策登入時應用和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 ,如需轉載請自行聯系原作者

繼續閱讀