• ベストアンサー

毎日のshutdown時間をExcelに記録する方法

こんにちは。よろしくお願いします。 毎日、最後にパソコンをshutdownして退社するので、その時間を使って毎月の退社時間の報告書を簡単に作成できないかと考えています。 起動や停止の時間などを取ってくれるフリーソフトもありますが、 もっとシンプルにshutdownの時間だけを貰って来て、Excelに記録していくというバッチなんかが出来ないかと考えています。 パソコンはWindowsXPです。shutdownの時間を貰えるコマンドを探してみましたが見つけられませんでした。 他の方法のアドバイスなどもありましたら、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

以下のVBSを作り、コマンドラインから実行してください。 If WScript.Arguments.Count <> 1 Then   WScript.Echo "使用方法:" & vbNewLine & _   "Excelのパス名を1個だけコマンドラインで指定します" Else   Dim APL, NUM, MSG   Set APL = CreateObject("Excel.Application")   On Error Resume Next   LogWrt WScript.Arguments(0)   NUM = Err.Number   MSG = Err.Description   On Error GoTo 0   APL.DisplayAlerts = False   APL.Quit   Set APL = Nothing   If NUM <> 0 Then Err.Raise NUM, , MSG End If Sub LogWrt(ByVal PTH) Dim WKB, WKS Dim I, J, DMX Dim QRY, REC, TMP On Error Resume Next Set WKB = APL.Workbooks.Open(PTH) If Err.Number <> 0 Then   Err.Clear   Set WKB = APL.Workbooks.Add   WKB.SaveAs PTH End If I = Err.Number J = Err.Description On Error GoTo 0 If I <> 0 Then   Err.Raise I, , J   Exit Sub End If If WKB.Worksheets.Count = 0 Then WKB.Worksheets.Add Set WKS = WKB.Worksheets(1) I = 1 Set QRY = CreateObject("WBemScripting.SWBemLocator"). _      ConnectServer(".").ExecQuery("SELECT TimeWritten " _      & "FROM Win32_NTLogEvent WHERE " _      & "EventCode=6006 And LogFile='System'") DMX = -1 ReDim DWN(0) For Each REC In QRY   DMX = DMX + 1   ReDim Preserve DWN(DMX)   TMP = REC.TimeWritten   DWN(DMX) = CDate(Left(TMP, 4) & "/" & Mid(TMP, 5, 2) & "/" & Mid(TMP, 7, 2) _        & " " & Mid(TMP, 9, 2) & ":" & Mid(TMP, 11, 2) & ":" & Mid(TMP, 13, 2)) Next For J = 0 To DMX   Do     TMP = WKS.Cells(I, 1).Value     If VarType(TMP) <> vbDate Then Exit Do     If TMP > DWN(J) Then       I = I + 1     Else       If TMP < DWN(J) Then WKS.Cells(I, 1).EntireRow.Insert       Exit Do     End If   Loop   WKS.Cells(I, 1).Value = DWN(J)   I = I + 1 Next WKB.Save WKB.Close End Sub

noname#106387
質問者

お礼

VBSの知識がゼロでしたので、私には難しすぎましたが、 力作をありがとうございました!!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4851/10265)
回答No.2

真面目にやると#1さんの書いたようなやり方でイベントログからシャットダウン時間を取ってくることになりますが、簡単にやるには、バッチファイルで、 echo %DATE%,%TIME:~0,8% >> shutdowntime.csv shutdown -s -t 0 というのを作り、スタートメニューからシャットダウンせずに、このバッチファイルを起動することでシャットダウンすればいいです。

noname#106387
質問者

お礼

わかりやすい回答をありがとうございました!!! この方法に、少し手を加えて実現することにしました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • shutdown コマンド バッチファイル

    こんにちは、 コンピュータの管理をしています。 サーバー:Windows2000サーバー クライアント:WindowsXP 20台 クライアントを一気にSHUTDOWNするため、 コマンドで Shutdown -s -m \\cli01 で正常にSHUTDOWNできましたが、 バッチファイル Shutdown -s -m \\cli01 Shutdown -s -m \\cli02 Shutdown -s -m \\cli03 と書いて実行するとうまくいきません。 何かお分かりの方がいましたら教えてください。 よろしくお願いします。

  • WindowsXPをリモートshutdown

    WindowsXPから他のWindowsXPをリモート(shutdownコマンド)で再起動を行いたいのですが以下のエラー出て再起動できません。必要な設定がありましたら教えてください。 <コマンド> >shutdown -r -f -m パソコン名 <エラー> アクセスが拒否されました。 環境はWindowsXP(SP2)、ファイアウォールは無効にしています。 よろしくお願いいたします。

  • PC off時のログ記録

    pcの電源を断した時の日時を取得したいのですが、 今、バッチファイルを作成しそこに、dataとtime、shutdownコマンドを記述しまして日時は取得できます。win2000では、shutdownが無いみたいで、電源を切れません。 ただ、バッチファイルをダブルクリックし忘れてしまいますので、記録できないことがよくあります。 tasksフォルダに電源offは登録することもできませんし、 なんとか自動化できないでしょうか? 管理ツールにイベントビューアというのがあるのですが、 ちょっと利用しづらいのです。 宜しくお願いします。

  • エクセルのボタンにマクロの記録を設定できない

    エクセル97で、ある操作を「マクロの記録」に設定し終了した後、コマンドボタンを作成しました そのボタンで設定したマクロの記録を動作させたいのですがどうすれば出来るのか分かりません

  • ユーザー毎のログイン時間を記録する

    1台のパソコンを4人でユーザーを切り替えて使用しております。 ユーザー毎にログイン時間を記録するソフトをご存じの方、いらっしゃいませんでしょうか? 時間は厳密でなくて構いません。 パソコンは WindowsXP(SP2) です。

  • BATファイルでの実行結果判定について

    Windows2003のバッチファイルで以下のことを実行したいです。 (1)Oracleのshutdown immediateコマンドを実行する (2)shutdownが一定時間応答なしであれば、←★★これ★★  Oracleのプロセスをkillする。 (3)Oracleのstartup restrict -> shutdown normalを実行 「shutdownが一定時間応答なしであれば」 このような条件判断をするにはどのようにバッチファイルを 書けばよいでしょうか?

  • WINXPを毎日同じ時間に再起動したい

    以前にも教えていただいたのですが、私のやり方が悪かったようでうまくいかなかったので、もう一度質問します。 毎日19:00にPCを再起動したいのです。 教えていただいたように at 19:00 /every:sunday,monday,tuesday,wednesday,thursday,friday,saturday "shutdown -r" というコマンドをコマンドプロンプトに貼り付けました。つまり、 c:\documents and settings\todotomo> のあとに上記のコマンドを貼り付けてリターンキーを押しました。「新しいジョブID = 2 で追加しました」というメッセージが出ました。 コントロールパネルにもatという項目が追加されたのですが、再起動はうまくいかず、タスクの「状態」の項目に「開始できませんでした」と表示されました。 やり方が間違っているようでしたら教えてください。 また、再起動できるフリーソフトもあるようですが一回ごとに設定しなければいけないようで、毎日同じ時間には再起動できないようです。良いソフトがあったら教えてください。

  • バッチファイルでExcelを読み取り専用で開きたい

    Excelで「読み取り専用を推奨する」設定のされたファイルをバッチファイルで開こうとすると、 「読み取り専用で開きますか?」ダイヤログが表示されてしまい、 「はい」ボタンを押すまでファイルが開かれず困っています。 複数の上記設定ファイルをバッチファイル1回で開かせたいです。 バッチファイルで開く際に、上記設定のされたファイルでもダイアログが表示されないように読み取り専用で開くコマンドはありますでしょうか? 現在は開きたいファイルのショートカットを作成し、バッチファイルで以下のように実行しています。 start "" "./(ファイル名).xls.lnk" コマンドの最後に“ /r”をつけてみたのですが、ダイアログが出てしまいました。 回答ではコマンドをそのまま書いていただけると助かります。 よろしくお願いいたします。

  • エクセルで時間の計算を簡単に

    色々調べましたが、質問することにします。 エクセル2003です。 タイムカードの計算を手計算でなくエクセルでやろうと思うのですが、 フリーソフトも色々試してみましたが、一長一短があるので 自分で作ってしまおうかと思いました。 まず時間の入力で、書式設定で、時刻を設定したいのですが、うまくいきません。 たとえば、15:30  と表示したいときに、1530 と入れてenter したら、15:30 となるようにするには、どうすればよいでしょうか? そして、それが表示できたとして、退社時間から出社時間を引くというような計算もできるでしょうか? おわかりの方いらっしゃいましたらよろしくお願いします。

  • 手早くユーザーアカウントを作成する方法

    WindowsXPです。 数十台のパソコンに、ユーザーアカウントを新規作成する必要があるのですが、 準備時間も人手もなく困っています。 あらかじめ、バッチファイルを作成し、アカウントを手早く作成する方法はありませんか? 例えば、FDかCDにバッチファイルを準備しておき、 そのディスク上でバッチを実行するだけ・・・というのが理想です。