【发布时间】:2019-08-20 04:43:56
【问题描述】:
我尝试通过 Firstname, Lastname 从 OU 中导出 AD 组和用户,但我只让它与 Lastname, Firstname 一起使用。
我尝试的所有其他方法都为我提供了一个空字符串。我尝试将 Select-Object 下的行更改为:
@{Name='Member';Expression={$_.FirstName = GetFirstName $_.Name $_.LastName = GetLastName $_.Name}},
$firt = $_.firstname
$last = $_.lastname
@{Name='Member';Expression={$_.name = "$first,$last"}},
这是工作代码,但名称应该调换一下。
$OU = 'OU=Groups,OU=City,OU=Continent,DC=DomainControler, DC=Domain, DC=net' #Change this to get different groups
$DateTime = Get-Date -f "dd-MM-yyyy"
$MyFileName = "CompanyName-Groups_"+$DateTime+".csv"
$Path = Join-Path $PSScriptRoot $MyFileName
$Groups = get-adobject -Filter 'ObjectClass -eq "group"' -SearchBase $OU
$i=0
$tot = $Groups.count
$Data = foreach ($Group in $Groups) {
$i++
$status = "{0:N0}" -f ($i / $tot * 100)
Write-Progress -Activity "Exporting AD Groups" -status "Processing Group $i of $tot : $status% Completed" -PercentComplete ($i / $tot * 100)
Get-ADGroupMember -Identity $Group |
Select-Object @{Name='Group';Expression={$Group.Name}},
@{Name='Member';Expression={$_.Name}},
@{Name='Enabled';Expression={if ($_.ObjectClass -eq 'user') {Get-ADUser $_ | Select-Object -Expand Enabled} else {'NA/Group'}}}
}
$Data | Export-Csv -Path $Path -NoTypeInformation
这是一个示例输出:
Group, "member", enabled
Admin, "Mario, Speedwagon", True
Admin, "Petey, Cruiser", True
Admin, "Anna, Sthesia", False
HR, "Paul, Molive", True
HR, "Phaedra, Lugt", True
IT, "Paul, Molive", False
IT, "Cliff, Hanger", True
应该是这样的:
Group, "member", enabled
Admin, "Speedwagon, Mario", True
Admin, "Cruiser, Petey", True
Admin, "Sthesia, Anna", False
HR, "Molive, Paul", True
HR, "Lugt, Phaedra", True
IT, "Molive, Paul", False
IT, "Hanger, Cliff", True
【问题讨论】:
-
什么是
GetFirstName和GetLastName?哪儿来的呢? ///// 您在Enabled部分调用Get-ADUser... 那么为什么不使用它作为GivenName和Surname的来源? -
导出 .csv 后,我在 Excel 中按
,拆分并将数据放入数据透视表中。Enabled部分让我可以选择按启用或禁用来过滤帐户。甚至@{Name='Member';Expression={$_.GivenName}}给了我一个空的成员字符串。 -
很高兴知道你在正轨上...... [grin]
-
请查看我的答案,它包含
CombinedName,这就是您要查找的内容。 -
最好把顺序放在第一位,之后你可以拆分,重新排序索引并再次加入,即
("Mario, Speedwagon" -split ', ')[1,0] -join ', '
标签: excel powershell csv active-directory