ドメインに参加している WinXP クライアントから、ワークグループ環境の複数台の Windows Server 2003 (主に) に対して ping を実行し、ping に対して応答があった場合はシャットダウンするスクリプトを記述したいと考えています。

# ワークグループ環境の Windows Server 2003 は検証環境で、社内セキュリティポリシーの運用上ドメインに参加できません。

この場合、
1. 複数のマシンに ping を打つ
2. 1 で応答がかえってくれば管理者の資格情報を使用してログイン
3. シャットダウンを実行
という流れになると思います。

そして、最終的には 1 が成功した場合に If 構文で 2、および、3 を実行する、という
ように書けば一連の処理は成功すると考えています。

現在上記 1~3 の処理で細分化し、それぞれについて動作確認をとっています。
しかし、2、および、3 を実行してもうまくいかないため、これらについて伺いたく
質問させていただきます。

2 について

以下の構文を組んでいますが、vbs を実行すると、後述のエラーダイアログが表示されます
(対象 PC やアカウント名などはダミーとご認識ください)。
別の資格情報 (接続先マシンの管理者アカウント) を指定して接続できるコードをご教授ください。

-----
Const WbemAuthenticationLevelPktPrivacy = 6

strComputer = "atl-ws-01"
strNamespace = "root\cimv2"
strUser = "Administrator"
strPassword = "4rTGh2#1"

Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objwbemLocator.ConnectServer (strComputer, strNamespace, strUser, strPassword)
objWMIService.Security_.authenticationLevel = WbemAuthenticationLevelPktPrivacy

Set colItems = objWMIService.ExecQuery ("Select * From Win32_OperatingSystem")
For Each objItem in ColItems
Wscript.Echo strComputer & ": " & objItem.Caption
Next
-----

エラー : RPC サーバーを利用できません。
コード : 800706BA
ソース : SWbemLocator

3 について

以下の構文を組んでいますが、エラーは表示されないものの、シャットダウンが開始されません。

-----
On error resume Next

Const LogOff = 0 'ログオフ
Const REBOOT = 2 '再起動
Const SHUTDOWN = 8 'シャットダウン

Dim objWMIService
Dim colOperatingSystems
Dim objOperatingSystem
Set objWMIService = GetObject("winmgmts:{impersonationLevel= impersonate,(Shutdown)}\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOperatingSystem in colOperatingSystems
objOperatingSystem.Win32Shutdown(SHUTDOWN)
Next
Set objWMIService = Nothing
Set colOperatingSystems = Nothing
Call ErrorCheck
End Function
-----

また、試しに objNetwork.MapNetworkDrive を使用してサーバーの IPC$ に接続しログインした後に上記処理を試行しましたが、
シャットダウンが進みませんでした。

何卒よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

MapNetworkDrive はファイル共有サービスだから RPC とは別では?


win32shutdown rpc ファイアウォール
あたりのキーワードで検索してみてはどうでしょう。

この回答への補足

試したところ、サーバーの FW を無効にしても回避せず、また、WMI コマンドでも同一のエラーが表示されたことから、経路上で RPC サービスポートで使用される可能性のあるポートがシャットダウンされている可能性が高そうです。

そのため、この方法はあきらめることとなりました。
ご回答ありがとうございました。

補足日時:2011/04/22 18:37
    • good
    • 0
この回答へのお礼

ありがとうございます。
135 はさすがに許可されている気がしますが、RPC サービスポートは確かにふさがれてる可能性はありそうです。

設定を確認してみます。

お礼日時:2011/04/15 23:52

ファイアーウォールとか。

    • good
    • 0
この回答へのお礼

ありがとうございます。
ただ、FW だとすると、.MapNetworkDrive でもサーバーに接続することはできないのではないかと考えられます。

RPC で最初に接続するので TCP135 を確認する、ということを示唆されていらっしゃいますでしょうか。FW である場合、どこのポートを確認すればよいでしょうか (本当はパケットを採取できれば FW の影響かどうかはわかりますが、アプリをインストールできないので質問させていただいています)。

お礼日時:2011/04/14 19:33

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qクライアントサーバーかターミナルサーバーか

個別稼働している複数の販売管理システムを統合してデータを共有化する場合、クライアントサーバーとターミナルサーバーはどちらが適切でしょうか。又、それぞれの一長一短などあれば教えて頂けないでしょうか。

現在の状況
8種の販売管理システムが個別に稼働
※マスターデーターも販売データも個別に存在

統合構想
販売管理システムの仕様を統一し、データは全てサーバーに入れる
※マスターデーターも販売データも共有化
クライアント:約30台(社外(VPN接続)も含む)
・ターミナルサーバーの場合、データーもアプリケーションもサーバーに入れる
・クライアントサーバーの場合、データはサーバー、アプリケーションはクライアントに入れる

Aベストアンサー

> 個人情報保護の都合上、データを置く場所には管理者を
> 置かなければならず、管理上ソフトもデータも一カ所に
> 置く流れになっています。
> この流れは正しいでしょうか。

方法は幾つかありそうなので、正しい、ということは言い
切れないように思えます。

> 組織通りにデータを持つとどのようなメリットがあるのでしょうか。

そうしたら必ずいい、という訳ではありませんが、良くな
る基盤にはなるでしょう。例えば、インターネットの考え
方、一箇所がトラブっても全体は動く、とかですね。
サーバ型はサーバが停止したら全業務が停止します。
その為にサーバの二重化とか、信頼性アップとかコスト増に
陥りやすいですね。

それ以外に、無駄なネット使用が減少するとか、やり方にも
よりますが、データの二重化のやりやすさもあるでしょう。

QForm1に記述されたスクリプトをForm2のボタンクリックで実行させたい

おせわになります
VBのVer.6使用しています
Form1には仮に以下のような計算をする内容があるとします

Private Sub testA()
Text1.text = 10
Text2.text = 20
End Sub

これをForm2のボタンをクリックすると実行するようにするにはどうしたらよいでしょうか?

上のPrivateをPublicにしても駄目でした
標準モジュールではオブジェクトがないのでエラーとなりました

よろしくお願いします

Aベストアンサー

現在はどんなコードになってますか?

× Call testA()
○ Call Form1.testA() 'クラス名で修飾。

です。(当然、testAはPublicスコープで)

Qクライアントからサーバーのアプリを起動する方法

クライアントサーバーシステムを使用しているのですが
サーバーにインストールしているアプリをクライアント
から起動、終了(中止)や再起動するショートカットのようなものをクライアントに作成して簡便にする方法がありますか?
再起動するだけでもかまいませんのでよろしくお願いいたします。

サーバーはWINDOWS NT SERVER4.0
クライアントはWINDOWS95と98です

Aベストアンサー

再起動だけなら、こういうソフトがありますけどね。
http://www.vector.co.jp/soft/winnt/util/se130027.html

画面を表示してのリモートコントロールならば
VNCをオススメします。
http://www.forest.impress.co.jp/library/vnc.html

Qシャットダウンの関数

VB6.0で、PCのシャットダウンを行う関数ってありますでしょうか?
ご回答よろしくお願い致します。

Aベストアンサー

下記。

参考URL:http://homepage1.nifty.com/MADIA/vb/API/VBWINEXIT.htm

Qサーバー上にあるRAIDアレイからシステムブート

サーバー上にあるRAIDアレイからシステムブート

現在、Linuxサーバーを運用しています。
今度クライアントPC一台のデータを冗長化(システムドライブごと)すべく
RAIDカードを導入しようするか迷っているのですが、
サーバー上のバックアップ用RAID5アレイに大きな空きがあるので、
それを活用しようと思いました。

以前クライアントにLinuxを導入する際、PXEブートを使用したことがあるのですが、
それと同じ要領で、

ネットワーク上のRAIDアレイからOSダウンロード

OS起動

ネットワーク上のRAIDアレイをシステムドライブとして認識

といったことは可能でしょうか?

これが可能な方法はひとつだけ知っておりまして、それは
クライアントに導入するOSを仮想化し、そのHDDイメージをサーバー上に設定する。
そしてクライアント側にOS仮想化ソフト(VMware等)を導入して
一度クライアント側で仮想化ソフトを立ち上げてVM上でOSを起動する。
という方法です。

この方法では大幅なパフォーマンスの低下が見られるため、実用は不可能でした。

クライアントに導入する予定のOSはできればWindows系列、
不可能であればLinuxを導入する予定です。

サーバー上にあるRAIDアレイからシステムブート

現在、Linuxサーバーを運用しています。
今度クライアントPC一台のデータを冗長化(システムドライブごと)すべく
RAIDカードを導入しようするか迷っているのですが、
サーバー上のバックアップ用RAID5アレイに大きな空きがあるので、
それを活用しようと思いました。

以前クライアントにLinuxを導入する際、PXEブートを使用したことがあるのですが、
それと同じ要領で、

ネットワーク上のRAIDアレイからOSダウンロード

OS起動

ネットワーク上のRAIDアレ...続きを読む

Aベストアンサー

性能を求めるなら、少々面倒、かつ、出費を伴いますが、
iSCSIが最適です。

クライアント側に
  iSCSIブート可能なLANカードを増設。
  iSCSIターゲットとして、サーバを指定する。

サーバ側に
  iSCSI仮想ターゲットソフトウェアを導入。
  サーバ上の特定パーティションをiSCSIボリューム(LUN)として、
  クライアント向けに定義する。

以上で、サーバ側のディスク領域を利用してクライアントがiSCSIブート可能です。
クライアントOSからは、サーバ側で定義したiSCSIボリュームが普通のSCSIディスクとして認識されます。

過去にSANを構築したことがあれば、敷居は低いはず。
一方、ストレージ系の経験が全くない場合は、まず「iSCSIという仕組み」そのものについて知識を会得して下さい。
知識がないと、構築中に確実にハマリます。


サーバ側で必要となる、
Linuxで動作するiSCSI仮想ターゲット
「iSCSi Enterprise Target」を参考URLに記載します。

クライアント側に増設するLANカードは、
Broadcom社製チップ搭載のものが実績が多く安心かと思います。
また、Broadcom社製であっても、iSCSIブートできないものがあるので要注意。
(iSCSIブート機能はオプションライセンスなので、同一チップ搭載でもiSCSIブートできるもの、できないものがあります)

参考URL:http://iscsitarget.sourceforge.net/

性能を求めるなら、少々面倒、かつ、出費を伴いますが、
iSCSIが最適です。

クライアント側に
  iSCSIブート可能なLANカードを増設。
  iSCSIターゲットとして、サーバを指定する。

サーバ側に
  iSCSI仮想ターゲットソフトウェアを導入。
  サーバ上の特定パーティションをiSCSIボリューム(LUN)として、
  クライアント向けに定義する。

以上で、サーバ側のディスク領域を利用してクライアントがiSCSIブート可能です。
クライアントOSからは、サーバ側で定義したiSCSIボリュームが普通...続きを読む

Qパソコンのリモート起動・シャットダウンの方法について

VB:VB6.0sp5

端末A
os:windows2000pro
IP:192.168.1.10
Physical Address:00-11-22-33-44-55
端末B
os:windows2000pro
IP:192.168.1.11 の場合、
Physical Address:00-12-34-56-78-90

(1)VBプログラムでどのようにすれば良いのでしょうか?

(2) また、RS-232C や USB 等でも可能でしょうか?
 何か便利ツール等ございましたらご紹介くださいます様

よろしくお願いいたします

Aベストアンサー

http://oshiete1.goo.ne.jp/kotaeru.php3?q=435498
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1186493

Qクライアント と サーバー を構築

よろしくお願いします。
Windows2000~2003 (server)についての質問です。

ちょっとパソコンを使える程度の者が、クライアントとサーバーの役割を「こんなもんなんだ~」という程度に学べる方法はありますか。

サーバーとクライアントを構築実演するのですが、時間が2時間半くらいと限られています。最悪、クライアントは自分のノートパソコンを使用するとして、サーバーを構築する必要があります。サーバーを構築したとしても、これだけの短時間でサーバーとクライアントとしての役割を簡単に感じられるようなもの(例えば、WEBサーバー、FTPサーバー、メールサーバー、等とありますが・・・)は何かありますでしょうか?

また、それをどういう手順でやれば良いかについても教えてくださると幸いです。

どうぞ宜しくお願い致します。

Aベストアンサー

"ちょっとパソコンを使える程度"というのがどの程度なのか分かりませんが、実演時間も2時間半と決められているとのことなので、サーバーとクライアントの役割を理解する程度ならば、なにもWEBサーバーやFTPサーバー、ましてやメールサーバーなどを構築する必要はないと思います。
W2K或いはW2K3をドメインコントローラとして構築し、クライアントをドメインに参加させ、構築したドメインコントローラ上でクライアントマシンやユーザーの管理を色々試すだけで、サーバーの役割も十分理解可能と思います。

手順の概要としては以下の通りになります。

1.W2K或いはW2K3をインストールしアクティブディレクトリとDNSを入れ、ドメインコントローラに昇格します。
2.クライアントマシンをドメインに参加させます。
3.アクティブディレクトリのユーザーとコンピュータで、新規OUを作成し、適当なユーザーを新規作成します。
4.管理ツールからドメインセキュリティポリシーを開き、作成したユーザーに対して任意のポリシーを有効にします。
5.クライアントマシンにて、新規作成したユーザーでドメインにログオンしなおし、設定したポリシーが有効になって反映されていることを確認します。(例えば、デスクトップやIEに関する制限やパスワードの制限etc)

上記の作業ならば、ゼロから構築しても2時間半もあれば十分実演可能であり、内容も簡単な為理解しやすいと思います。
なにもWEBサーバーやFTPサーバー、メールサーバーやDBサーバーとして構築実演する必要はなく、サーバーでクライアントの管理ができれば、それぞれの役割について十分理解可能と思うのですが如何でしょう?
どうしてもというのであれば、上記の中ではWEBサーバーかFTPサーバーがもっとも簡単です。例えばWEBサーバーならば、簡単に説明すると、IISをインストールして、ホームディレクトリ(%SystemRoot%\Inetpub\wwwroot)に、クライアントのIEで表示させたいファイルを作成し、IISの設定をちょっといじるだけで、クライアントのIEにてホームディレクトリのURLを入力すれば、作成したファイル(HTMLなど)が表示されます。或いは、下記Deep_Blueさんの仰るとおり、FTPサーバーが一番簡単だと思います。(勿論、"ちょっとパソコンを使える程度"のレベルにもよるとは思いますが。)

"ちょっとパソコンを使える程度"というのがどの程度なのか分かりませんが、実演時間も2時間半と決められているとのことなので、サーバーとクライアントの役割を理解する程度ならば、なにもWEBサーバーやFTPサーバー、ましてやメールサーバーなどを構築する必要はないと思います。
W2K或いはW2K3をドメインコントローラとして構築し、クライアントをドメインに参加させ、構築したドメインコントローラ上でクライアントマシンやユーザーの管理を色々試すだけで、サーバーの役割も十分理解可能と思います。

手順...続きを読む

QOSシャットダウン時の常駐アプリ終了について

現在VB2005にて常駐アプリの開発を行っています。
OSはWindowsXPです。
起動はOS起動時にスタートアップより起動するのですが、
OSのシャットダウン時に常駐アプリが終了していない為、
「このプログラムからの応答がありません(待機、終了、キャンセル)」が表示されます。
この方法を回避するには、シャットダウンを常駐アプリ側で検知してアプリ自身が終了処理をすると思いますが、方法がよくわかっていません。
http://dobon.net/vb/dotnet/system/sessionending.html
↑のURLを参照してみたのですが、シャットダウン時にメッセージの表示はされるのですが、メッセージ表示部をアプリ終了処理に置き換えても、終了処理が行われませんでした。
どなたか、お分かりになる方ご教授いただければと思います。

Aベストアンサー

クラスの生成で外部アプリを起動ってインスタンスの事です?
Newメソッド内でやってるなら、あまりよろしくないので今後はやめた方がよいかと・・・

それはさておき、外部アプリの終了ですが
恐らく新しいプロセスを生成して実行してると思います。
そのプロセスをkillメソッドでやっつけてやればいけませんか?
oboroxxさんの回答と同じですが。

Qクライアントサーバーにするには何が必要でしょうか

あるクライアントPCにファイルサーバーの役目を持たせて、
文書ファイルの共有化をしたいのですが、windows2000 Professionalのままで
可能でしょうか。
共有化による同時接続が回避できないため、Serverソフトを入れるべきかとも
思いますが、社内LANにつながったクライアントのままで、同時に
ファイルサーバーの役目を持たせることが可能かどうかを知りたいのです。
つまり、自分もLAN上で作業をしながら、別のPCの接続を受けて、排他制御
されたファイルの更新をリアルタイムに監視できるようなシステムを構築したい
のですが、別マシンにすべきでしょうか。

 主に使用するアプリ Access2002(ファイル共有化の目的のソフト)
 このPCのOS   windows2000 Professional
 イントラネット状況 WindowsNT4.0 Serverを使用
 ひとつのドメインに約40台が常時接続。
 社内のドメイン数は約50、接続PCは各ドメインから1台程度

他に必要な情報があれば補足しますので、教えて下さい。
ちなみに、社内のシステム部門には空サーバーはありません。
LANケーブルは専用線を敷設しています。
サーバーの新設には待ちがあり、今回は利用できそうにありません。
現在はファイルの共有化にメール添付を使用して、手動で更新しています。

あるクライアントPCにファイルサーバーの役目を持たせて、
文書ファイルの共有化をしたいのですが、windows2000 Professionalのままで
可能でしょうか。
共有化による同時接続が回避できないため、Serverソフトを入れるべきかとも
思いますが、社内LANにつながったクライアントのままで、同時に
ファイルサーバーの役目を持たせることが可能かどうかを知りたいのです。
つまり、自分もLAN上で作業をしながら、別のPCの接続を受けて、排他制御
されたファイルの更新をリアルタイムに監視できるよ...続きを読む

Aベストアンサー

 補足から...

 Access2002の検証をしていないのでなんとも言えませんが、Accessって所詮クライアントソフトなんですよね。だから、同時アクセスや随時更新なんて手法には向いていないアプリケーションです。
 そこで、MSDEを使用した構築が可能でしたら、DBエンジンをMSDEにしてしまって、ユーザが使用する部分のみ別のアプリケーションで作ってしまうのがベストの様な気がします。

 Access2002のデータベースをファイル共有する場合には、排他制御やユーザの寛大な心が必要になりますのであまりお薦め出来ません。
 アプリケーションを別途構築する必要がありますが、MSDEを使用する事でかなりの問題が解決出来ます。MSDEはOFFICEのプロフェッショナルには付いてきています。
SQLサーバを買う余裕は無いけど...堅牢なシステムに少しでも近づけたい考えるなら、MSDEしかないですね。

QVB6でシャットダウン、ログオフを感知

VB6でwindowsがシャットダウン、ログオフ、再起動する前に特別な処理をしたいのですがVB6シャットダウンを感知する方法がわかりません(ToT)
知っている方がいましたら教えて下さいよろしくお願いします。
※windowsは2000proです。

Aベストアンサー

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If (UnloadMode = vbAppWindows) Then
'特別な処理
End If
End Sub

UnloadModeがvbAppWindowsなのは、シャットダウン、ログオフ、再起動の場合のみと思いますが、違いますか?


人気Q&Aランキング