2013年 06月 04日
SUSE Linux から リモート Windows を制御できる winexe とPStools
-Windows と PsExec 編-
PsExecはこちら
http://technet.microsoft.com/ja-jp/sysinternals/bb897553
ダウンロードしたファイルは、解凍してパスが通る任意の場所に保存します。と言っても Windows7 でパスがあるところなんて限られていますので C:\windows\system32 あたりにコピーします。(怒られますけど)
ここで psexec を remotepc に対して cmd.exe を実行します。
※接続先が Windows Vista/7 以降は管理権限のあるユーザ Administrator Groupでも接続できません。 Administrator で接続する必要があります。 Administrator を有効にしてパスワードをセットしろよということですね。つまり Builtin アカウント "Administrator"を有効にする必要があります。
※ ちなみに Linux 版 PsEexec である winexe パッケージも同じ問題があります。"administrator"しかセッションを許可しません。
なお、PsExec ではセッションが開くまで朝のターミナルの駅のトイレ並みにかなり待たされるので短気を起さないでください。たぶん、MSbrowse をして、ネットワーク中にパケットを送って問い合わせているのでしょう。短気な方は Linux 版の winexe パッケージを使ったほうがDNS名前解決をするのでトイレの鍵が壊れているの?ってくらい高速に接続できてよさそうでした。
C:\tmp>psexec \\remotepc -u administrator -p adminpass cmd.exe
PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32>ipconfig <--トイレにいる間接続した。コマンドを実行してみた。
Windows IP 構成
イーサネット アダプター SUSE:
接続固有の DNS サフィックス . . . :
IPv4 アドレス . . . . . . . . . . : 192.168.1.24
サブネット マスク . . . . . . . . : 255.255.255.0
デフォルト ゲートウェイ . . . . . : 192.168.1.1
Tunnel adapter isatap.{03C3BE8D-16A5-4D4C-B651-E12983B33A44}:
メディアの状態. . . . . . . . . . : メディアは接続されていません
接続固有の DNS サフィックス . . . :
Tunnel adapter ローカル エリア接続*:
接続固有の DNS サフィックス . . . :
IPv6 アドレス . . . . . . . . . . . : 2001:0:4137:9e76:4fb:12e1:22xx:8cyy
リンクローカル IPv6 アドレス. . . . : fe80::4fb:12e1:22ef:8cb1%10
デフォルト ゲートウェイ . . . . . : ::
C:\Windows\system32>exit
cmd.exe exited on remotepc with error code 0.
C:\tmp>
PsExec 以外にもさまざまなコマンドがあるので、必要に応じて利用できそうです。
リモート・コンピュータ上でプログラムを実行する(PsExec編)
http://www.atmarkit.co.jp/fwin2k/win2ktips/1416psexec/psexec.html
-SUSE Linux で winexe 編-
SUSE Linux で winexe を利用する場合、 opensuse の software.opensuse.org にあります。 'winexe' でサーチをかけると rpm パッケージと 1Click インストールのリンクがあります。
http://software.opensuse.org/package/winexe
手早くやるのなら、 rpm をダウンロードして
# rpm -ivh xxxx.rpm
でインストールするのがよいでしょう。
ただし Windows は ASCII 文字だけしかサポートしていません。SJIS使ってるの Windows だけだぞ。これ何とかしろよ、と言いたくなります。全く同じコマンドのクセに、表示が英語のままだと思っていたら、そのうちに滅茶苦茶意味不明なニホンゴにローカライズされているため、grep などでは使い物になりません。ターミナルの設定が ascii の場合はたぶん問題ないのかもしれません。(普段使いの putty にはSJISという概念がなかった....puttyJP版はなら SJIS も表示できます)
sles11:~ # winexe -U administrator%adminpassword -n mypc //192.168.1.24 "cmd.exe"
Unknown parameter encountered: "passdb backend"
Ignoring unknown parameter "passdb backend"
Unknown parameter encountered: "printing"
: 中略
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved. <---- 瞬時につながる。
C:\Windows\system32>ver
ver
Microsoft Windows [Version 6.1.7601]
C:\Windows\system32>exit
exit
sles11:~ #
※ なお "cmd.exe" はダブルルォーテーションで囲っていますが、動かない場合もありました。文字コードとかあるんでしょうか。'ipconfig /all' のように DOS 窓に送るコマンドにパラメータが付く場合はコマンドラインを ( ' ) シングルクォートで囲う必要があるようです。
teraterm では SJIS にしてみたけど動きませんでしたが //remotepc の前はスラッシュ(/) にすると動きました。
バックスラッシュで動作する場合と端末によってはスラッシュしか受け付けないことがあるようです。このあたりははまりどころです。
-ビルトインアカウント Administrator を有効化-
通常 Windows7 をインストールするとビルトインアカウント Administrator は無効です。有効にするにはコントロールパネルでは行えないので mmc コンソールを使います。Professional か Ultimate で使えます。つまり無印 Windows7 (Home版)では使えません。
> mmc
「ファイル」> 「スナップインの追加と削除」より「ローカルユーザとグループ...」のスナップインを追加します。ここから Administrator を有効化します。
この後、コントロールパネルで Administrator アカウントのパスワードをリセットします。
winexe も PsExec もこのアカウントでなければ処理を受け付けないようです。
-Keyword-
Windows リモート実行 Windows7/Vista winexe suse linux psexec winexe
問い合わせは
islandcenter.jp
--