以下のスクリプトは、CSV ファイルを読み込み、CSV ファイルにリストされているユーザーが所属するグループ(DistributionGroup)の一覧を CSV ファイルに出力するための PowerShell スクリプトです。
目次
スクリプト実行の流れ
- Exchange Online に接続: スクリプトを実行する前に、Exchange Online に接続する必要があります。
- CSV ファイルの読み込み: 入力 CSV ファイルからユーザーのリストを読み込みます。
- ユーザーのグループを取得: 各ユーザーの所属グループを取得します。
- 結果を CSV ファイルに出力: ユーザーとその所属グループを出力 CSV ファイルに書き込みます。
PowerShell スクリプト
# 1. Exchange Online に接続
Connect-ExchangeOnline
# 2. 入力 CSV ファイルのパス
$inputCsvPath = "path\to\input.csv"
# 3. 出力 CSV ファイルのパス
$outputCsvPath = "path\to\output.csv"
# 4. 入力 CSV ファイルを読み込む
$users = Import-Csv -Path $inputCsvPath
$i = 0
$num = @($users).Count
# 5. 各ユーザーのグループを取得
foreach ($user in $users) {
$userPrincipalName = $user.UserPrincipalName
$DN = Get-User -Identity $userPrincipalName | select DistinguishedName
$DN = $DN.DistinguishedName
$groups = Get-Recipient -Filter "Members -eq '$DN'"
if($groups){
$groupmember_info = New-Object -TypeName PSObject
foreach ($group in $groups) {
$group_name = $group.Name
$groupmember_info | Add-Member -TypeName string -MemberType NoteProperty -Name "User" -Value $userPrincipalName -Force
$groupmember_info | Add-Member -TypeName string -MemberType NoteProperty -Name "Group" -Value $group_name -Force
# 6. 結果を出力 CSV ファイルに書き込む
$groupmember_info | select * | Export-Csv -Append -Path $outputCsvPath -Encoding UTF8 -NoTypeInformation -Force
}
}
Write-Host "所属しているグループの確認が完了しました。($i / $num)"
}