如何将Powershell中的extensionName导出为CSV,而无需其他字符?
我试图提供一个在森林管理帐户的信息报告。所有管理员帐户都以admin开头。管理员帐户的所有者已添加为active directory中的“extensionName”属性,我希望将其包含在报告中(理想情况下,然后在AD中查找所有者管理器,但这可以分两部分完成) 返回的值似乎是一个倍数,因此我需要为此选择第一个值,但当我使用如何将Powershell中的extensionName导出为CSV,而无需其他字符?,powershell,Powershell,我试图提供一个在森林管理帐户的信息报告。所有管理员帐户都以admin开头。管理员帐户的所有者已添加为active directory中的“extensionName”属性,我希望将其包含在报告中(理想情况下,然后在AD中查找所有者管理器,但这可以分两部分完成) 返回的值似乎是一个倍数,因此我需要为此选择第一个值,但当我使用select{E={$$\extensionName[0]}时,CSV文件中的条目显示为{$\extensionName[0]=domain\username}我想排除{$\e
select{E={$$\extensionName[0]}
时,CSV文件中的条目显示为{$\extensionName[0]=domain\username}
我想排除{$\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
}
}
实际的输出结果显示
@{$\uU9.extensionName[0]=domain\username}
,我只想domain\username
我不熟悉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]
从字符串手动构建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
这是一种更好的方法-谢谢。虽然“$User.ExtensionName | Select Object-First 1”返回一个空值,所以我使用了另一个答案中的“…-Properties ExtensionName).ExtensionName[0]”来使用您的代码,这非常有效。