LAN内の管理下のクライアントマシンの情報を取得するために、バッチをサイレントで実行させたいです。レジストリのrunに登録しましたので再起動時には情報を取得することは可能ですが、起動中に情報を取得したいため、バックグラウンドでバッチもしくは実行ファイルを動作させたいです。クライアントOSはWindows2000かWindowsXPです。クライアント側にはエージェントなどを入れずに実行したいと考えています。何か良い方法があったら教えていただけないでしょうか?

よろしくお願いします。

また、過去に間違った解答をした人から、回答が間違っていてもお礼を言った方が言いといわれましたが、私は間違っている回答や、勘違いされている回答に対してはお礼もポイントも差し上げません。ご確認お願いします^^

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:ohmix1 No.1

回答回数235ベストアンサー獲得回数14

ポイント20pt

http://www.atmarkit.co.jp/fwin2k/operation/wsh04/wsh04_04.html

@IT:運用 Windows管理者のためのWindows Script Host入門 第4回 WScriptオブジェクトの詳細(2) 4.スクリプトの実行制御とホスト情報の取得

なんらかのプログラムを書くことは覚悟しているようなので、

Windows Script Hostを利用してはいかがでしょうか?


VBScriptかJScriptで必要な情報を取得するスクリプトを書き、

Runで起動するようにレジストリに登録。

スクリプト処理はSleepしながら無限Loopするようにしておく。

もし情報をどこかに送信する必要があるなら、

MSXMLコンポーネントのXMLHTTPを利用してデータをHTTPプロトコルで送信。


この案で問題になりそうなのは、

・タスクマネージャで終了できる

・プログラムファイルを削除または改ざんされる

・たぶん、Windows終了時に「実行中です。終了しますか」を意味するダイアログが出ます。


これらが問題なら、管理者と一般利用者の実行権限をちゃんと分けて、

exeにして、exeを起動するのはSYSTEM権限でしないといけないかも。

http://www.atmarkit.co.jp/fwin2k/win2ktips/443wshenc/wshenc.html

@IT:Windows TIPS -- Tips:WSHスクリプト・コードを暗号化する

一応、簡単な暗号化ならできますけど、甘いです。

id:hauntcrow

回答ありがとうございます。

本格的にプログラムを書くのは避けたかったんですけどね^^;

それしかないのかな〜??

2005/04/02 01:39:39
id:upride No.2

回答回数220ベストアンサー獲得回数1

ポイント20pt

http://www.monyo.com/technical/windows/12.html

OUと異なったグループ単位にポリシーを設定したい

LAN内にサーバを立ててドメインを構築されているなら

(Windows 2000 Serverなど)

Active Directory側でOU単位でグループポリシーを設定すると

ドメインに参加しているクライアントに反映することが出来ます。

(この説明がリンク先です)


で、このドメイン側のグループポリシー(クライアントにもあるので区別します)

の設定にログオン、ログオフ、スタートアップ(起動)、シャットダウンの

タイミングで各クライアントにスクリプトを配布できます。

つまり、ドメイン側に登録したバッチを各クライアントでログオン時等に

実行させることができます。

http://www.monyo.com/technical/windows/35.html

Active Directory ドメインで、ユーザのログオン/ログオフの状況を監査したい

この例ではバッチではなくvbscriptを実行させてます

シャットダウン時とかは

実行ユーザがログオフしてるときに流れますのでスクリプト作成時にはご注意を

id:hauntcrow

回答ありがとうございます。

レジストリのrunにネットワークを介して書き込んだのでログオン時にはスクリプトが走るようになっています。

起動していているときにバックグラウンドで動かすことができたらいいな〜

なんて思って質問しました。

質問方法が悪かったんでしょうか^^;

2005/04/02 01:41:51
id:tonolove No.3

回答回数158ベストアンサー獲得回数0

ポイント20pt

http://ykr414.com/dos/dos04.html

コマンドプロンプトを使ってみよう! −設定・システム操作−

atコマンドで実行してください。

むかーしからある標準コマンド。

id:hauntcrow

回答ありがとうございます。

時間を指定してと言うわけじゃなくて・・・

やっぱり質問方法が悪かったみたいですね。

みなさん教えていただきありがとうございます。

コーディングしないで(書いてもバッチ程度)でリアルタイムにバックグラウンドで実行したかったです。

一応ネットワーク越しにクライアントのレジストリにエントリを書き込める程度のレベルだと思って欲しかったですが、もっと初心者に見えてしまったのでしょうか^_^;お騒がせしてすみませんでした。

2005/04/02 01:46:05
  • id:upride
    そうゆうことでしたか

    wshでしたらvbs作成すればサイレント実行ですよ
    レジいじるのはRegWriteですね
  • id:ohmix1
    やりたい事がつかめません


    クライアントマシンの情報とはどの程度の内容を指していますか?
    バッチ程度で取得できるものやAPIでないと取得できないもの、
    標準コマンドで取得できるものかどうかなどさまざまです。
    それをリアルタイムで取得してどうしたいのですか?
    単にファイルに保存したいのかどこかに送信したいのか?

    そのへんをクリアにしないと要求している答えが得にくいです。
    それと、Windowsのシステム管理者ならWSHはもはや必須ですよ。

  • id:hauntcrow
    Re:やりたい事がつかめません

    えーと・・・
    質問にも書いたのですが、「バッチをサイレントで実行させたいです」だけです。情報の取得のプログラムは組んであります。

    私はWindowsのシステム管理者じゃないんですよ。残念でした。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません