![](/img/trans.png)
[英]Trying to Export a CSV list of users using Active Directory Module for Windows Powershell
[英]Export Active Directory Users to Excel Using Powershell
我正在嘗試編寫一個腳本,將每個 AD 組的用戶導出到 Excel。 在 Excel 中,我將有一個工作簿,但每個組將有一個單獨的工作表。 但是,我似乎無法讓腳本正常工作。 我究竟做錯了什么?
''''
$A = "group A"
$B = "group B"
$C = "group C"
$D = "group D"
$E = "182"
$F = "182Basic3"
$G = "A182Robots"
$H = "501"
$I = "601"
$J = "765"
$K = "S8808"
$groups = "$A", "$B", "$C", "$D", "$E", "$F", "$G", "$I", "$J", "$K"
$fileName = "C:\users\rqw82758\Desktop\GroupMemberShip.xlsx"
foreach ($group in $groups) {
Get-ADGroupMember $group | select samaccountname, name, @{n='GroupName';e={$group}}, @{n='Description';e={(Get-ADGroup $group -Properties description).description}}
$A| Export-Excel $filename -Autosize -AutoFilter -Append -WorksheetName "A136 Basic"
$B| Export-excel $filename -Autosize -AutoFilter -Append -WorksheetName "A151 Basic"
$C| Export-excel $fileName -Autosize -AutoFilter -Append -WorksheetName "A154 Basic"
$D| Export-excel $fileName -Autosize -AutoFilter -Append -WorksheetName "A182 Basic"
$E| Export-excel $fileName -Autosize -AutoFilter -Append -WorksheetName "A182 Basic2"
$F| Export-excel $fileName -Autosize -AutoFilter -Append -WorksheetName "A182 Basic3"
$G| Export-excel $fileName -Autosize -AutoFilter -Append -WorksheetName "A182 Robots"
$H| Export-excel $fileName -Autosize -AutoFilter -Append -WorksheetName "A501 Basic"
$I| Export-excel $fileName -Autosize -AutoFilter -Append -WorksheetName "A601 Basic"
$J| Export-excel $fileName -Autosize -AutoFilter -Append -WorksheetName "A765 Basic"
$K| Export-excel $fileName -Autosize -AutoFilter -Append -WorksheetName "S8808 Basic"
}
''''
您的代碼的問題是您嘗試在每次迭代中將變量中的所有組名導出到 Excel,而每次迭代中您只檢索一個名稱的信息。 此外,我不會嘗試使用所有這些變量,而是使用包含 Excel 的組名稱和工作表名稱的查找表。
# create a lookup Hashtable with the group names as key and the desired Excel sheet name as value
$lookup = @{
'group A' = 'A136 Basic'
'group B' = 'A151 Basic'
'group C' = 'A154 Basic'
'group D' = 'A182 Basic'
'182' = 'A182 Basic2'
'182Basic3' = 'A182 Basic3'
'A182Robots' = 'A182 Robots'
'501' = 'A501 Basic'
'601' = 'A601 Basic'
'765' = 'A765 Basic'
'S8808' = 'S8808 Basic'
}
$fileName = 'C:\users\rqw82758\Desktop\GroupMemberShip.xlsx'
foreach ($group in $lookup.Keys) {
$result = Get-ADGroupMember -Filter "Name -eq '$group'"
if ($result) {
$result | Select-Object SamAccountname, Name, @{n='GroupName';e={$group}}, @{n='Description';e={(Get-ADGroup $group -Properties description).description}} |
Export-Excel $filename -Autosize -AutoFilter -Append -WorksheetName $lookup[$group]
}
else {
Write-Warning "Could not find a group called '$group'.."
}
}
PS 也可能對屬性objectClass
感興趣,因為Get-ADGroupMember
可以返回“用戶”、“組”和“計算機”類型的對象
這就是你想念的
foreach ($group in $groups) {
Get-ADGroupMember $group | select samaccountname, name, @{n='GroupName';e={$group}}, @{n='Description';e={(Get-ADGroup $group -Properties description).description}}`
|Export-Excel $filename -Autosize -AutoFilter -Append -WorksheetName $group
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.