Powershell连接
我有一个广告查询,可以导出所有组的成员资格,效果非常好Powershell连接,powershell,active-directory,powershell-2.0,Powershell,Active Directory,Powershell 2.0,我有一个广告查询,可以导出所有组的成员资格,效果非常好 Get-QADUser -searchRoot $OuDomain -SizeLimit 0 | Select-Object dn, sAMAccountName, @{Name="Groups";Expression={(Get-QADMemberOf $_ | Select-Object -expandProperty Name) -join ";"}} | export-csv $FilePath | Sort-Object S
Get-QADUser -searchRoot $OuDomain -SizeLimit 0
| Select-Object dn, sAMAccountName, @{Name="Groups";Expression={(Get-QADMemberOf $_
| Select-Object -expandProperty Name) -join ";"}}
| export-csv $FilePath | Sort-Object SamAccountName
结果:
DN SamAccountName Groups
abc.com user1 group1;group2;group3
如何在列中导出上述结果,如:
DN SamAccountName Groups
abc.com user1 group1
user1 group2
user1 group3
请选中而不是-join,它的目的是保存一个(用户)对多个(组)记录,您需要这样做(未测试)。试一试:
$users = Get-QADUser -searchRoot $OuDomain -SizeLimit 0
$users | Sort-Object SamAccountName | % {
$user = $_ | Select-Object dn, sAMAccountName
if ($lastDomain -eq $user.dn) {
$lastDomain = ""
} else {
$lastDomain = $user.dn
}
$groups = Get-QADMemberOf $_ | Select-Object -expandProperty Name
$groups | % {
$user2 = New-Object -TypeName PsObject -Property @{
"Domain" = $lastDomain
"sAMAccountName" = $user.sAMAccountName
"Group" = $_
}
$user2
}
} | export-csv $FilePath
使用-join的目的不是保存一个(用户)到多个(组)的记录,而是需要这样做(未测试)。试一试:
$users = Get-QADUser -searchRoot $OuDomain -SizeLimit 0
$users | Sort-Object SamAccountName | % {
$user = $_ | Select-Object dn, sAMAccountName
if ($lastDomain -eq $user.dn) {
$lastDomain = ""
} else {
$lastDomain = $user.dn
}
$groups = Get-QADMemberOf $_ | Select-Object -expandProperty Name
$groups | % {
$user2 = New-Object -TypeName PsObject -Property @{
"Domain" = $lastDomain
"sAMAccountName" = $user.sAMAccountName
"Group" = $_
}
$user2
}
} | export-csv $FilePath
感谢Seki的格式化。感谢Seki的格式化。嗨,Andy,我收到错误消息“Get QadmMemberof:无法绑定参数'Identity'。无法将“@{DN=CN=test,OU=test1,OU=test,OU=abc,DC=xyz,DC=com;Sam AccountName=k201293}”类型的值Selected.Quest.ActiveRoles.ArsPowerShellSnapIn.Data.ArsUserObject”转换为类型Quest.ActiveRoles.ArsPowerShell SnapIn.Data.IdentityParameter“嗨,安迪,非常感谢,我收到的输出非常完美,它抛出了很多错误消息。我有超过20000万用户。请参阅引发了“System.OutOfMemoryException”类型的异常,如何更正此问题error@Naveenk这是因为管道缓冲内存中的内容的方式,这是由于管道导出csv。事实上,我创建了一个有20K用户的测试广告来尝试它,我看到了这个问题。我可能很快就能看一看。嗨,安迪,我收到错误消息“Get QADMemberOf:无法绑定参数'Identity'。无法将“@{DN=CN=test,OU=test1,OU=test,OU=abc,DC=xyz,DC=com;Sam AccountName=k201293}”类型的“Selected.Quest.ActiveRoles.ArsPowerShellSnapIn.Data.ArsUserObject”值转换为类型Quest.ActiveRoles.ArsPowerShell SnapIn.Data.IdentityParameter“嗨,安迪,非常感谢,我收到的输出非常完美,它抛出了很多错误消息。我有超过20000万用户。请参阅引发了“System.OutOfMemoryException”类型的异常,如何更正此问题error@Naveenk这是因为管道缓冲内存中的内容的方式,这是由于管道导出csv。事实上,我创建了一个有20K用户的测试广告来尝试它,我看到了这个问题。我可能很快就能看一看。