2014/05/05

WSE 2012 R2 / WHS2011 ログ解析に役立つDevice IDとVolume GUIDを調べる方法

今回は、Windows Server 2012 R2 Essentials、および、Windows Home Server 2011の両方に共通する記事です。
両OSとも、クライアントPCのバックアップ、および、リストアを行う機能を有し、プロダクトの目玉となる機能の一つです。
しかし、何らかの原因によってバックアップが失敗する場合があります。
原因を知り対処する際、バックアップ ログが非常に重要ですが、読みなれないと何を書いているのか分かりません。(現在も読み切れないパートがあります)
今回は、バックアップ ログを読み解く際に必要なDevice IDとVolume GUIDを調べる方法をメモ。
2014.05.20 Update
Volume GUIDを取得する方法に「Get-Volume」コマンドレットを追加しました。

3行で分かる、この記事の内容!

  • ログの解析はパッと見、何を意味しているかがよく分からない
  • 英単語とVolume GUIDとDevice IDを把握すると、各行の意味が何となく見えてくる(私的に)
  • Device IDは、コンピュータを示す一意のID、Volume GUIDは、各ボリュームを示す一意のID

WSE 2012 R2/WHSのバックアップ ログ格納先

%programdata%\Microsoft\Windows Server\Logs\backup-mmddyy.log
※mmddyyは、月日年になります。

バックアップ ログの内容

下記ログはWHS2011のバックアップ開始直後のサンプルです。
Device IDはオレンジ色、Volume GUIDは青色です。
Volume GUIDは、文字列の前にラベルがあるので分かりやすいのですが、Device IDはどのデバイスなのか全く分かりません。
[05/02/2014 14:40:59 23c8] Listener TcpEventCallback
[05/02/2014 14:40:59 23c8] Listener TcpConditionCallback from 192.168.xxx.xxx
[05/02/2014 14:40:59  564] Session: ThreadMain for 000000000024F650
[05/02/2014 14:41:00  564] Session: DoBeginVolumeConfig S-1-5-21-3938966973-1240198891-2380492611-1013
[05/02/2014 14:41:00  564] CommitFile: Transaction recorded
[05/02/2014 14:41:00  564] DataFile: Renamed from: F:\ServerFolders\クライアント コンピューター バックアップ\S-1-5-21-3938966973-1240198891-2380492611-1013.VolumeConfig.confignew to: F:\ServerFolders\クライアント コンピューター バックアップ\S-1-5-21-3938966973-1240198891-2380492611-1013.VolumeConfig.configdat
[05/02/2014 14:41:01  564] DataFile: Renamed from: F:\ServerFolders\クライアント コンピューター バックアップ\S-1-5-21-3938966973-1240198891-2380492611-1013.Machine.confignew to: F:\ServerFolders\クライアント コンピューター バックアップ\S-1-5-21-3938966973-1240198891-2380492611-1013.Machine.configdat
[05/02/2014 14:41:01  564] CommitFile: Resetting commit flag in Commit file: F:\ServerFolders\クライアント コンピューター バックアップ\Commit.dat
[05/02/2014 14:41:01  564] StatusPublisher: Machine Changed. SID : S-1-5-21-3938966973-1240198891-2380492611-1013
[05/02/2014 14:41:01 1350] Session: DoGetVolumeConfigs S-1-5-21-3938966973-1240198891-2380492611-1013
[05/02/2014 14:41:01  564] CommitFile: Transaction recorded
[05/02/2014 14:41:01  564] DataFile: Renamed from: F:\ServerFolders\クライアント コンピューター バックアップ\S-1-5-21-3938966973-1240198891-2380492611-1013.Machine.confignew to: F:\ServerFolders\クライアント コンピューター バックアップ\S-1-5-21-3938966973-1240198891-2380492611-1013.Machine.configdat
[05/02/2014 14:41:01  564] CommitFile: Resetting commit flag in Commit file: F:\ServerFolders\クライアント コンピューター バックアップ\Commit.dat
[05/02/2014 14:41:01  564] StatusPublisher: Machine Changed. SID : S-1-5-21-3938966973-1240198891-2380492611-1013
[05/02/2014 14:41:01 1350] Session: DoGetVolumeConfigs S-1-5-21-3938966973-1240198891-2380492611-1013
[05/02/2014 14:41:01  564] BackupProtocol: disconnecting protocol: EncryptedStreamReader::Refill Got 0 bytes from recv
[05/02/2014 14:41:01  564] BackupProtocol: Got closed code 10
[05/02/2014 14:41:01  564] Session: ThreadMain end for 000000000024F650
[05/02/2014 14:41:01 23c8] Listener TcpEventCallback
[05/02/2014 14:41:01 23c8] Listener TcpConditionCallback from 192.168.xxx.xxx
[05/02/2014 14:41:01 26c8] Session: ThreadMain for 000000000024F650
[05/02/2014 14:41:02 26c8] Session: DoBeginReconnectableSession
[05/02/2014 14:41:02 26c8] ReconnectableStream: Created ServerReconnectableStream for {24DF8E01-11E2-4861-86B6-F23E6B30E3C2}, sizes 1048576,16384,1048576,16384
[05/02/2014 14:41:02 26c8] Session: DoBackupSet
[05/02/2014 14:41:02 26c8] BigOperationQueuer: Operation Type 3 Machine Name Client_Pc_Name 
[05/02/2014 14:41:02 26c8] StatusPublisher: Sending Current Operation Status. : 3,S-1-5-21-3938966973-1240198891-2380492611-1013, 0, Client_Pc_Name , 0
[05/02/2014 14:41:02 26c8] BackupSetOperation: Recovery Volume added to Backup Set. Guid : {55894257-C7F2-11E2-BA0C-806E6F6E6963}
[05/02/2014 14:41:02 26c8] BackupSetOperation: D:\ Volume added to Backup Set. Guid : {55894259-C7F2-11E2-BA0C-806E6F6E6963}
[05/02/2014 14:41:02 26c8] BackupSetOperation: C:\ Volume added to Backup Set. Guid : {55894258-C7F2-11E2-BA0C-806E6F6E6963}
[05/02/2014 14:41:02 26c8] BackupSetOperation: Volume to start backup on {55894257-C7F2-11E2-BA0C-806E6F6E6963}
[05/02/2014 14:41:02 26c8] Client_Pc_Name のバックアップ ジョブ 287 が開始しました。

全てのDevice IDはどうやって調査するのか?

WSE 2012 R2やWHS2011のダッシュボードから登録したデバイス(コンピュータ)は、PowerShellを使って調べます。 
Windows 8などコンシューマOSでよく使われるローカル ユーザとは別扱いになります。
PowerShellの起動方法
  • WSE 2012 R2の場合:
    スタート画面にあるWindows PowerShellを管理者権限で実行
  • WHS2011の場合:
    C:\Program Files\Windows Server\Bin\WssPowerShell.exeを管理者権限で実行
Wss Device IDを調べる方法
WHS2011やWSE 2012 R2専用のコマンドレット[Get-WssComputer]を使う事で、デバイス名(コンピュータ名)とDeviceIdを把握する事が可能です。
Get-WssComputer | Format-List -Property DeviceName, Owner, DeviceId

全てのVolume GUIDはどうやって調査するのか?

Explorer(エクスプローラー)を起動すると、ローカル ディスク(C:)やボリューム(D:)等が表示されていますよね。
これは、ボリュームをマウントしドライブ文字が割り当てられている状態です。
Mountvol コマンドを見ていただければ意味が分かると思います。
Mountvol コマンド - Technet ライブラリ
ここで初めて出てくるのがVolume GUIDです。
GUIDは、Globally Unique Identifier(グローバル一意識別子)の頭文字から構成され、WikiPediaでは下記のように説明されています。
GUID (Globally Unique Identifier)またはグローバル一意識別子(ぐろーばるいちいしきべつし)は、コンピュータで使用される識別子の体系のひとつで、世界で一意である事を意図された2進128ビットの値である
バックアップ対象となるパーティションはVolume GUIDという識別子が存在しています。下記レジストリ見てみましょう。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\CPC\volume
{}に囲まれた英数字の羅列がVolume GUIDで、画像左上の赤い囲みの上からFドライブ、Cドライブ、Dドライブになります。
右上Data値はバイナリですが中身を見るとCドライブのラベルである[OS]が記録されています。
2014-05-02_163404
サーバ 再度のBackup ログを見るとVolume GUIDとドライブ文字が一致しています。
2014-05-02_163558
しかし、この調べ方はあまりにも面倒、かつ、危険が付きまといます
おススメの調べ方は、PowerShellのGet-WmiObject コマンドレットを使い、Win32_Volume クラスを調べます。
Get-WmiObject -Class Win32_Volume | Format-Table -Property name, DeviceID
実行結果を見ると、ラベル名とVolume GUIDがすぐに分かります。
※Windows 8 / Windows Server  2012から搭載された記憶域スペースのボリュームも当然ながら下記のように表示されます。

Win32_Volume クラスの詳細を知りたい方は、WMI Fun!!さんのサイトをおススメします!
非常に分かりやすいです。
Win32_Volume クラス - WMI Library
2014.05.20 追記
Get-Volume コマンドレットを使うと同じ結果が得られます。
但し、Windows 8、Windows Server 2012、PowerShell 4.0以上となります。
Get-Volume | Format-Table -Property FileSystemLabel,DriveLetter,ObjectId -AutoSize
Format-List コマンドレットのAutoSize パラメータは、列幅を自動計算し表示します。
GUIDが見切れる場合に便利だと思いましたが、Technet の説明文に「大規模なディレクトリ システムのファイルを再帰的に一覧表示する場合に、AutoSize を使用すると、最初の出力項目が表示されるまでにかなりの時間がかかり、また、大量のメモリが消費されます。」と明記されています。
利用する場合は、気を付けたいところです。
フォーマット コマンドを使用した出力形式の変更 - Technet
余談:Wssユーザ SIDはどうやって探す?
ローカル ユーザのSIDはwhoami コマンドやレジストリから調べる事ができます。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
しかし、WSE 2012 R2やWHS2011のダッシュボードから登録したユーザを調べる事は出来ません(でした)
ダッシュボードから登録したユーザのSIDは、PowerShellを使って調べます。
Wssユーザ SIDを調べる方法
Get-WssUser | Format-List -Property CurrentSid, CurrentUserPrincipal
image
スポンサーリンク

スポンサーリンク