MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/19 おすすめ情報に 『 【資格取得者速報】 Aさん 「 Microsoft Security, Compliance, and Identity Fundamentals」 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


【PowerShell】ログイン先のOffice365テナントを都度選べるログインスクリプト
profile-img
投稿者: muto-sanさん
投稿日:2020/01/30 11:11
更新日:2020/01/30 11:17
like-img
分類
技術
テクノロジー
全般
キャリア
運用・保守 / 構築
投稿内容
複数のOffice 365(最近はMicrosoft 365と言うべきなのだろうか?)を同時に操作する必要がある状況になると、PowerShellで都度ログインコマンドを打つのが面倒。。。
自動ログインスクリプトは探せば見つかるので、少し応用してログイン先を都度選べるようなものを作ってみます。

1. 認証情報ファイル作成
「Get-Credential」コマンドを実行して変数にOffice 365管理者の認証情報を格納し、Passwordプロパティを取得します。
このままではSecureString形式になっているので、ConvertFrom-SecureStringからOut-Fileにパイプしてパスワード情報のファイルを作ります。
※ この手順で作成するファイルはパスワードがそのまま記述されるものではありませんが、厳重に取り扱ってください。





2. 手順1を繰り返してテナント分のファイルを作成します

3. ログインスクリプトをガリガリ書く
自分の場合は下記のような感じになりました。
==========================
Write-Output "####Office 365 接続スクリプト####"
$Flag = $true

While ($Flag){
    $Tenant = Read-Host "接続先テナントを選択してください。`r`n(1.テナントA, 2.テナントB, 3.テナントC) "
    if ($Tenant -eq 1){
        $PassFile = "C:\o365Credentials\TenantA.pass"
        $AdminAccount = "admin@tenanta.onmicrosoft.com"
        $TenantName = "テナントA"
        $SPOUrl = "https://tenanta-admin.sharepoint.com"
        $Flag = $false
    }elseif ($Tenant -eq 2){
        $PassFile = "C:\o365Credentials\TenantB.pass"
        $AdminAccount = "admin@tenantb.onmicrosoft.com"
        $TenantName = "テナントB"
        $SPOUrl = "https://tenantb-admin.sharepoint.com"
        $Flag = $false
    }elseif ($Tenant -eq 3){
        $PassFile = "C:\o365Credentials\TenantC.pass"
        $AdminAccount = "admin@tenantc.onmicrosoft.com"
        $TenantName = "テナントC"
        $SPOUrl = "https://tenantc-admin.sharepoint.com"
        $Flag = $false
    }else{
        Write-Output "不正な値が入力されました。"
    }
}

Write-Output "『$TenantName』に接続します。"
Pause

$Password = Get-Content $PassFile | ConvertTo-SecureString
$Cred = New-Object System.Management.Automation.PSCredential $AdminAccount,$Password
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
Import-PSSession $Session -AllowClobber
Connect-AzureAD -Credential $Cred
Connect-MicrosoftTeams -Credential $Cred
Connect-MsolService -Credential $Cred
Connect-SPOService -Credential $Cred -Url $SPOUrl
==========================

スクリプトを実行すると数値の入力を求められ、入力した値に対応したテナントに接続します。


※ AzureAD、MSOnline、SharePoint Online、Teamsのモジュールは事前にインストールが必要です。
ログインスクリプトを再実行することで接続先を変えたりも出来ます。

ただし、今どのテナントに接続しているかわからなくなりがちなので、作業前には「Get-MsolCompanyInformation」コマンド等で接続先を確認する癖をつけておきましょうね。
コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3