The・雑記

効率化とか活用とかを中心テーマとした情報発信などとそれっぽく言ってるけど要は雑記

Windows診断コマンドを一括実行し、環境まわりの情報を迅速にまとめて取得!

広告


情報を確実に入手できれば、パソコントラブルは解決したも同然。日々苦労されている方の一助になれば・・・。
http://www.flickr.com/photos/87556573@N06/9339987404
photo by vitahall

企業にお勤めの方でIT管理とかヘルプデスク的なことをされている方はよくわかると思うのですが、結構パソコンって意味不明でビミョーな不具合?みたくなるんですよね。
利用者にヒアリングしてみるものの「なんか遅い」だの「変な感じになった」だの、回答が的を射ないというか逆に的が広すぎて先に進まないというかまぁそんな感じになってなかなか切り分けていけなかったりします。これで自分と相手の場所が離れてたりしたらもう大変、お手上げ。商売あがったりです。ザ・大袈裟。
とはいえ「パソコンの不具合はだいたいが環境まわり」が持論の僕、とりあえず環境まわりを調査するとだいたい解決の糸口を見つけられたりもします。

というわけで、その辺の情報をちゃちゃっと取得できるバッチを作って使ってます。そのご紹介。

以下コマンド。これをまるごとメモ帳にコピーして、拡張子を「.bat」にして保存してくだされ。

::診断バッチ
::各コマンドを実行した結果を、1つのファイルに出力。コマンドの内容は下記
::・systeminfo コンピュータの基本情報(ホスト名やらCPUやらメモリ容量やら)
::・dxdiag グラフィック関連の情報+α(一部上記とかぶる内容もw)
::・ipconfig /all ネットワーク設定情報
::・route print ネットワークのルーティング設定

::バッチ本体のパスを取得する。末尾に"\"が付かないパスの場合は"\"を付ける
@echo off
SET CPATH=%~dp0
IF NOT "%CPATH:~-1%"=="\" SET CPATH=%CPATH%\

::現在日付&時刻をそれぞれYYYYMMDD、HHMMSSとして取得
set YYYYMMDD=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
set HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2%
set HHMMSS=%HHMMSS: =0%
::echo %YYYYMMDD% %HHMMSS%

::診断結果出力用のファイル名と、dxdiagコマンドの一時出力ファイル名
::いずれも、[コンピュータ名]_[日付]_[時刻]みたいなファイル名
SET LOGFNAME=%CPATH%%computername%_%YYYYMMDD%_%HHMMSS%.txt
SET DIAGTMP=%CPATH%diagtmp_%computername%_%YYYYMMDD%_%HHMMSS%.txt
::echo %DIAGTMP%

::dxdiagの結果を一時ファイルに出力する
dxdiag /t %DIAGTMP%

::[ちょっとしたコツ]dxdiagの結果が出力されるまで待つ
::(ファイルができあがるまで、pingコマンドをテキトーに繰り返す)
::全般的にラベル名がいい加減w
:LOOPLOOP
IF EXIST %DIAGTMP% GOTO :OKOKOKOK
ping localhost>nul
GOTO :LOOPLOOP


:OKOKOKOK
::コマンドを順に実行し、診断結果出力用のファイルに追記していく。
::ついでにdxdiagコマンドの一時出力ファイルは削除する。
::すべての診断が終わったら、診断結果出力用のファイルを開く。
systeminfo>%LOGFNAME%
type %DIAGTMP%>>%LOGFNAME%
ipconfig /all>>%LOGFNAME%
route print>>%LOGFNAME%
del %DIAGTMP%
start "" explorer %CPATH%

これを利用者のパソコン上で動かせば、各種診断系のコマンドが走り情報を自動取得してきます。
情報取得が終わると結果が表示されるので、それを見てもよし、遠くにいるならメールで送ってもらうもよし、
パソコン操作に慣れない利用者にあれこれ質問することなく、スマートに問題解決に向かうことができます。

あなたの日々のお仕事の一助になれば幸いです。


広告