我正在尝试使用用户实际名称替换部分 AD 专有名称列的内容。
IE:
$_.identity.DistinguishedName 中的模式
CN=Touchdown§3939303030313134393535383932,CN=ExchangeActiveSyncDevices,CN=Guy\, Some,OU=Employees,OU=Departments and Categories,DC=something,DC=com
一个行不通的班轮
$devices | Select @{N="Name";E={ (Get-AdUser -Identity ($_.Identity.DistinguishedName -match ".*\,CN=ExchangeActiveSyncDevices\,(.*)" | Out-Null; $Matches[1])).Name }}
仅此一项有效....
$devices[0].Identity.DistinguishedName -match ".*\,CN=ExchangeActiveSyncDevices\,(.*)" | Out-Null; $Matches[1]
和显示...
CN=Guy\, Some,OU=Employees,OU=Departments and Categories,DC=something,DC=com
这也有效,这类似于我想要实现的目标,但不允许我使用 DistinguishedName 并查找实际名称。
$devices | Select @{N="Name";E={ $_.Identity.DistinguishedName -match ".*\,CN=ExchangeActiveSyncDevices\,(.*)" | Out-Null; $Matches[1] }}
一旦您尝试这样做,它就会崩溃,因为我假设您不允许使用 a ; 在 Get-ADUser 中输入该标识参数时中断到下一个命令。
Get-ADUser -Identity ($devices[0].Identity.DistinguishedName -match ".*\,CN=ExchangeActiveSyncDevices\,(.*)" | Out-Null; $Matches[1])
如何通过使用选择表达式来实现这一点,而不必填充一个全新的单独变量并用修改后的内容替换原始内容?