如何将Powershell中的extensionName导出为CSV而没有其他字符?

时间:2019-02-12 14:51:28

标签: powershell

我正在尝试提供林中管理员帐户的信息报告。所有管理员帐户均以admin开头。管理员帐户的所有者已添加为活动目录中的“ extensionName”属性,我希望将此属性包括在报告中(理想情况下,然后在AD中查找所有者管理器,但这可以分为2部分)。

返回的值似乎是倍数,因此我需要为此选择第一个值,但是当我使用Select @{E={$_.extensionName[0]}}时,CSV文件中的条目显示为@{$_.extensionName[0]=domain\username},我想排除{ {1}}部分

在我转圈的过程中,任何帮助将不胜感激。

@{$_.extensionName[0]=

实际输出结果显示$AdminReport = "C:\Temp\AdminReport.CSV" Remove-Item $AdminReport -ErrorAction SilentlyContinue $STR = "Name,SAM,Enabled,Owner,Group Memberships" Add-Content $AdminReport $STR $AllUsersNow = Get-ADUser –Filter "SamAccountName -Like 'admin*'" Foreach ($ThisUser in $AllUsersNow) { $NameOfUser = $ThisUser.UserPrincipalName $SamOfUser = $ThisUser.SamAccountName $DisabledOfUser = $ThisUser.Enabled $ExtOfUser = Get-ADuser $ThisUser -Properties extensionName | Select @{E= {$_.extensionName[0]}} $GroupsOfUser = (Get-ADPrincipalGroupMembership -Identity $ThisUser).Name -join "; " IF ($NameOfUser -like "*") { $STRNew = $NameOfUser+","+$SamOfUser+","+$DisabledOfUser+","+$ExtOfUser+","+$GroupsOfUser Add-Content $AdminReport $STRNew } } ,而我只想要@{$_.extensionName[0]=domain\username}

2 个答案:

答案 0 :(得分:1)

由于所有数据都存在于对象中,因此从字符串手动构建csv文件没有多大意义。 建立一个集合[PSCustomObject]并将其导出。

## Q:\Test\2019\02\12\SO_54652780.ps1
$AdminReportFile = "C:\Temp\AdminReport.CSV"

$AdminReport = Foreach($User in (Get-ADUser –Filter "SamAccountName -Like 'xb*'")){
    [PSCustomObject]@{
        Name                = $User.UserPrincipalName
        SAM                 = $User.SamAccountName
        Enabled             = $User.Enabled
        Owner               = $User.ExtensionName|Select-Object -First 1
        'Group Memberships' = (Get-ADPrincipalGroupMembership -Identity $User).Name -join "; "
    }
}
$AdminReport
$AdminReport | Export-Csv $AdminReportFile -NoTypeInformation

答案 1 :(得分:0)

我不熟悉extensionName属性。您可以修改这一行代码:

$ExtOfUser = Get-ADuser $ThisUser -Properties extensionName | Select @{E=        {$_.extensionName[0]}}

要满足以下条件:

$ExtOfUser = (Get-ADuser $ThisUser -Properties extensionName).extensionName

如果extensionName是数组,则可能是以下内容:

$ExtOfUser = (Get-ADuser $ThisUser -Properties extensionName).extensionName[0]