このブログを検索

ラベル windows の投稿を表示しています。 すべての投稿を表示
ラベル windows の投稿を表示しています。 すべての投稿を表示

2017/11/21

Windowsでリモートログイン状況を確認するコマンド

Windowsでリモートデスクトップ時に、既に接続済みの他のアカウントのログイン状況を確認したかった。
コマンドプロンプトでqueryコマンドを叩くとで下記のような結果を得られる。
ユーザ名の前に[>]が付いていると、現在ログインしているユーザを示すようだ。
C:\Users\user1>query user 
 ユーザー名            セッション名       ID  状態    時間       ログオン時刻
 user0                                    2  Disc        16:38  2017/10/30 17:54
>user1                rdp-tcp#0           5  Active          .  2017/11/21 10:51

2017/11/18

Gitコマンドを使ってみる

Gitをコマンドラインで扱わなければならなくなったのでメモ。
windows 7です。

Git-Bashを使用してCloneしたら、怒られてSSH Keyの登録が必要だったと思いだして作成。
# RSAファイルの作成
$ ssh-keygen -t rsa -b 4096 -C "git-bash-dml-gitlab-rsa"
# SSH Keysの保存先。特に気にしなければそのままEnterを入力
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
# パスフレーズの入力を求められるので入力Enter passphrase (empty for no passphrase): [Type a passphrase]
# もう一度入力
Enter same passphrase again: [Type passphrase again]
%USERPROFILE%\.ssh のフォルダに id_rsa , id_rsa.pubが出来上がっていたので、id_rsa.pubの中身をGitLabに登録
clip < %USERPROFILE%\.ssh\id_rsa.pub
さて、Clone Commit Pushと思ったら証明書のパスワード毎回聞かれる。
調べてみたら、一回だけ入力でその後は入力しなくてよくなるとの記事を見つけた。
$ eval `ssh-agent`
> Agent pid xxxx

$ ssh-add ~/.ssh/id_rsa
> Enter passphrase for /c/Users/you/.ssh/id_rsa:
> Identity added: /c/Users/you/.ssh/id_rsa (/c/Users/you/.ssh/id_rsa)
無事登録され、毎回聞かれることはなくなった。
---
ただ、、初回入力も面倒くさいとか思ってしまい、opensslにてパスフレーズ省略してしまいました。
---
Windowsのコマンドプロンプトでも、ssh-agentを起動できないかと調べたら、方法がありましたのでそのままお借りします。
:: ssh-agent起動
cd "C:\Program Files\Git\usr\bin"
if not "%SSH_AGENT_PID%" == "" goto end
for /f "eol=; tokens=1,2 delims==;" %%1 in ('ssh-agent.exe') do (
 if "%%1" == "SSH_AUTH_SOCK" set SSH_AUTH_SOCK=%%2
 if "%%1" == "SSH_AGENT_PID" set SSH_AGENT_PID=%%2
)

:: id追加
ssh-add.exe "%userprofile%\.ssh\id_rsa"

:: 最後にssh-agentプロセスを切る
cd "C:\Program Files\Git\usr\bin"
ssh-agent.exe -k
変数にプロセスID入れてあげればよいようです。

2017/10/04

DumpEDIDでPCに接続されているモニタ情報を拾う

PCに接続されているモニタ情報を拾いたかったが、いまいちよくわからなかった。
グラボの情報拾って、そこから何らかの情報をと思ったが、その方法もいまいちわからん。

下記レジストリまでいけば何かわかるかもと思ったが、ちょっと面倒くさそう。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\AdditionalModeLists
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Connectivity

検索していたら「DumpEDID」というソフトがあるようで、こちらを使用すると下記のような情報が取得できる。

*****************************************************************
Active : Yes
Registry Key : DISPLAY\DELF049\0&0000000X&0&UID0000000
Monitor Name : DELL P1914S
Serial Number : XXX0CX00XXXXX
Manufacture Week : 17 / 2015
ManufacturerID : 00000 (0x0000)
ProductID : 00000 (0x0000)
Serial Number (Numeric) : 0000000000 (0x0000000X)
EDID Version : 1.4
Display Gamma : 2.20
Vertical Frequency : 56 - 76 Hz
Horizontal Frequency : 30 - 81 KHz
Maximum Image Size : 38 X 30 cm (19.1 Inch)
Maximum Resolution : 1280 X 1024
Support Standby Mode : No
Support Suspend Mode : No
Support Low-Power Mode : Yes
Support Default GTF : No
Digital : Yes
Supported Display Modes :
720 X 400 70 Hz
640 X 480 60 Hz
640 X 480 75 Hz
800 X 600 60 Hz
800 X 600 75 Hz
1024 X 768 60 Hz
1024 X 768 75 Hz
1152 X 864 75 Hz
1280 X 1024 60 Hz
1280 X 1024 75 Hz
*****************************************************************
ということで、これを使うことにした。
http://www.nirsoft.net/utils/dump_edid.html

過去の、モニタ接続履歴も表示されるが、Active 項目が Yes となっているものが現在接続されているモニタとなるので、後はスクリプト等で何とかなるだとう。
便利。。

2014/08/23

NICが2枚付いていて、特定ネットワークからのアクセスだけ、Default Gateway以外に流す方法

NICが2枚付いていて、特定のネットワークからのアクセスだけデフォルトゲートウェイ意外のネットワークに流してあげる(という表現があっているかわからないけど)方法。

PC-AパソコンがAとBという2つのネットワークに所属していて、デフォルトゲートウェイがAを向いている状態でCというネットワークからPC-BがPC-Aに接続しようとすると、接続できなかった。
↓こんな感じ?
A:192.168.0.x/24 <-> PC-A <-> B:192.168.1.x/24 <-> C:192.168.2.x/24 <- PC-B
とりあえず、PC-BからPC-Aにpingを打っても帰ってこない状況。
PC-Aに下記を追加したらちゃんと通信できる様になった。
route -p add 192.168.2.0 mask 255.255.255.0 192.168.1.251 metric 5 if 0x10003

Runtime error - dotNet runtime exception

フリーのスクリプト(dll付き)を実行したら以下の警告が表示されたと連絡があった。
自分のパソコンでも試してみたが結果は同じだった。
---------------------------
MAXScript MacroScript Error Exception
---------------------------
-- Runtime error: dotNet runtime exception: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
---------------------------
OK   
---------------------------
表示された警告内のリンクに飛んでみると
<loadFromRemoteSources enabled="true|false"/>
を追加したら?みたいな事が書いてあったが、そういう事じゃない気がすると思って他の方法を探す事にした。
うーん、と悩んでいると以下のサイトに行き当たった。

http://blogs.msdn.com/b/drew/archive/2009/12/24/xunit-and-td-net-fixing-the-attempt-was-made-to-load-an-assembly-from-a-network-location-problem.aspx

おお、そういうことかと。
dllって署名付いてないと実行できないんですね。
署名ついてに場合はファイルのプロパティから「ブロックの解除」をしてあげないと使いないんだ。知らなかった。

2014/05/19

DVIとDisplayPortでマルチモニタした時

DVIとDisplayPortでマルチモニタした時にDPの方のモニタの電源を切ると、DP側に並べていたアイコンが全部DVIの方に戻ってくる。

「電源切るな」という話かもしれないが、複数台PCを使用する時にモニタ切替等で必要な場合がある。

おそらくDPのモニタを落とすと信号が切れてOS側で「モニタついてないよ、見えないアイコン持ってくね」と余計な事をしてしまうのだろう。
嬉しい機能なのだが、自分の環境ではありがた迷惑だ。

この現象に悩んでいたら、職場の人が解決方法を教えてくれた。
結果からいうと、NVIDIAのQuadroでしか効果がない。
geforceではそもそもの設定項目が表示されていなかった。
  1. 「ワークステーション」の「システム トポロジを表示します。」を選択します。
  2. リストにある「EDIDステータス」の【モニター…】をクリックします。
  3. EDIDのエクスポートの【EDIDのエクスポート】を押し、EDID情報をテキストとして保存します。
  4. 「システム トポロジの表示」に戻り、再度「EDIDステータス」の【モニター…】をクリックします。
  5. 保存したEDID情報ファイルを読み込ませます。
これで解決した。
--
参考
http://h50146.www5.hp.com/products/workstations/monitors/popup.html

2014/05/17

windowsのコマンドプロンプトでファイル名を検索する

windowsのコマンドプロンプト上でファイル名を検索したかった。
でそのファイルパスも欲しかった。
検索したら以下のコマンドでできるとのこと。
dir /s /b [file name]
任意のディレクトリに移動しカレントディレクトリ以下のファイルを検索する。
そうすると下記のようなパスで帰ってくる。知らなかった。
C:¥users¥user¥aaa¥bbb¥ccc¥ddd.txt

2014/04/19

dosコマンドとpowershellを使って自動でbackburnerを再起動する

backburnerが落ちているのを確認して再起動かけるのが面倒くさかった.
出来るだけ、レンダーマシンが判断してくれないかなと思って、dosコマンドで出来ないものかと考えたら、以下のbatファイルが出来た.

正直、がっつり検証したわけではないので、危うい感じもある.
ただ、自分の環境ではとりあえずうまくいっている(気がする).
# bb-process-checker.bat
-----
@echo off
set BB_FLAG=0
set BB_PROCESS_CHECK=`tasklist /NH /FI "WINDOWTITLE eq Backburner*"  /FI "STATUS eq NOT RESPONDING"`
for /F "skip=1 usebackq tokens=1" %%i in (%BB_PROCESS_CHECK%) do (set BB_FLAG=1)
IF 1==%BB_FLAG% (
        taskkill /F /FI "WINDOWTITLE eq Backburner*"
        taskkill /F /IM WerFault.exe
)
powershell -Command "&{$p='%ProgramFiles(x86)%\Autodesk\Backburner\server.exe';if(!(ps|?{$_.path -eq $p})){&$p}}"
exit
-----
内容は、”応答なし”になっていて、ウィンドウタイトルに”Backburner”うんたらと書いてあるプロセスがあったら、フラグを立ててプロセスを切ってあげて、最後にbackburnerのプロセスを確認して、起動していなかったら起動させる.というもの.

たぶん、powershellだけでもきっと出来るんだろうな.
時間があったら、フルpowershellで再現できるか確認しよう.

あと、taskkillの所で、余計なプロセスを削除するコマンドを追加しまくっていいと思う.

で、上記処理をタスクスケジュールにつっこんで、数分毎に実行させてればうまくいく?

"S1023"と表示され、DirectX SDK(June 2010)インストールできない

DirectX SDK(June 2010)をインストールしようたが、ウィザードの最後で”S1023”と表示され(しかも、他の文章は文字化けで)インストールを完了できない.

うーん、と思い調べてみたら、インストールされているMicrosoft Visual C++ 2010 RedistributableのバージョンがDirectX SDKで必要とするバージョンでないのが原因だったようだ.

新しいMicrosoft Visual C++ 2010 Redistributable 10.0.40219 (x86 and x64) をアンインストールし、 10.0.30319をインストールしたら、ちゃんとインストールできた.

詳細:
"S1023" error when you install the DirectX SDK (June 2010)
http://support.microsoft.com/kb/2728613

dosコマンドで環境変数を追加する

dosコマンドで環境変数を追加したいと思って調べたら、setxコマンドと言うものがあるようだ.
setx <環境変数名> <値>
上記コマンドだとユーザー環境変数に登録される.
システム環境変数の場合はmオプションを追加してあげると良い.
setx <環境変数名> <値> -m
削除する場合は以下のように、値に空白?Null?を渡してあげると、値を空っぽにしてくれる.
setx <環境変数名> ""
しかし、私の意図する動きではない.
環境変数名ごと消して欲しい.
何か良い手はないものか.

2014/03/31

dosコマンドでビデオカードを確認する方法

ビデオカードの検証で、今何のビデオカードが差さっているかっ手っ取り早く確認する事は出来ないかと思い調べてみたら以下のコマンドで表示出来るようだ.
osはwindows7.検証するビデオカードはNVIDIA.
powercfg /devicequery all_devices
表示された結果内からビデオカードの項目を探すのが面倒なので、findstrに渡して上げる.コマンドプロンプトに表示すると畏まるので、findstrの結果をmsgに渡してあげることで、若干取っ付きやすい表示になると思う.
で、以下が最終形態.
powercfg /devicequery all_devices | findstr NVIDIA | msg %username%
上記コマンドをbatファイルにしておいて、ファイルをダブルクリックすれば、ポップして表示してくれる.
余計な情報も付いてくるけど、ご愛嬌.

2014/03/08

imagemagikでシーケンスファイルをgifファイルに変換

imagemagikでpngのシーケンスファイルをgifにしてまとめたかった
検索したら以下の様なコマンドで出来るようだ
"C:¥Program Files¥ImageMagick-6.8.8-Q16¥convert.exe" "D:¥source¥path¥file-%05d.png"[0-55] "D:¥destination¥path¥file.gif"
gifも連番で出したい場合は以下の通りだ
"C:¥Program Files¥ImageMagick-6.8.8-Q16¥convert.exe" "D:¥source¥path¥file-%05d.png"[0-55] "D:¥destination¥path¥file-%05d.gif"[0-55]
なるほど、今回キーとなったのは以下の部分だと思う
%05d: 0埋め5桁にしたい場合(file-00001.png)
[0-55]:任意のファイルを記述する(全ファイルの場合は"file-*.png")

2013/10/19

AfterEffects Scriptで規定のブラウザで任意のURLを開く方法

AfterEffects Scriptで規定のブラウザで任意のURLを開く方法
sample.jsx
----
url = "http://www.google.com/"
system.callSystem("cmd.exe /c rundll32 url.dll,FileProtocolHandler "+ url)

2013/06/15

拡張子の関連付け:Adobe AfterEffects を複数インストール

今回はたまたまAfterEffectsだったので、拡張子.aepでいろいろやっているが、他の拡張しても応用できる.

AfterEffects CS4 を入れた後に、AfterEffects 7.0 をインストールしてしまい、aep ファイルをクリックして AE を起動すると、CS4で起動して欲しいにもかかわらず、AfterEffects 7.0 で起動してしまう.
そういった場合は下記のレジストリを書き換えてあげれば任意のバージョンで起動させることが出来る.
変更前
[HKEY_CLASSES_ROOT\.aep]
@="AfterEffects.Project.70"
変更後
[HKEY_CLASSES_ROOT\.aep]
@="Adobe.AfterEffects.Project.90"
ちなみに「@(規定値)」に渡す文字列は、「HKEY_CLASSES_ROOT\」以下にある任意のソフトウェアのキー名と同じでなければならない事に気をつける.
私がハマったことは、規定値として渡す値 AfterEffects.Project.70の「70」を「90」に直しただけで起動バージョンを変更できると勝手に思い込んでしまったこと.
もっとしかっりキー名を追っていれば、「Abobe.」抜けていることにすぐ気付けただろう.

コマンドプロンプトから以下のコマンドを叩いてもよし.
USER>reg add HKCR\.aep /f /ve /t REG_SZ /d Adobe.AffterEffects.Project.90
レジストリを登録したら、explorerの再起動か、マシンの再起動で設定が反映される.
もし、反映されていなかったら、既に拡張子に対してのアプリケーションの割り当てが行われている可能性があるので、以下のレジストリをチェックし、記述があるようであればキー名ごと削除する.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.aep\UserChoice
削除後は同様に再起動すれば、反映されてアイコンも正常に表示されるだろう.

また、aepファイルを右クリックしたときに、任意のバージョンで起動出来るように設定する方法を以下に.
例えば、デフォルトがAE CS4でその他(AE7, AE CS6)は右クリックから起動する場合は、以下のレジストリ設定を流す.
[HKEY_CLASSES_ROOT\.aep]
@="Adobe.AfterEffects.Project.90"
[HKEY_CLASSES_ROOT\Adobe.AfterEffects.Project.90\shell\open1]
@="Open with Adobe After Effects 7"
[HKEY_CLASSES_ROOT\Adobe.AfterEffects.Project.90\shell\open1\command]
@="\"C:\\Program Files (x86)\\Adobe\\Adobe After Effects 7.0\\Support Files\\AfterFX.exe\" \"%1\""
[HKEY_CLASSES_ROOT\Adobe.AfterEffects.Project.90\shell\open2]
@="Open with Adobe After Effects CS6"
[HKEY_CLASSES_ROOT\Adobe.AfterEffects.Project.90\shell\open2\command]
@="\"C:\\Program Files\\Adobe\\Adobe After Effects CS6\\Support Files\\AfterFX.exe\" \"%1\""
設定後に、aepファイルを右クリックすると以下のような表示になる.

2013/06/13

windowsでデータコピー中に「メモリ不足のためこの操作は実行できません」と表示されコピーが止まる

windows7(32bit)でデータコピー中に「メモリ不足のためこの操作は実行できません」と表示され、コピーがいちいち止まって、毎回「再試行」ボタンを押していてイライラしていた.

原因はデスクトップヒープのメモリ領域が少ないが為に起こる現象のようだ.
デスクトップヒープとはwikipediaによると画面部分のデータを管理するメモリ領域との事で、自分のパソコンは12288と設定されていたようだ.(ちなみにメモリ4GB載せてます)

検索してみたところ、りあえず下記のレジストリの値を書き換えると解決できるとの事で書き換えてみた.
キー名:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
キー内の値名:
Windows
修正前の値:
%SystemRoot%\system32\csrss.exe 
ObjectDirectory=\Windows 
SharedSection=1024,12288,768 
Windows=On 
SubSystemType=Windows 
ServerDll=basesrv,1 
ServerDll=winsrv:UserServerDllInitialization,3 
ServerDll=winsrv:ConServerDllInitialization,2 
ServerDll=sxssrv,4 
ProfileControl=Off 
MaxRequestThreads=16
修正後の値:
%SystemRoot%\system32\csrss.exe 
ObjectDirectory=\Windows 
SharedSection=1024,20480,768
Windows=On 
SubSystemType=Windows 
ServerDll=basesrv,1 
ServerDll=winsrv:UserServerDllInitialization,3 
ServerDll=winsrv:ConServerDllInitialization,2 
ServerDll=sxssrv,4 
ProfileControl=Off 
MaxRequestThreads=16
SharedSectionの2番目の引数を20480(マイクロソフト推奨)に設定して再起動したら表示されなくなった.

-- 追記
とおもったら、全然メモリ不足警告が表示されて、何の解決にも至っていなかった.
今回は、fastcoyでコピーして、吐かれたエラーログを頼りにcopyコマンド作成して対応してみた.
エラーファイルは1000ファイル程だったので、吐かれたエラーをコピペしてテキストエディタに貼り付けて、ファイルパスのみを抽出複製して、複製したパスのドライブ名を変更するだけで何とかしのげた.
ドライブの移行だけだったからこんなもんで済んでよかった.

今回使用したコマンドは以下のもの.
copy /Y /V F:\file00.png D:\file00.png >> c:\copy.log
copy /Y /V F:\file01.png D:\file01.png >> c:\copy.log
...
※ copy.logはエラー確認用
-- 追記
毎回コピーツールでコピーっていうのは、なんだかなと思い再度調べてみたところどうやら原因は、SharedSectionの3番目の引数に原因があるようだ.
参照先をよく読んでいたら、マイクロソフトのfixitによる修正では3番目の引数も1024に変更されるとの事だったので、自分も同じ設定にして再起動してみたら、今度こそエラーも無くコピーを終えてくれた.
もっと良く読もう!おれ!
SharedSection=1024,20480,1024
参考:
http://support.microsoft.com/kb/947246

2013/05/29

ファイルの削除、変更、移動をした時に、エクスプローラーに反映されない場合

ファイルの削除、変更、移動をした時に、エクスプローラーに反映されない場合は、レジストリに以下の項目を追加してあげれば解決する可能性あり.
=======
.reg ファイルの場合
----
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoSimpleNetIDList"=dword:00000001

=======
ms-dos コマンドの場合
----
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoSimpleNetIDList /t REG_DWORD /d 1
----
とりあえず、今のところは問題なし.

2013/05/23

Adobe Photoshopでブラシの反応が悪かった時、カクカクした時の対処

Adobe Photoshopでwacomタブレットを使用していたがwindows再起動後に、ブラシの反応が悪くなった.弧を描きたいのに書き始めがなぜか引っかかったり、線の始めだけ直線になったり、線がカクカクしたりしてしまう.ちなみにwindows7 64bit.

悩んでいると、タブレットにペンを付けていると右クリックの効果が.
よくみると波紋も出ている.Windowsの標準機能が原因だったようだ.

以下の手順で「ペンのフィードバックをオフにする」を"有効"にしてあげたら、ペンが引っかからなくなった.
  1. スタートメニューの検索入力欄で「gpedit.msc」と入力し、ローカルポリシーエディタを起動
  2. ローカルコンピューターポリシー > ユーザーの構成 > 管理用テンプレート > windowsコンポーネント > Tablet PC > カーソル > 「ペンのフィードバックをオフにする」を有効 
または以下の項目でタブレット機能を無効化してしまうのも手かもしれない.
コントロールパネル>プログラムと機能>windowsの機能の有効化または無効化>"TabletPCコンポーネント"のチェックを外す(PC再起動).
ペンのフィードバックはオフにしてたのに、いつの間にかオンになってたみたいだ.
オンになった原因はわからない.


2013/05/09

MS-DOSコマンドでプログレスバー(進捗状況)を演出する

MS-DOSコマンドでプログレスバーを作れないものかと検索したら、あった。
ちなみに、timeoutコマンドで表現したら、少しいらっとする速度でしたが、pingに置き換えると、小気味良い感じと相成りました。
以下、バッチファイルのサンプル。
---------------
test.bat
-----
@echo off
for /L %%v in (1,1,10) do (
    set /p x=*< nul
    ping 1.0.0.0 -w 1 -n 1 > nul
    rem timeout /t 1 > nul
)
echo  OK!
-----
output....
>********** OK!
---------------

2013/01/09

windows7でネットワークの場所の設定を固定する方法

所属するネットワークを変更するたびにパブリックモード?プライベートモード?それともホーム?みたいに、場所をいちいち聞いてくるのが嫌だったので、ネットワークの場所の設定を固定化できないか調べてみた.

コマンドで設定できればよかったのだが、レジストリ変更値の確証を得られなかったので、今回はツールからの設定にとどまった.

コマンドプロンプト > secpol.msc > ローカルセキュリティポリシー > セキュリティの設定 > ネットワークリストマネージャーポリシー 内の下記の項目を、”プライベート”に設定しまくったら、「ネットワークの場所の設定」が表示されなくなり、社内ネットワークが優先されるようになった.(気がする.
  • ネットワーク
  • 識別されていないネットワーク
  • ネットワークの識別中
  • すべてのネットワーク
※あと、ユーザには変更できないように追加で設定した.

2012/12/20

MS-DOSでスリープコマンド

dosでスリープコマンドを実行するために、pingコマンドを使っていたが、調べてみるとtimeoutコマンドがあるようだ.(sleepコマンドもあるようだが今回は使用していない)
ping
ping 1.0.0.0 -w 5000 -n 1 > nul
timeout
timeout /t 5 /nobreak > nul
ちなみに
ping 127.0.0.1 -n 5 > null
と、かいている人もいるけど、timestamp取ってみると正確ではないようだ.
---------------
test.bat
-----
wmic os get localdatetime
ping 127.0.0.1 -n 5  1>nul
wmic os get localdatetime
-----
out ...
=>LocalDateTime:20121219160952.868000+540
=>LocalDateTime:20121219160956.934000+540
---------------
まあ、batで処理するようなものなので、おおざっぱな値でもいいか.

参考:
timeout/sleepコマンドで実行を一時停止する
http://www.atmarkit.co.jp/fwin2k/win2ktips/1420sleep/sleep.html
windows7 リソースキット
http://www.microsoft.com/en-us/download/details.aspx?id=12616
※この中に入っているかは未確認だけど、暇な時にでも確認してみる.