社畜の所業

社畜の所業

Microsoft365の機能について解説をしていきたいと思います。このブログの情報をご活用いただければ幸いです。たまに他の情報も取り入れていきたいと思います。

※このサイトはPR記事を含みます。

【Microsoft365参考書】コンテンツの検索にて検索対象を特定のドメインのユーザーのみとすることができるか?

[コンテンツの検索] の検索対象を全ユーザーではなく、特定のユーザー制限する場合、アクセス許可フィルターの機能を利用することで可能です。 

なお、ドメイン単位で制御する場合、EmailAddresses を対象に "*ドメイン" と後方一致で指定することで可能ですが、想定していないユーザーが検索対象となることがあり、確実ではないようです。

  

一つの方法として、カスタム属性 (CustomAttribute) をドメインごとに固有の値を登録し、アクセス許可フィルターの条件として CustomAttribute を指定することで確実にドメイン単位での制御が可能です。 

  

以下に手順をご紹介したいと思います。

 

 

 

1. ドメインごとに CustomAttribute の値を登録 

  

1. 対象のメールアドレスを [Identity] 列、カスタム属性を [CustomAttribute1] 列として CSV ファイルを作成します。 

  

例: 

Identity,CustomAttribute1 

user02@contoso.com,ドメイン1 

 user03@contoso.com,ドメイン1 

 user04@contoso.onmicrosoft.com,ドメイン2 

 user05@contoso.onmicrosoft.com,ドメイン2 

  

  

<UTF-8 での保存の手順> 

  1-1. メモ帳を起動し、上記の形式で登録する内容を記載します。 

  1-2. ファイル] - [名前を付けて保存] の順にクリックします。 

  1-3. ファイルの種類で「すべてのファイル」を選択します。 

  1-4. 文字コードで「UTF-8」を選択します。 

  1-5. [保存] をクリックします。 

  

2. 以下の Windows PowerShell コマンドレットを実行ます。 

以下のサイトの手順にて、Exchange Online に接続してから実行してください。

 

it-bibouroku.hateblo.jp

 

[基本構文] 

Import-CSV "<CSV ファイルのパス>\<ファイル名>.csv" | foreach {Set-Mailbox -Identity $_.Identity -CustomAttribute1 $_.CustomAttribute1 } 

  

[実行例] 

Import-CSV "C:\Temp\Attribute.csv" | foreach {Set-Mailbox -Identity $_.Identity -CustomAttribute1 $_.CustomAttribute1 } 

  

3. 以下の Windows PowerShell コマンドレットを実行し、テナント内のユーザーメールボックスを対象として、設定が反映されたことを確認します。 

  

[構文] 

Get-Mailbox -ResultSize unlimited -RecipientTypeDetails UserMailbox | Select DisplayName,PrimarySmtpAddress,CustomAttribute1 | Export-CSV -Encoding UTF8 -Path <ファイルパス\ファイル名>.csv -NoTypeInformation 

  

[実行例] 

Get-Mailbox -ResultSize unlimited -RecipientTypeDetails UserMailbox | Select DisplayName,PrimarySmtpAddress,CustomAttribute1 | Export-CSV -Encoding UTF8 -Path C:\temp\UserMailbox.csv -NoTypeInformation 

  

<出力結果> 

DisplayName : 表示名 

PrimarySmtpAddress : プライマリアドレス 

CustomAttribute1 : カスタム属性 

  

 

 

2. アクセス許可フィルターを設定します。 

以下の公開情報をもとにセキュリティコンプライアンスセンターに接続してから実行してください。 

  

it-bibouroku.hateblo.jp

  

[構文]  

New-ComplianceSecurityFilter -FilterName "フィルター名" -Action All -Users "検索実行者のメールアドレス" -Filters "Mailbox_EmailAddresses -eq '検索対象とするドメインのカスタム属性'" 

  

[実行例]  

New-ComplianceSecurityFilter -FilterName "contoso" -Action All -Users "Admin@contoso.com" -Filters "Mailbox_CustomAttribute1 -eq 'ドメイン1'" 

  

  

learn.microsoft.com

 

コンテンツの検索については、以下の記事でご紹介しておりますので参考としてくださいね。

 

it-bibouroku.hateblo.jp

 

【Microsoft365参考書】予定表アイテムの作成者を特定するには?

 

予定表のアイテムの作成者を特定する場合は Get-CalendarDiagnosticObjects によって取得可能なオブジェクトログにて確認できます。

 

ただし、Get-CalendarDiagnosticObjectsのコマンドレットは、基本的にはトラブルシュートを行う際に予定表のログ情報を確認するためのものであり、削除済みのアイテムも含めて、1 つの予定アイテムに対して複数の情報が出力されます。

 

また、1 つの予定アイテムに対して複数のログが存在し、当該予定表の登録されている予定アイテムの全てのデータが出力されない可能性がありますので、確実に確認できない可能性がありますのでご注意ください。


なお、コマンドレットにて一度に取得できる件数は、1メールボックスにつき 1,000 件までとなります。

 

下記 URL を参照し、Exchange Online に接続してから実施してください。

 

it-bibouroku.hateblo.jp

 

 

 

 

Csv ファイルに特定のアイテムのログを出力するコマンドレット

[構文]
Get-CalendarDiagnosticObjects -Identity "対象のメールアドレス" -Subject "該当の予定アイテムの件名" | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:\Temp\DiagnosticObjects.csv"

 

[実行例]
Get-CalendarDiagnosticObjects -Identity User@contoso.com -Subject "Item01" | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:\Temp\DiagnosticObjects.csv"

 

出力した CSV の各属性について

CalendarLogTriggerAction … Create, Update, MoveToDeletedItems など、操作内容となります
ClientInfoString … 変更を行ったアプリケーション情報などと想定されます。
CreationTime … 該当アイテムが作成された日時 (UTC) です。
DisplayAttendeesAll … 出席者の表示名となります。
※ 出席者が多い場合、すべては表示されないように見受けられます。
GlobalObjectId … 1 会議に付番されるユニークな ID となります。
IsOrganizerProperty … 開催者のアイテムかを表します。
ItemClass … アイテムの種類となります
・ IPM.Appointment (予定、会議アイテム)
・ IPM.Schedule.Meeting.Request (会議出席依頼メール)
・ IPM.Schedule.Meeting.Resp.Pos (承諾メール)
・ IPM.Schedule.Meeting.Resp.Neg (辞退メール)
NormalizedSubject … 会議の件名となります。
SubjectProperty … アイテムの件名のように見受けられます。
OriginalLastModifiedTime …イベントを順序付けるための主ソートフィールドのように見受けられます。
ParentDisplay … 該当アイテムが格納されているフォルダー名となります。
ResponsibleUserName … 変更を行ったユーザー情報のように見受けられます。
StartTime … 予定の開始日時 (UTC) となります。
EndTime … 予定の終了日時 (UTC) となります。
SenderEmailAddress … 開催者の LegacyExchangeDN

 

 

 

上記から、アイテムの開催者情報となる "SenderEmailAddress" もしくは、変更操作を行ったユーザー名と見られる "ResponsibleUserName" を確認できます。

ただし、"SenderEmailAddress" および "ResponsibleUserName" は LegacyExchange DN という一意の値が出力されるため、ユーザーの判断ができません。

そのため、当該ログのメールアドレスを確認する際は別途以下のコマンドの実行が必要です。

 

[構文]
Get-Recipient "SenderEmailAddress もしくはResponsibleUserName の出力値" | select DisplayName,PrimarySmtpAddress

 

learn.microsoft.com


 

 

【Microsoft365参考書】Teamsチャットの保持機能を有効にしている場合、メールボックスが削除されない?

Microsoft Purview のアイテム保持ポリシーにて、Teams チャットの保持機能が有効化されている場合、Teams チャットはメールボックスに格納されるため、メールボックスに対して保持が有効となります。

 

本来、ExchangeOnlineのライセンスを剥奪するとメールボックスは無効化され、30日経過後に完全削除されます。

ただし、訴訟ホールドなどでメールボックスに保持機能を有効化している場合は、ExchangeOnlineのライセンスを剝奪しても、メールボックスがアクティブのまま残り続けます。 

Teams チャットの保持機能が有効である場合も同様に、メールボックスに保持が有効となるため、Exchange Online のライセンスを剥奪しても、メールボックスは削除されないのです。

 

そのため、Teams チャットの保持機能から対象のメールボックスを除外しなくてはいけません。

 

また、保持機能を無効に変更した際に、[管理フォルダーアシスタント] が走査したタイミングで DelayHoldApplied や DelayReleaseHoldApplied の属性 (遅延保持) が有効になり、保持機能を完全に無効化しない動作があります。 

 

そのため、アイテム保持ポリシーのTeams チャットの除外設定、遅延保持の無効化の作業をExchange Online のライセンスを剝奪する前に実施する必要があるということです。

なお、保持機能を無効化することでTeamsチャットは完全削除され、復元することができませんので、[コンテンツの検索] で PST ファイルなどにバックアップを取っておくことをおすすめします。

 

 

it-bibouroku.hateblo.jp

 

手順については、以下にご紹介していきたいと思います。

 

 

 

1. Teams のチャット の保持設定から除外する設定 

1. 管理者にて、Office 365 サービスへサインインします。 

2. Microsoft365 管理センターを開き、画面左ペインの [管理センター] - [コンプライアンス] をクリックします。 

3. Microsoft Purview にて、[データライフサイクル管理] > [Microsoft 365] をクリックし、上部の [アイテム保持ポリシー] をクリックします。 

4. 該当のポリシーの [… (操作)] をクリックし、[編集] をクリックします。 

5. [アイテム保持ポリシーに名前を付ける] と [作成するアイテム保持ポリシーの種類を選択する] 画面は、そのまま [次へ] をクリックします。 

6. [Teams のチャット] の [除外] 欄の [編集] をクリックします。 

7. 対象となるユーザーを選択し、[完了] をクリックし、[次へ] をクリックします。 

※ 一覧に該当のユーザーが存在しない場合は、検索バーに該当のユーザーの表示名、メールアドレスを入力しエンターキーを押して検索します。 

8. [コンテンツを保持するか、削除するか、または両方を行うかを決定します] 画面は、そのまま [次へ] をクリックします。 

9. [送信] をクリックします。 

 

 

 

2. 遅延保持を無効化する 

以下の記事を参考にExchangeOnlineに接続してから実行します。

 

it-bibouroku.hateblo.jp

 

1.  管理フォルダアシスタントを手動で走査させるコマンド 

[構文] 

Start-ManagedFolderAssistant -Identity <対象ユーザーのメールアドレス> 

 

[実行例] 

Start-ManagedFolderAssistant -Identity user001@contoso.com 

 

一度のコマンドレットの実行では反映されない場合があるため数回(2 ~ 3 回)コマンドレットを実行してください。 

 

2. 遅延保持パラメータの設定状況を確認する 

[構文] 

Get-Mailbox -Identity <対象ユーザーのメールアドレス> | select Displayname,DelayHoldApplied,DelayReleaseHoldApplied 

 

[実行例] 

Get-Mailbox -Identity user001@contoso.com | select Displayname,DelayHoldApplied,DelayReleaseHoldApplied 

 

[結果表示例] 

DisplayName DelayHoldApplied DelayReleaseHoldApplied 

----------- ---------------- ---------------------- 

user001                 True                  False 

 

※ DelayHoldApplied、DelayReleaseHoldApplied の既定値は “False” となります。 

※ DelayHoldApplied、DelayReleaseHoldApplied のいずれか、または両方が "True" となっていることを確認下さい。 

 

3. True となっている遅延保持パラメータの無効化を行います。 

 

<"DelayHoldApplied" パラメータの無効化 >

 

[実行例] 

Set-Mailbox -Identity user001@contoso.com -RemoveDelayHoldApplied 

 

<"DelayReleaseHoldApplied" パラメータの無効化 >

 

[実行例] 

Set-Mailbox -Identity user001@contoso.com -RemoveDelayReleaseHoldApplied 

 

4. 実行結果確認 

[構文] 

Get-Mailbox -Identity <対象ユーザーのメールアドレス> | select Displayname,DelayHoldApplied,DelayReleaseHoldApplied 

 

[実行例] 

Get-Mailbox -Identity user001@contoso.com | select Displayname,DelayHoldApplied,DelayReleaseHoldApplied 

 

[結果表示例] 

DisplayName DelayHoldApplied DelayReleaseHoldApplied 

----------- ---------------- ---------------------- 

user001                False                  False 

 

※ DelayHoldApplied、DelayReleaseHoldApplied ともに False となっていれば問題ありません。

 

learn.microsoft.com

 

 

 

【Microsoft365参考書】Powershellでパスワードリセットをするには?

今回は、Powershellのコマンドレットでパスワードリセットを実行する方法についてご紹介したいと思います。

 

 

事前準備

下記サイトをもとにMicrosoft Graph PowerShell 用モジュールのインストールをお願いいたします。 

  

 

it-bibouroku.hateblo.jp

 

  1. Windows PowerShellを右クリックして[管理者として実行で起動します。 
  1. 以下のコマンドレットを実行し、管理者ユーザーのID とパスワードを入力します。 

  

【コマンドレット】 

Connect-MgGraph -Scopes "Organization.Read.All","User.ReadWrite.All","Directory.AccessAsUser.All","Directory.ReadWrite.All" 

※ Scopes には、今回操作を行う内容に適した値を指定し、アクセス許可の承認をおこなう必要があるため本件ではパスワード変更を行いますので、["Directory.AccessAsUser.All","Directory.ReadWrite.All"] も指定しています。 

  

  1. 以下のコマンドレットを実行し、モジュールをインポートします。

  

【コマンドレット】 

Import-Module -Name Microsoft.Graph.Users 

  

 

 

ユーザーのパスワードをリセットする

以下のコマンドレットを実行しパスワードをパスワードをリセットします 

  

【コマンドレット】 

$NewPassword = @{} 

$NewPassword["Password"]= "変更後のパスワード" 

$NewPassword["ForceChangePasswordNextSignIn"] = $False 

Update-Mguser -UserId <対象ユーザーのユーザー名> -PasswordProfile $NewPassword 

  

【実行例】 

$NewPassword = @{} 

$NewPassword["Password"]= "Abcd1234" 

$NewPassword["ForceChangePasswordNextSignIn"] = $False 

Update-Mguser -UserId User01@contoso.com -PasswordProfile $NewPassword 

  

※ 上記実行例では、User01@contoso.com のパスワードを Abcd1234 に本パスワードとして設定しています。 

※ 一時パスワードに設定する場合は、["ForceChangePasswordNextSignIn"] =  $True に指定してください。 

【Microsoft365参考書】リソースメールボックスに登録されている予定内容一覧を抽出するには?

リソースメールボックスに登録されている予定表の一覧を抽出する方法として、Outlook クライアントの一覧ビュー機能を用い、リソースメールボックスの予定アイテムの情報をコピー & ペーストすることで可能です。 

 

以下に手順をご紹介していきたいと思います。

 

 

 

Outlook クライアントで一覧ビューから予定アイテムを Excel にコピーする方法 

Outlook クライアントでは、予定表を一覧表示ビューに変更することで件名や場所、予定の開始終了日時を一覧で確認し、コピー & ペーストによって Excel などにコピーすることが可能です。 

 

なお、一覧表示ビューにて自分自身以外の共有予定表の参照を行う場合、参照を行うユーザーが対象のメールボックスに対して、参照者 (Reviewer) 以上のアクセス権限が設定されている必要があります。 

 

 

 

他のメールボックスに参照者権限を追加する方法 

以下のサイトをもとにExchange Online に接続します。 

 

it-bibouroku.hateblo.jp

 

Reviewer のアクセス許可の付与 

<構文> 

Add-MailboxFolderPermission -Identity "リソースメールボックスのアドレス:\Calendar" -User "権限を付与するユーザーメールアドレス" -AccessRights "アクセス許可" 

 

<実行例> 

Add-MailboxFolderPermission -Identity MBX01@contoso.com:\Calendar -User User01@contoso.com -AccessRights "Reviewer" 

 

※ 以下のエラーが発生した場合は、コマンドレット内の "Calendar" 部分を "予定表" に変更して実行してください。 

['MBX01:\Calendar' が見つからなかったため、操作を実行できませんでした。] 

 

<確認用コマンド> 

Get-MailboxFolderPermission -Identity "メールボックスのアドレス:\Calendar" 

 

 

 

Outlook クライアントで一覧ビューから予定アイテムを CSV にコピーする方法 

1. [参照者 (Reviewer)] のアクセス権限を持つユーザーアカウントで Outlook クライアントを起動します。 

2. 予定表画面を表示します。 

3. [個人用の予定表] 上で右クリックし、[予定表の追加] からコピー対象のメールボックスを追加します。 

4. 対象のメールボックス以外のチェックをすべて外し、対象のメールボックスの予定表のみ表示します。 

5. [表示] タブ にて [ビューの変更] > [一覧] をクリックします。 

6. 項目名の表示列の上で右クリックし、[ビューの設定] > [列] から [必須出席者]、[任意出席者]、[作成日時]、[開催者] などの任意の項目を追加します。 

7. 対象のメールボックスの予定アイテムの一覧にて、[Ctrl + A] > [Ctrl + C] で全アイテムをコピーします。 

   ※ 一覧に自身の予定表が表示された場合は、あらためて、項番 4 から対象のメールボックスの予定表のみを選択しなおしてください。 

8. コピーした予定表アイテムを Excel などに [Ctrl + V] でペーストし、CSV 形式で保存します。 

9. 完了後、[表示] タブ にて [ビューの変更] > [予定表] をクリックして表示を戻します。