我已经获得这个脚本从CSV获得预定义用户,然后检查是否有任何用户‘成员’的一些DLs。
脚本按照预期工作,但是我需要您的支持才能在其中添加Export-Csv。
你能?
$userlist = Get-Content "C:\temp\users_Sam account names.csv"
foreach ($username in $userlist) {
$grplist = (Get-ADUser $username –Properties SamAccountName, MemberOf).MemberOf | ? {$_ -like "CN=DL name*"}
foreach ($group in $grplist) {
select (Get-ADGroup $group).name , (Get-ADUser $username –Properties displayname).displayname, (Get-ADUser $username –Properties mail).mail , (Get-ADUser $username ).SamAccountName
}
} 发布于 2020-08-26 10:00:32
让我们首先将查询的数量限制为每个用户一个AD,然后使用Select-Object将来自上一个查询的用户信息“粘合”到每个组上:
$userlist = Get-Content "C:\temp\users_Sam account names.csv"
# Assign all output from inside the loop to the variable `$groups`
$groups = foreach ($username in $userlist) {
# Query AD once and save the result to a variable
$userObject = Get-ADUser $username –Properties samAccountName,memberOf,mail
$grplist = $userObject.MemberOf | ? {$_ -like "CN=DL name*"}
foreach ($group in $grplist) {
# Query AD for group name, then use calculated properties to combine with data from the `$userObject` query
Get-ADGroup $group |Select Name,@{Name='DisplayName';Expression={$userObject.displayname}}, @{Name='Email';Expression={$userObject.mail}}, @{Name='UserName';Expression={$userObject.samAccountName}}
}
}现在,所有输出都保存到$groups中,导出到CSV就像在底部添加以下行一样容易:
$groups |Export-Csv -Path C:\path\to\groupMemberships.csv -NoTypeInformationhttps://stackoverflow.com/questions/63594975
复制相似问题