我正在编写PowerShell脚本以提取用户信息的AD报告。大部分报告工作正常,但是我在使组成员身份正常工作方面遇到问题。
Get-ADPrincipalGroupMembership -identity | select name
可以自己工作,只是给我一个清晰的权限列表,但是将信息传递到选择名称中并不能在我的表达式内使用。它什么也没返回。我如何只过滤每个组的名称,同时仍然传递每个要处理的用户。
到目前为止,我尝试过的所有操作都无法返回格式化列表。我总是以太多的数据或空的列结尾。事实发生后,我也尝试过清理数据,但是我无法让正则表达式执行我想做的事情。我的(非功能性)草稿如下所示。
#Clean up Group Membership data
$test = Import-Csv $csvfile
$test | ForEach-Object {
$_.Group_Membership = $_.Group_Membership.Replace('(?<=OU=").*?(?=/,)', ' ')
$_.Group_Membership = $_.Group_Membership.Replace('(?<=DC=").*?(?=/,)', ' ')
}
$test | Export-Csv $csvfile -NoType
$AllADUsers = Get-ADUser -Server $ADServer -SearchBase $SearchBase -Properties * -Filter *
$AllADUsers |
Select-Object @{Label="First Name";Expression={$_.GivenName}},
@{Label="Last Name";Expression={$_.Surname}},
@{Label="Display Name";Expression={$_.DisplayName}},
@{Label="Username";Expression={$_.SamAccountName}},
@{Label="Job Title";Expression={$_.Title}},
@{Label="Company";Expression={$_.Company}},
@{Label="Email";Expression={$_.Mail}},
@{Label="Account Status";Expression={if (($_.Enabled -eq 'TRUE')) {'Enabled'} else {'Disabled'}}},
@{Label="Last LogOn Date";Expression={$_.LastLogonDate}},
@{Label="Group_Membership";Expression={$_.SamAccountName | Get-ADPrincipalGroupMembership}} |
Export-Csv -Path $csvfile -NoTypeInformation
运行此脚本后,我想要一个CSV文件,其中列出了上面的信息,并且只列出了安全组的列表,但是现在它的工作方式让我无所不用其极,而且很混乱。
答案 0 :(得分:0)
如此处建议-link,您可以使用
Get-ADPrincipalGroupMembership -identity test | out-string -stream | sls -caseSensitive "name"