ExchangeOnlineでライセンスが付与された共有メールボックスを探すスクリプト

08.10

長い間、Exchangeを使用していると以前はユーザーメールボックスだったのに、諸事情によって共有メールボックスとして使用することがあります。

共有メールボックスは、ライセンスのついているユーザーメールボックスの権限を利用してメールの送信や予定表の管理をするのでライセンスは不要です。

しかし、管理者がそこまで理解しておらずライセンスが付与されたままの現場があったので以下のスクリプトを作成しました。

今見るとずいぶん増長な書き方をしておりますが、正しくは動くのでそのまま記載いたします。

 

Add-Type -Assembly System.Windows.Forms

[System.Windows.Forms.MessageBox]::Show(“Enter the administrator account of O365.”,”System message”)

$Credential = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirection

Import-PSSession $Session

$Mailbox = Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize Unlimited | Select-Object UserPrincipalName

$Mailbox | % {

$_.UserPrincipalName | Out-File $env:UserProfile\Desktop\room-object.txt -Append

$Number = $number + 1

Write-Output $Number

}

Import-Module MsOnline

Connect-MsolService -Credential $Credential

$Object = Get-Content $env:UserProfile\Desktop\room-object.txt

Remove-Item $env:UserProfile\Desktop\room-object.txt -Force

$Object | % {

$Licenses = $null

$Licenses = Get-MsolUser -UserPrincipalName $_ | Select IsLicensed,Licenses,UserPrincipalName,DisplayName

if($Licenses.IsLicensed -eq $True)

{

$note = $null

$note = $Licenses.DisplayName + “`t” + $Licenses.UserPrincipalName + “`t” + $Licenses.Licenses.AccountSkuId

$note | Out-file $env:userProfile\desktop\Room_Licenses.csv -Append

}

$Number = $Number + 1

Write-output $Number

}

 

これはリスト化する動きなので、それすらも不要であればライセンス削除の動きに変えてください。

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

2018年12月
« 11月    
 12
3456789
10111213141516
17181920212223
24252627282930
31  
ページ上部へ戻る