1. ホーム
  2. スクリプト・コラム
  3. パワーシェル

Powershellは、ユーザーのプライマリSMTPアドレスを検索します。

2022-01-04 22:18:05

今日、同僚から 列出用户的主SMTP地址后缀是@aus.ddb.com的用户 のレポートを作成するように頼まれました。
Get-ADUserは直接関連情報を取得できますが、メインSMTPはProxyAddressプロパティ内に隠されており、1人のユーザーが複数のメールアドレスを持っている場合、大文字のSMTPがあるものがメインアドレスになります。


スクリプトは以下の通りです。すべてのユーザーの情報を取得し、次に空のオブジェクトを作成し、各オブジェクトのプロパティを処理し、対応する値をオブジェクトに入れ、最後に出力をフィルタリングします。

$users = Get-ADUser -Filter {proxyAddresses -like '*'} -SearchBase "ou=sydney,dc=omnicom,dc=com,dc=au" -Properties proxyAddresses 
$pp=$null
$pp=@{'name'=$null;'primarysmtp'=$null} 
$obj=New-Object -TypeName psobject -Property $pp
  
$result=@() 
foreach($user in $users){ 
$primarySMTPAddress = "" 
foreach ($address in $user.proxyAddresses) 
{ 
  if (($address.Length -gt 5) -and ($address.SubString(0,5) -ceq 'SMTP:') ) 
  { 
    $primarySMTPAddress = $address.SubString(5) 
    break 
  } 
} 
$objtemp=$obj | select * 
$objtemp.name=$user.Name 
$objtemp.primarysmtp=$primarySMTPAddress 
$result+=$objtemp 
} 
$result | where-Object{$_.primarysmtp -like "*aus.ddb.com*"} | sort Name


この記事は、「麻婆豆腐」ブログから転載しています。