使用PowerShell解析字符串

时间:2018-05-28 14:37:32

标签: powershell csv parsing

我正在为用户收到报告。 'membership'是一个字符串,每个用户的所有组都在双引号之间。 我需要在每组之间放置\。现在我有:

"GROUP1""GROUP2""GROUP3"

我需要:

"GROUP1"\"GROUP2"\"GROUP3"

现在我的代码是:

foreach ($server in $servers) {
    $Comp = $server
    if (test-connection -computername $Comp -count 1 -quiet) {
        ([ADSI]"WinNT://$comp").Children | ?{$_.SchemaClassName -eq 'user'} | %{
            $groups = $_.Groups() | %{$_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)}
            $_ | Select @{n='Server';e={$comp}},
                @{n='DistingishedName';e={$_.AdsPath}},
                @{n='Nombre';e={$_.FullName}},
                @{n='Departamento';e={$_.Department}},
                @{n='Email';e={$_.EmailAddress}},
                @{n='Active';e={if ($_.PasswordAge -like 0) {$false} else {$true}}},
                @{n='PasswordExpired';e={if ($_.PasswordExpired) {$true} else {$false}}},
                @{n='LastLogin';e={$_.LastLogin}},
                @{n='Description';e={$_.Description}},
                @{n='Groups';e={$Groups -join '"'}}
        } | Export-Csv  $ReportFile -Delimiter ';' -Force -Encoding UTF8 -NoTypeInformation -Append
    } else {
        Write-Warning "Server '$Comp' is Unreachable hence Could not fetch data"  3>>  $LogFile
    }
}

1 个答案:

答案 0 :(得分:1)

尝试-join '"\"'而不是-join '"'