需要逗号将 SamAccountName 与组分开

Need comma to separate SamAccountName from groups

我有这个脚本来提取以字母 "m" 开头的用户及其所属的组。脚本的结果没问题,但我需要 SamAccountName 和组在同一行并用逗号分隔,这样我可以在 Excel 文件中更好地安排它。有什么建议吗?

Import-Module activedirectory

$file=".\atos_user_m.csv"

foreach ($suser in (Get-ADUser -Filter {samaccountname -like "m*"})) {
    $user = $suser.SamAccountName
    echo "`r`n"$user"`r`n" | Out-File $file -Append
    foreach ($group in (Get-ADPrincipalGroupMembership -Identity $user)) {
        $group.SamAccountName | Out-File $file -Append
    }
}

只需在组前添加$user。

import-module activedirectory
$file=".\atos_user_m.csv"

foreach ($suser in (get-aduser -filter {samaccountname -like "m*"})) {
    $user = $suser.samaccountName
    foreach ($group in (Get-ADPrincipalGroupMembership -Identity $user)) {
        $user + ',' + $group.SamAccountName  | out-file -filepath $file -append
    }
}

如果您希望给定用户的所有组都与用户名在同一行中,您可以这样做:

foreach ($suser in (Get-ADUser -Filter {samaccountname -like "m*"})) {
    $user = $suser.SamAccountName
    $groups = Get-ADPrincipalGroupMembership -Identity $user |
              Select-Object -Expand SamAccountName
    '{0},{1}' -f $user, ($groups -join ',') | Out-File $file -Append
}

或者像这样(使用管道):

Get-ADUser -Filter {samaccountname -like "m*"} | ForEach-Object {
    $groups = Get-ADPrincipalGroupMembership -Identity $_.SamAccountName |
              Select-Object -Expand SamAccountName
    '{0},{1}' -f $_.SamAccountName, ($groups -join ',')
} | Out-File $file