Office 365 に接続されているネットワークで Yammer ユーザーを監査する方法

会社の Yammer ネットワークに、離職するユーザーがいる場合があります。または、一部の Yammer ユーザーが、対応する Office 365 アカウントを持たないため、自分の電子メールとパスワードでログインしている場合もあります。このような状況を分析し、対処するために、Yammer ユーザーを監査できます。これには、Yammer ユーザーのリストをエクスポートし、Office 365 でのこうした Yammer ユーザーの状態を把握して、結果を分析し、対処する必要があります。

Yammer ユーザーの監査だけでなく、Yammer サービスを Office 365 からシームレスに管理する方法を詳しく理解する必要がある場合もあります。たとえば、Office 365 から、Yammer ユーザーのライフ サイクルを通じて管理し、Yammer ユーザーに Office 365 ID を適用することができます。

Yammer ユーザー リストをエクスポートする

監査スクリプトを実行する前に、スクリプトで使用するユーザー アカウントのリストを含む入力ファイルを作成します。入力ファイルを作成するには、Yammer のユーザーのエクスポート機能を使用します。

  1. Yammer の左側のウィンドウで [管理] > [ユーザー管理] を選択します。

    [ユーザー管理] が強調表示されている Yammer の [管理] メニュー
  2. [ユーザーの招待] ページの左側のウィンドウで、[ユーザーのエクスポート] を選択します。

    Yammer の [ユーザーをエクスポート] メニュー
  3. [ユーザーのエクスポート] ページで、[すべてのユーザーのエクスポート] を選択し、[エクスポート] を選択します。

    Yammer の [ユーザーをエクスポート] オプション - [すべてのユーザーをエクスポート]、または [(日付) 以降のすべてのユーザーをエクスポート]
  4. エクスポートしたファイルを保存します。ファイルは .zip ファイル名拡張子の付いた圧縮ファイルとして保存されます。

  5. 圧縮ファイルを保存した場所に移動し、それを展開します。

    注: 圧縮ファイル内にはいくつかのファイルが含まれています。必要なファイルは users.csv というファイルだけです。

Office 365 で Yammer ユーザーの状態を見つける

  1. Windows PowerShell 用 Azure Active Directory モジュール をインストールし、構成します。この手順については、次のドキュメントを参照してください。Azure AD のヘルプ

  2. 次のサンプル コードをコピーし、メモ帳などのテキスト エディターに貼り付け、UserMatchToAzureAD.ps1 という名前でファイルを保存します。

    組織のニーズに合わせて、自由に変更してください。

    <# 
    Copyright 2016
    Microsoft Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions
    and limitations under the License.

    Yammer auditing tool for Office 365 looks for active Yammer accounts
    that are missing from Office 365 / Azure AD.

    Takes User.csv file from Yammer Data Export as the input file.
    Compares all Active Yammer accounts in the input file to user
    lookup in Azure AD. User is searched by both email and proxyAddresses.

    The output csv file is exactly matching the source file, but it includes
    three new columns: exists_in_azure_ad, object_id and azure_licenses:
    exists_in_azure_ad: Will be TRUE or FALSE, and signals that the user
    can be, or cannot be found in Office 365 / Azure AD
    object_id: For users that can be found, lists the ObjectId in Azure AD
    azure_licenses: For users that can be found, lists the SKUs assigned to the
    user in Azure AD. This information can be used to double check
    licenses are assigned correctly for each user.
    Params -
    UseExistingConnection: Defines if the script should try to use an existing
    Azure AD connection. Will prompt for credentials and will
    start a new connection if $FALSE. Default is $FALSE
    InputFile: Source CSV file of users, coming from the Yammer User Export tool
    OutputFile: Output location to save the final CSV to

    Example -
    UserMatchToAzureAD.ps1 -InputFile .\Users.csv -OutputFile .\Results.csv
    #>
    Param(
    [bool]$UseExistingConnection = $FALSE,
    [string]$InputFile = ".\Users.csv",
    [string]$Outputfile = ".\Results.csv"
    )
    if(!$UseExistingConnection){
    Write-Host "Creating a new connection. Login with your Office 365 Global Admin Credentials..."
    $msolcred = get-credential
    connect-msolservice -credential $msolcred
    }
    Write-Host "Loading all Office 365 users from Azure AD. This can take a while depending on the number of users..."
    $o365usershash = @{}
    get-msoluser -All | Select userprincipalname,proxyaddresses,objectid,@{Name="licenses";Expression={$_.Licenses.AccountSkuId}} | ForEach-Object {
    $o365usershash.Add($_.userprincipalname.ToUpperInvariant(), $_)
    $_.proxyaddresses | ForEach-Object {
    $email = ($_.ToUpperInvariant() -Replace "SMTP:(\\*)*", "").Trim()
    if(!$o365usershash.Contains($email))
    {
    $o365usershash.Add($email, $_)
    }
    }
    }
    Write-Host "Matching Yammer users to Office 365 users"
    $yammerusers = Import-Csv -Path $InputFile | Where-Object {$_.state -eq "active"}

    $yammerusers | ForEach-Object {
    $o365user = $o365usershash[$_.email.ToUpperInvariant()]
    $exists_in_azure_ad = ($o365user -ne $Null)
    $objectid = if($exists_in_azure_ad) { $o365user.objectid } else { "" }
    $licenses = if($exists_in_azure_ad) { $o365user.licenses } else { "" }

    $_ | Add-Member -MemberType NoteProperty -Name "exists_in_azure_ad" -Value $exists_in_azure_ad
    $_ | Add-Member -MemberType NoteProperty -Name "azure_object_id" -Value $objectid
    $_ | Add-Member -MemberType NoteProperty -Name "azure_licenses" -Value $licenses
    }

    Write-Host "Writting the output csv file..."
    $yammerusers | Export-Csv $Outputfile -NoTypeInformation

    Write-Host "Done."
  3. Windows PowerShell 用 Azure Active Directory モジュール コマンド ウィンドウで、下の例のようにコマンドを実行し、Yammer からエクスポートした入力ファイルと出力ファイルの場所を渡します。

    使用例:

    UserMatchToAzureAD.ps1 -InputFile .\Users.csv -OutputFile .\Results.csv
    

    スクリプトの実行方法の詳細については、上記の PS1 ファイルを参照してください。

結果を分析して対処する

  1. 結果の CSV ファイルを開き、exists_in_azure_ad 列に FALSE と示されているすべての行をフィルターで除外します。

    それらはそれぞれ Yammer に存在していますが、Office 365 / Azure ADに存在しないアカウントです。それぞれについて、次を実行する必要があるかどうかを判断します。

    • ユーザーにアクセス権を持たせるべきでない場合は、Yammer でそのユーザー アカウントを停止します。

    • Office 365 / Azure AD にユーザーを作成します。

  2. これらの操作が完了したら、これらの手順を最初から再度実行して、Office 365 と Azure AD にすべてのユーザーが見つかるようになったことを確認することをお勧めします。

Office 365 ID を適用する場合、完全な監査後に、全員が Office 365 資格情報でログインし、キャッシュされた資格情報を使用しないようにするため、現在のすべてのユーザーをログオフさせたいと考える場合があります。これを行う場合は、ユーザーにこの旨を伝えてください。詳細については、「Yammer ユーザーに Office 365 ID を適用する」を参照してください。

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×