2013-10-25 28 views
0

我已要求生成CSV報告以獲取組成員,但我有很多包含以「ADM」開頭的多個組的子域。 組名用戶企業LasLogon CN ADM_AM UserOne CP1以「ADM *」開頭的組成員,組的腳本

我需要在上述格式的報告,我發現一個腳本互聯網上

Get-ADGroup -Server dc1.chd1.pd.local -Filter 'Name -like "ADM*"' | 
    ForEach-Object{ 
      [email protected]{GroupName=$_.Name;Member=''} 
      $_ | Get-ADGroupMember -ea 0 -recurs | 
       ForEach-Object{ 
        $hash.Member=$_.Name 
        New-Object psObject -Property $hash 
       } 
      } | 
    sort groupname,member 

這個劇本只給我組名和用戶名,而不是其他信息。請PowerShell大師幫助我生成此報告。

回答

0

我不確定「ADM_AM,UserOne,CP1」是什麼,但我爲你獲得了這麼多。我還是新來的PowerShell,所以原諒我,如果這是很多代碼=)

$array = @() 
Foreach ($group in (Get-ADGroup -Server dc1.chd1.pd.local -Filter 'Name -like "ADM*"')) 
{ 
    [email protected]{Username ='';GroupName=$group.Name;Company='';LastLogon='';CN=''} 
    $members = $hash.GroupName | Get-ADGroupMember -Recursive -ErrorAction SilentlyContinue 
    Foreach($member in $members) 
    { 
     $properties = $member.SamAccountName | Get-ADUser -Properties SamAccountName, Company, lastLogon, CN 
     $hash.Username = $properties.SamAccountName 
     $hash.Company = $properties.Company 
     $hash.LastLogon = $properties.lastLogon 
     $hash.CN = $properties.CN 
     $obj = New-Object psObject -Property $hash 
     $array += $obj  
    } 
} 
$array | Export-Csv C:\ -NoTypeInformation 
+0

你好HiTech,我得到以下錯誤:Get-ADGroupMember:無法綁定參數'身份'。無法將類型「Selected.Microsoft.ActiveDirectory.Management.ADGroup」的「@ {samaccountname = ADM_GR_De}」值轉換爲 鍵入「Microsoft.ActiveDirectory.Management.ADGroup」。 在線:6 char:33 + $ members = get-adgroupmember <<<< $ group |選擇samaccountName + CategoryInfo:InvalidArgument:(:) [Get-ADGroupMember],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember –

+0

Get-ADUser:無法驗證參數'Identity'上的參數。參數爲空。提供一個非空參數並再次嘗試該命令。 在行:9字符:31 + $ memprops = GET-ADUser便有<<<< $成員-Properties公司 + CategoryInfo:InvalidData:(:) [獲取-ADUser便有],ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationError,Microsoft.ActiveDirectory .Management.Commands.GetADUser –

+0

Get-ADUser:無法驗證參數'Identity'的參數。參數爲空。提供一個非空參數並再次嘗試該命令。 在線:8 char:58 + $ properties = $ member.SamAccountName | Get-ADUser <<<< - 屬性SamAccountName,Company,lastLogon,CN + CategoryInfo:InvalidData:(:) [Get-ADUser],ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.GetADUser –

0

這是我會做什麼,林肯定你可以縮短它。你應該指定一個搜索庫。一旦你有成員samaccountname,你可以使用Get-ADUser來獲得你想要的任何字段。

$GrpArr = @() 
$Groups = get-adgroup -filter {name -like "adm*"} -searchbase "ou=Groups,dc=all,dc=ca" | select samaccountname 
foreach ($group in $groups) 
{ 
    $GrpArr += $group 
    $members = get-adgroupmember $group | select samaccountName 
    foreach ($member in $members) 
    { 
     $memprops = get-aduser $member -properties company 
     $comp = $memprops.company 
     $grpArr += "$member,$comp" 
    } 
} 
$grpArr | export-csv c:\temp\Groups.csv -NoTypeInformation 
+0

Bill,我收到錯誤:Get-ADGroupMember:無法綁定參數「標識」。無法將類型「Selected.Microsoft.ActiveDirectory.Management.ADGroup」的「@ {samaccountname = ADM_GR_De}」值轉換爲 鍵入「Microsoft.ActiveDirectory.Management.ADGroup」。 在線:6 char:33 + $ members = get-adgroupmember <<<< $ group |選擇SAM帳戶 + CategoryInfo:InvalidArgument:(:) [獲取-ADGroupMember],ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember –

+0

GET-ADUser便有:無法驗證的參數 '身份' 的說法。參數爲空。提供一個非空參數並再次嘗試該命令。 在行:9字符:31 + $ memprops = GET-ADUser便有<<<< $成員-Properties公司 + CategoryInfo:InvalidData:(:) [獲取-ADUser便有],ParameterBindingValidationException + FullyQualifiedErrorId:ParameterArgumentValidationError,微軟。ActiveDirectory.Management.Commands.GetADUser –