2013-06-27 37 views
-2

需要一些報告來安全審計用於Windows 2003和2008服務器的用戶和組。該腳本將在服務器上本地運行。管理員組中的本地組和用戶

  1. 管理員組報告

    這是本地管理員組的成員的列表清單,並應包含以下列標題。這應該只列出組名稱而不是組的用戶部分。

    Server Name, Local or Domain, Domain, USER ID, Account/Group 
    abc, domain, abc.com, xyz, Account 
    def, domain, abc.com, pqr, groupname 
    
  2. 本地用戶報告

    這是本地用戶報告,應包含以下列標題。

    USER ID, Account Disabled, Full Name, Last Login details 
    User1, No, User Name, <date time> 
    User2, Yes, Full Name, <date time> 
    

東西,我試過:

  1. net local usersnet local group →我無法獲取其他用戶的屬性。
  2. get-wmiobject win32_useraccount →無法獲取組信息。

回答

0
  1. 像這樣的東西可能會做:

    $hostname = $(hostname) 
    $isLocal = @{ 
        $true = "local"; 
        $false = "domain"; 
    } 
    $type = @{ 
        "Win32_UserAccount" = "User"; 
        "Win32_Group"  = "Group"; 
    } 
    
    gwmi -Query "ASSOCIATORS OF {Win32_Group.Domain='$hostname',Name='Administrators'} WHERE assocClass=Win32_GroupUser" | 
        select @{n="Server Name";e={$hostname}}, 
        @{n="Local or Domain";e={$isLocal[$($_.Domain -eq $hostname)]}}, 
        Domain, Name, @{n="Account/Group";e={$type[$_.__CLASS]}} | 
        ConvertTo-Csv -NoTypeInformation 
    

    未經檢驗的,雖然,因爲我沒有在手的廣告。

  2. 本地用戶信息,可以這樣獲得:

    $sys = [ADSI]"WinNT://$env:COMPUTERNAME" 
    $sys.Children | ? { $_.SchemaClassName -eq 'user'} | 
        select @{n="USER ID";e={$_.Name.Value}}, 
         @{n="Account Disabled";e={[bool]($_.UserFlags.Value -band 2)}}, 
         @{n="Full Name";e={$_.FullName.Value}}, 
         @{n="Last Login Details";e={$_.LastLogin.Value}} | 
        ConvertTo-Csv -NoTypeInformation 
    
+0

1.這是考慮年齡完成。這是因爲它擴大了整個用戶羣的一部分嗎? 2.對不起,我改變了它。 – user2502157

+0

你是否按原樣運行代碼? 「年齡」究竟有多長?你的管理員組有多少名成員? –

+0

我按原樣運行,管理員組中有20名成員。我等了超過45分鐘,仍然需要時間。我中途中斷了。 – user2502157

相關問題