在 PowerShell 中更改输出结果
Change output results in PowerShell
我想获取分配了特定令牌的所有用户 ID。
当我 运行 我的脚本时现在看起来像这样..
Get-ADUser -Filter * -Properties * | Select-Object vasco-LinkUserToDPToken, displayname
#Output#
vasco-LinkUserToDPToken Displayname
{CN=VES0423061,OU=br... User X
{} User X
{} User X
{CN=0067511310,OU=br... User X
{CN=0067077717,OU=br... User X
Example of a full vasco-LinkUserToDPToken :
{CN=VES0976944,OU=Internal Users,DC=mgm,DC=agf,DC=be}
问题是我只想过滤 VES + 它应该像这样显示(不包含不以 VES 开头的空字符串或标记):
VES0423061 User X
看起来你的 属性 'vasco-LinkUserToDPToken' 是一个多值 属性 类型(字符串数组),你需要从中提取 DN。
你可以试试:
Get-ADUser -Filter "vasco-LinkUserToDPToken -like 'CN=VES*'" -Properties 'vasco-LinkUserToDPToken', DisplayName |
Select-Object @{Name = 'vasco-LinkUserToDPToken'; Expression = {
($_.'vasco-LinkUserToDPToken' | Where-Object {$_ -match '^CN=VES.*'}) -replace '.*(VES[^,]+).*', ''}
}, DisplayName
P.S。使用 -Properties *
总是一个坏主意,因为您所追求的只是两个属性。使用 *
强制下拉所有属性,这是浪费时间
如果 -Filter
不适用于此自定义 属性,您始终可以在之后使用 Where-Object 子句,例如:
Get-ADUser -Filter * -Properties 'vasco-LinkUserToDPToken', DisplayName |
Where-Object { $_.'vasco-LinkUserToDPToken' -like 'CN=VES*' } |
Select-Object @{Name = 'vasco-LinkUserToDPToken'; Expression = {
($_.'vasco-LinkUserToDPToken' | Where-Object {$_ -match '^CN=VES.*'}) -replace '.*(VES[^,]+).*', ''}
}, DisplayName
我想获取分配了特定令牌的所有用户 ID。
当我 运行 我的脚本时现在看起来像这样..
Get-ADUser -Filter * -Properties * | Select-Object vasco-LinkUserToDPToken, displayname
#Output#
vasco-LinkUserToDPToken Displayname
{CN=VES0423061,OU=br... User X
{} User X
{} User X
{CN=0067511310,OU=br... User X
{CN=0067077717,OU=br... User X
Example of a full vasco-LinkUserToDPToken :
{CN=VES0976944,OU=Internal Users,DC=mgm,DC=agf,DC=be}
问题是我只想过滤 VES + 它应该像这样显示(不包含不以 VES 开头的空字符串或标记):
VES0423061 User X
看起来你的 属性 'vasco-LinkUserToDPToken' 是一个多值 属性 类型(字符串数组),你需要从中提取 DN。
你可以试试:
Get-ADUser -Filter "vasco-LinkUserToDPToken -like 'CN=VES*'" -Properties 'vasco-LinkUserToDPToken', DisplayName |
Select-Object @{Name = 'vasco-LinkUserToDPToken'; Expression = {
($_.'vasco-LinkUserToDPToken' | Where-Object {$_ -match '^CN=VES.*'}) -replace '.*(VES[^,]+).*', ''}
}, DisplayName
P.S。使用 -Properties *
总是一个坏主意,因为您所追求的只是两个属性。使用 *
强制下拉所有属性,这是浪费时间
如果 -Filter
不适用于此自定义 属性,您始终可以在之后使用 Where-Object 子句,例如:
Get-ADUser -Filter * -Properties 'vasco-LinkUserToDPToken', DisplayName |
Where-Object { $_.'vasco-LinkUserToDPToken' -like 'CN=VES*' } |
Select-Object @{Name = 'vasco-LinkUserToDPToken'; Expression = {
($_.'vasco-LinkUserToDPToken' | Where-Object {$_ -match '^CN=VES.*'}) -replace '.*(VES[^,]+).*', ''}
}, DisplayName