RSS

OneDrive の Log あつめ – CollectSyncLogs.bat

この投稿は、Office 365  Advent Calendar 2017 の 9 日目の記事です。

昨年の Office 365 Advent Calendar では、OneDrive の Troubleshooting について書きました。
前回の最後に 「OneDrive の Log は、<%USERPROFILE%\AppData\Local\Microsoft\OneDrive> に保存されている」と書きましたが、今回はその中にある Microsoft がトラブルシューティング時に集めている情報について、どんなログを集めているのか、ちょっと見てみましょう。

OneDrive で問題が一度でも発生すると、サポート側へログ ファイルが自動的に送付されるのですが、その際にログ ファイルなどを集める CollectSyncLogs.bat ファイルが作られます。
*問題が発生してない場合は、.bat ファイルは作成されないです。

どこに作成されるかというと、<%USERPROFILE%\AppData\Local\Microsoft\OneDrive> の中に作られる OneDrive のバージョン番号が書かれたフォルダになります。

Place4BatFile

.bat ファイルなので、エディターなどで中が見れます。
どんなファイルを取りに行ってるのかざっと見たところ、こんな感じでした。

  • アプリケーション イベント ログ
    • 新たに “SaveApplicationEventLogs.wsf” というスクリプト ファイルが作成されます。
    • この VSScript の中を見ると、Application と System の両方のイベント ログを取得してます。
      *イベント ログは eventvwr で確認できますね。。。
  • 環境変数一覧
    • set > “%WORKINGDIR%\env.txt”
  • 問題発生時に実行しているタスク (プロセス) 一覧
    • tasklist /v > “%WORKINGDIR%\tasklist.txt”
  • システム情報
    • systeminfo > “%WORKINGDIR%\systeminfo.txt”
  • 起動してるサービスの一覧
    • net start > “%WORKINGDIR%\services.txt”
  • OneDrive の実行 Path のディレクトリとファイルの PATH 一覧
    • dir /S “%CLIENTPATH%” > “%WORKINGDIRONEDRIVE%\tree.txt”
  • レジストリ ファイル
    • レジストリ キーに登録されている、OneDrive のオーバーレイ アイコンの情報
    • レジストリ キーに登録されている、スタート時に実行しているアプリの一覧
    • レジストリ キーに登録されている Run Once アプリの一覧
    • OneDrive に関連するレジストリ キー 全部
    • レジストリ キーに登録されている、AutoPlayHander (自動実行) に関する情報
  • OneDrive の各種ログ フォルダー
    • robocopy /s “%CLIENTPATH%\logs” “%WORKINGDIRONEDRIVE%\logs”
    • robocopy /s “%CLIENTPATH%\settings” “%WORKINGDIRONEDRIVE%\settings”
    • robocopy /s “%CLIENTPATH%\setup\logs” “%WORKINGDIRONEDRIVE%\setup\logs

上記にある各コマンドは cmd.exe で、自分の PC で実行して確認できます。気になった人はお試しを。

最後にこれらのファイルはデスクトップ上に “OneDriveLogs_<日付>.cab” の CAB ファイルにまとめられてアップロードされて、最後に wldrxireport@microsoft.com あてに通知を送ります。

最後の OneDrive の各種ログ フォルダー以外は、特に特別な情報は集めてなくて、よくあるクライアント アプリケーションのトラブルシューティング時にエンジニアが確認しようとするログばかりですね。
でも、これらの環境ログから、既知の問題の条件と照らし合わせたりできますので、重要です。

COPY_LOGS

ちなみに、OneDrive の各種ログ フォルダー内にある .etl や .odl ファイルは、MS のサポートエンジニアがデバッグ時に確認する Dump ファイルとアプリケーションのトレース ファイルです。
既知の問題に合致しない場合は、このファイルが必要になりますが、ここの解析は MS のサポートにお任せしましょう。

興味のある人がいれば、また Office 365 勉強会などで、みんなと一緒に詳細に追っていきたいと思います。
その時に機会があれば、どこまで内部の動きを見れるか (トレースファイルを解析できるか) Try してみたいと思います!

 
コメントする

投稿者: : 2017-12-09 投稿先 Office 365

 

OneDrive for Business の Troubleshooting の基本

こんにちは。久しぶりの Blog 更新です。

ちょうど 1 年前の Advent Calendar に書いて以来ってことは。。。来年は、もうちょっと頑張ります。

さて、Microsoft を 11 月に卒業し、KonicaMinolta Inc. で働き始めたわけですが、早速 SharePoint Online も使い始めています。今回は、私が OneDrive for Business のサポートをしていた時に基本的な問題の切り分けに使っていたトラブルシューティングの基本的なところを、おさらいしておきたいと思います。

OneDrive for Business で問題が発生して、サポートへ連絡する前に、これらの情報を抑えておいてもらえると、サポート側としてはスムーズに対応ができるので、お互いに Happy になれるかと。。。

容量について

既定では、1 TB。以下の PowerShell コマンドで、まずは 5 TB まで引き上げられる。 5 TB 以上必要な場合はサポートへ連絡。

>Set-SPOTenant –OneDriveStorageQuota <QUOTA (単位は MB)>

上記、設定後、既存の OneDrive のサイトにも反映させるには、以下のように実行。

>Set-SPOSite –identity <site URL> –StorageQuotaReset

ODB_StorageMgmt

また、以下のコマンドで、OneDrive サイトの詳細を確認できます。

>Get-SPOSite –identity <siteURL> –Detailed | select *

容量関係の情報だけ確認したい場合は、”Storage*” で選択するとわかりやすです。

>Get-SPOSite –identity <siteURL> –Detailed | select Storage*

OneDrive アクセス時に 404 エラーや関連付けID (Correlation ID) が表示される場合

404 エラーや関連付け ID が表示される場合は、Fiddler で問題再現時の Log を取得しましょう。Fiddler についてはまた詳しく紹介できればと思っています。

  1. Fiddler を起動させるとすぐに HTTP 通信のキャプチャが始まるので F12 を押して、ストップさせます。
  2. ツールバーの [X] ボタンから “Remove all” で、取得したログを消しておきましょう。
  3. そのままだと、Office365 で使われている HTTPS 通信のキャプチャーができないので、[Tools] – [Telerik Fiddler Options] を開き、”HTTPS” タブの [Decrypt HTTPS traffic] にチェックを入れます。
  4. すると、Trust the Fiddler Root certificate? と聞いてくるウィンドウが表示されるので、[Yes] をクリック。FiddlerOption
  5. さらにセキュリティ警告とともの、証明書をインストールしますか?と聞かれるので、[はい] をクリック。
  6. 通常は、すべての Process の HTTPS 通信をキャプチャーしてしまうので、必要なプロセスのみに絞るために、[(+)Any Process] とあるボタンをドラッグして、OneDrive を表示させているサイトへドラッグします。
  7. これで準備完了です。F12 キーを押して Capturing モードにして、問題を再現させます。

問題を再現させた後、エラーが表示されたプロセスをクリックして、Inspectors で Response Headers を確認します。Miscellaneous に記載されている SPRequestGuid の値が関連付け ID (Correlation ID) となります。SharePoint Online の場合はサポート エンジニアのみが、この関連付け ID を使って ULS Log を確認できますので、エラー内容が表記されていない場合、問題を特定するためにはこれらの情報 (Fiddler Log) をサービス リクエストと一緒に送付しましょう。また、Colleration ID は古いものだとマイクロソフトのサポート側でもログが取得できない場合があります。できる限り最新のログを送付しましょう。

CorrelationID

問題が再現したタイミングの Process がわかりにくい場合は、スタート ボタンから “PSR” と入力して “ステップ記録ツール” を起動させて、記録させた状態で Fiddler を起動し、問題を再現させれば “ステップ記録ツール” の情報から問題発生時刻を確認して Fiddler ログと照らし合わせることができます。

また、エンドユーザーとかに、もっと簡単に Fiddler のログだけとりあえず取得させたい場合は、FiddlerCap が便利です。

OneDrive の Log など

OneDrive の Log などは、以下に保存されています。

%USERPROFILE%\AppData\Local\Microsoft\OneDrive

  • 17.3.6***.**** というバージョン番号の書かれているフォルダーには各言語ごとのリソースファイルが入っていたりします。
  • セットアップで何か問題が発生していないかなどを確認するには、上記の中の “setup” 内の [Logs] フォルダーに、.log ファイルが保存されています。
  • また、設定の構成情報やポリシーは、”Settings” 内の [Business*] フォルダーに、global.ini (構成情報)、ClientPolicy.ini (動作ポリシー情報) として記載されています。
  • “Logs” 内にある、各フォルダー内などにある、.odl や .etl ファイルには、同期時のトランザクションが記録されています。これらのファイルの内容は特殊なツールが必要になりますので、同期時の問題でできる範囲のトラブルシューティングで解決しない場合は、これらを zip などで圧縮してサポートへお問い合わせいただくと、初動が早くなるかと思います。

その他にも、アプリケーションとしてのエラーを見る場合は、eventvwr (イベント ビューアー) などでエラーが出ていないかを確認したり、することもあります。個人的には、個人用の OneDrive と同期ツールが一緒になったタイミングの NGSC (Next Generation Sync Client) と呼ばれるバージョンになったぐらいから、かなり問題は少なくなってきていると思います。

問題解決の時間短縮を図る場合は、上記のような基本的な情報を確認しておき、サポートへ問い合わせの際はこれらの内容を伝えられるようにしておくと、スムーズに解決できると思います。

最後に、トラブル シューティングに活用できる、公開されている KB やオンライン サポートのページを紹介しておきます。

最新版の OneDrive のダウンロード先 (最新版の OneDrive がインストールされているかどうかも確認できる)

企業などエンタープライズ環境での新しい OneDrive 同期クライアントの展開

  • Business アカウントを既定にするとか、展開ツールはこちら
  • グループ ポリシーとレジストリを使って、管理設定をする方法についてはこちら

KB3125202 新しい OneDrive for Business 同期クライアントを使用してファイルおよびフォルダーを同期する際の制限事項

その他の OneDrive 関連の Link

 
1件のコメント

投稿者: : 2016-12-10 投稿先 Office 365

 

タグ: ,

PowerShell を使って、Office 365 で利用しているすべてのサイト コレクションの使用容量を表示する

*Update 06/16/2018
第22回 Office 365 勉強会でお話した内容に沿って Update しました。

この投稿は、PowerShell Advent Calendar 2015 に参加しています。

久しぶりに技術系の Blog の連続で、Program Manager 時代を思い出しながら、記事を書いてます。。。

今回は PowerShell に関する内容ということで、私が仕事でよく聞くちょっと困ったことを、PowerShell を使って確認できるようにしてみたいと思います。

困ったこと、というのは Office 365 で利用できる記憶域のことになります。

詳細は、下記に紹介する Link 先を参照いただきたいのですが、Office 365 を購入するとテナントあたりのデフォルトの容量 10GB + ユーザー数 x 500 MB + ボーナス容量 が、割り当てられます。

どのくらい利用しているか?のざっくりとした容量は SharePoint 管理センターで確認できますが、Office 365 グループで使うサイト コレクションの記憶域は、SharePoint Online にプールされた記憶域から自動的に利用されるため、SharePoint 管理センターのサイト コレクションの情報を見る限りは問題なさそうなのに、テナントとしては、容量がもうギリギリいっぱいまで使われてしまっている、といった状況に陥ることも少なくありません。

しかし、Office 365 グループのサイト コレクションは、SharePoint 管理センターに表示されないため、どこでどのくらいの容量が使われているのかを把握するのは難しいです。
そこで、以前 フォーラムに、次の記事を投稿させていただいましたが、これを一発で表示させる PowerShell スクリプトを作成してみましたので、お試しいただければと思います!

Office 365 フォーラム: Office 365 グループのサイト コレクションの使用容量の確認方法

使い方

  1. Get-AllSPOSitesInfoJ.ps1.txt をダウンロード
    (*うまくいかなかったら古いバージョン Get-AllSPOSitesInfoJ_old.ps1.txt を!)
  2. ファイルをメモ帳などで開き、次の個所を自分のテナント用に書き換えて上書き保存します。
    # SharePoint 管理センターの URL
    $AdminURI = ‘https://<テナント名>-admin.sharepoint.com# テナントの Office 365 Global 管理者のアカウントと、パスワードを設定します。
    $AdminAccount = “テナントの管理者のアカウント
    $AdminPass = “テナントの管理者のパスワード
  3. 適切なところにファイルを置いて、拡張子 .txt を取り除き、Get-AllSPOSitesInfoJ.ps1 にします。
  4. スタート メニューから Windows PowerShell を探し、右クリックして、管理者権限で実行します。
  5. >cd c:\users\<ユーザー名>\document と、手順 2. で置いたところをディレクトリを指定します。
  6. PS c:\users\<ユーザー名>\document > Get-AllSPOSitesInfoJ.ps1 と入力して実行
  7. 途中 WARNING が出ても無視して OK です。
  8. すると下記のような感じで出力が終わります。

Get-CommandResult

結果の表示

最初に SharePoint 管理センターから確認できる サイト コレクションの一覧が、Title、Url、StorageUsageCurrent (現在の使用容量: 単位 MB)、StorageQuota の情報と共に出力されます。

*追記: 新しい SharePoint Online 管理センター (Preview) だと、Groups のサイト コレクションも表示されています。
(でも、容量とかはまだ表示されてない。)
* Exchange Online で WinRM のエラーが出たら、ネットワーク プロファイルの確認を!
> winrm cp とか便利。

そのあと、Office 365 Groups で使われているサイト コレクションが、同じ情報をもって表示されます。

フォーラムにも書きましたが、SharePoint Online 管理 Shell には、Office 365 のサイト コレクションの情報を得るためのコマンドがないので、Exchange Online の Get-UnifiedGroup で抽出し変数 $o365GroupsInfo に格納して、#o365GroupsInfo[0].SharePointSiteUrl で URL を取得して、Get-SPOSite を –Detailed オプションつけて使用容量 (StorageUsageCurrent) を取得してます。

Get-SPOSite コマンドは、通常では -Detailed オプションつけなくても、StorageUsageCurrent の情報が入ってくるのですが、Groups のサイト コレクションに対しては、-Detailed オプションつけないと出てこなかったですね。もちろん、本来は TechNet に書かれているようにつける必要があるのですが。。。余談でした。

参考 Link

あんまりきちんとテストしてないので、至らないところもあるかと思いますが、フィードバックいただければ、善処いたします!また、オプションで、個人用サイトも表示できるようにとか、レポート出力も実装していきたいですね。

*12/18 追記。変数の値を ” (ダブル クォート) で囲ってしまってたので、’ (シングル クォート) にサンプルを変えました。
パスワードの $ とか入ってたら、うまく動作しなかったですね。。。

 
コメントする

投稿者: : 2015-12-17 投稿先 Office 365