部分的なAD識別名列の内容をユーザーの実際の名前に置き換えるために、セミワンライナーを実行しようとしています。
いいえ:
$_.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] }}
これを行おうとするとすぐに失敗します。これは、使用が許可されていないと想定しているためです。Get-ADUser でその ID パラメーターをフィードするときに、次のコマンドにブレークします。
Get-ADUser -Identity ($devices[0].Identity.DistinguishedName -match ".*\,CN=ExchangeActiveSyncDevices\,(.*)" | Out-Null; $Matches[1])
まったく新しい別の変数を入力して元の内容を変更された内容に置き換えることなく、選択式を使用してこれをどのように達成しますか?