Как экспортировать в extensionName в Powershell в CSV без дополнительных символов? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь предоставить отчет с информацией для учетных записей администраторов в лесу.Все учетные записи администратора начинаются с admin.Владелец учетных записей администраторов был добавлен в качестве атрибута extensionName в активную директорию, и я хочу включить это в отчет (и в идеале тогда искать менеджера владельцев в AD, но это можно сделать в 2 частях).

Возвращенное значение, по-видимому, кратно, поэтому мне нужно выбрать первое значение для этого, но когда я использую Select @{E={$_.extensionName[0]}}, запись в файле CSV отображается как @{$_.extensionName[0]=domain\username} Я хочу исключить @{$_.extensionName[0]= part

Любая помощь будет очень цениться, когда я иду по кругу.

$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}, а я просто хочу domain\username

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Нет особого смысла вручную создавать 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
0 голосов
/ 12 февраля 2019

Я не знаком с атрибутом 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...