VBScriptによる疎通確認

このQ&Aのポイント
  • VBScriptを使用して2台のPCサーバへの疎通確認とログイン・ログオフの監査を行っていますが、生死の判断ができずエラーポップが表示されてしまいます。
  • VBScriptに疎通確認を追加し、生きているPCサーバのみにアクセスするようにコードを組みたいです。
  • VBScriptでの疎通確認が必要で、ログイン・ログオフ時にエラーポップが出てしまう問題を解決したいです。
回答を見る
  • ベストアンサー

VBScript による疎通確認

今、以下のVBScriptを使い2台のPCサーバへ成功の監査としてログイン・ログオフ記録をアプリケーションログに書き込んでいます。しかし、このVBScriptでは、2台のPCサーバの生死を判断することは出来ず、ダウンしているPCサーバだろうがアクセスします。そのため、ログイン・ログオフする度にエラーポップが出てしまいます。 そこで、このVBScriptに疎通確認し判断したのち、生きているPCサーバへのみアクセスするようにしたいのですがどのようにコードを組めば良いのか解りません。ご教授お願いします。 ログインスクリプト Const AUDIT_SUCCESS = 8 Set objShell = WScript.CreateObject("WScript.Shell") Set objNetwork = WScript.CreateObject("WScript.Network") strMsg = objNetwork.UserName + " logon " objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名1" objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名2" ログオフスクリプト Const AUDIT_SUCCESS = 8 Set objShell = WScript.CreateObject("WScript.Shell") Set objNetwork = WScript.CreateObject("WScript.Network") strMsg = objNetwork.UserName + " logoff " objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名1" objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名2"

  • 0417
  • お礼率18% (6/32)

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Pingした時に、レスポンスがあるなら http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__networking.asp の(一番下の所の)ようにして確かめられます。

関連するQ&A

  • VBSからのサーバサイドのEXEの実行

    こんにちはSHIRAOといいます。 WScript.Shellを使用してサーバにあるEXEファイルを 起動しようと思っているのですがどうもうまくいきません。WScript.Shellを使用する時に何か設定しなければならないことがあるのでしょうか? <script language="vbscript"> Function Window_OnLoad : Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "C:\WINDOWS\system32\notepad.exe" : End Function </script>

  • VBScriptでノートパッド起動

    HTMLのボタン押下イベントで、VBScriptの関数を呼んで その中でノートパッドを開いてます。 VBScriptの関数は、 <Script language = "VBScript"> Sub showReport(FILEPATH) Dim intRtn Dim objShell Set objShell = CreateObject("WScript.Shell") intRtn = objShell.Run("notepad " & FILEPATH, 1, True) Set objShell = Nothing EndSub </Script> です。 ファイルのフルパスを引数で渡して、ノートパッドから開いてます。 この処理を行うと、起動して最初の1回だけ 「このページのActiveXコントロールは、安全ではない可能性があり、ページのほかの部分に影響する可能性があります。ほかの部分に影響しても問題ありませんか?」 というダイアログが表示されてしまいます。 一度「はい」を選択すると、ウィンドウを閉じるまでは出なくなりますが、 また起動した場合はダイアログが表示されます。 このダイアログを表示しない方法を教えていただけますでしょうか? プログラムの記述が悪いのでしょうか? IE6のSP1です。 よろしくお願いします。

  • ASPからVBScriptの実行

    ASPから下のVBScriptを実行使用とすると "500"Internal Server Error が出力されて困ってます。 へるぷみー Dim objWSHShell Set objWSHShell=WScript.CreateObject("WScript.Shell") objWSHShell.Run "cscript.exe d:\test.bat" objWSHShell=Nothing

  • vbscriptによる条件分岐とファイル出力

    vbscript初心者です。ご教授頂けますと幸いです。 ネットワーク監視ログが毎朝出力され、そのログの中身を、各サーバにログインし手作業で確認を行っています。 この作業を、VBscriptで行いたいと思っているのですが、どうもうまくいかず困っています。 正常時のログには必ず「1,2」と文字列が出力されます。 この文字列を検索対象にして、「1,2」の記述があれば、新規の結果確認ログに「ネットワークは正常です」とコメントを付けて、ファイルを出力し、 「1,2」が見つからなかった場合は、そのログファイルの3行目のみを、新規の結果ログファイルに抽出する、VBscriptを作成したいと思っています。 異常時のログファイルには、異常を知らせるコメントが3行記述されてます。必要な行は、3行目だけなので、3行目を結果ログとして出力したい。 以下、構文ですがVB初心者であり、色々なサイトを見て作ってみましたが全然動かず今回、ここに投稿しました。 '検索対象のテキストファイルのオープン Set WshShell = WScript.CreateObject("WScript.Shell") Set objFs = CreateObject("Scripting.FileSystemObject") Set objFs = Fs.OpenTextFile(NlbTmp) If Instr(A,"1,2") > 0 Then MsgBox "ネットワークは正常です" Else ”異常の場合の条件分岐が分からず・・・” Set oText = CreateObject("Scriptting.FileSystemObject").CreateTextFile( 結果ログ.log, True ) str = Fs.ReadLine Fs.WriteLine(str) End If 自分で作成するのが初めてな物で本当によろしくお願い致します。

  • プリンターの追加

    プリンター:RICHO IPSio NX750 RPCS を、WSHにて追加したいのですが、 うまくいきません。 ポートは、Standard TCP/IP Portになります。 以下のWSHを実行すると、 プリンター名がありません、とのエラー がでます。 Set objNetwork = WScript.CreateObject("WScript.Network") objNetwork.AddWindowsPrinterConnection "IP_133.197.52.194" よろしくお願いします。

  • vbscript内にvbscriptを記述

    option explicit on error resume next dim objie, objwshell set objwshell = createobject("wscript.shell") objwshell.appactivate "microsoft internet explorer" set objie = createobject("internetexplorer.application") objie.width = 380 objie.height = 100 objie.navigate "about:blank" objie.document.write "<html><head><title>終了処理</title><script language='vbscript'>" & vbcrlf objie.document.write "option explicit" & vbcrlf objie.document.write "function osu()" & vbcrlf objie.document.write " dim aaa" & vbcrlf objie.document.write " Set aaa = CreateObject('Wscript.Shell')" & vbcrlf objie.document.write " aaa.run 'wscript ログオフ.vbs', 1, true" & vbcrlf objie.document.write " set aaa = nothing" & vbcrlf objie.document.write "end function" & vbcrlf objie.document.write "</script></head>" & vbcrlf objie.document.write "<body bgcolor='#CCCCCC' style='overflow:hidden'><form name='form1'>" & vbcrlf objie.document.write "<input type='button' name='button1' value='ログオフ' onClick='osu()'>" & vbcrlf objie.document.write "</form></body></html>" & vbcrlf objie.visible = true objie.toolbar = false objie.statusbar = false objie.resizable = false set objwshell = nothing set objie = nothing 上記のプログラムを[.vbs]という拡張子で保存。 これは、vbsファイルをクリックするとIEの画面が出て、ログオフのボタンをクリックするとログオフするというものなのですが、うまくいきません。 vbsの中にまたvbsを記述しているからでしょうか?

  • VBScriptで、既に開いているIEを画面の最前面に表示させる

    VBScriptで、既に開いているIEを画面の最前面に表示させる OS:WindowsXP SP3 ブラウザ:InternetExplorer6 期待している機能としましては、IEが開いていない場合は新規にIEを立ち上げ、既に開いている場合は、それを画面の最前面に表示させる(最小化されている場合はそれを解除する)といった感じです。 教えて頂きたいのは、IEを画面の最前面に表示させる方法(最小化の場合はそれを解除)です。 現状のソースを記載します。おかしな点がありましたらご指摘よろしくお願い致します。 Dim objShell Dim objWindow Dim objIE Dim ieFlag ieFlag = False '開いているウィンドウからIEを検索 Set objShell = CreateObject("Shell.Application") For Each objWindow In objShell.Windows If TypeName(objWindow.Document) = "HTMLDocument" Then ieFlag = True Set objIE = objWindow Exit For End If Next 'IEが開いていたらそれを画面の最前面に、そうでないなら新規で開く If ieFlag = True Then 'IEを画面の最前面に又は、最小化解除 Else '新規にIEを開く Set WshShell=Wscript.CreateObject("Wscript.Shell") WshShell.Run("http://www.google.co.jp/") WScript.Sleep(4000) End If

  • vbscriptをHTMLに埋めるとエラーが出る

    下記のvbscriptをHTMLに埋める手段を考えています。 <SCRIPT LANGUAGE="VBScript">で入れると、 ActiveX コンポーネントを作成できません。:GetObject とエラーが出てしまいます。回避方法をご教授ください。 Dim usr,group,ComputerName,UserName,strADsPath ComputerName = "server" 'コンピュータ名 UserName = "testuser" 'ユーザ名 strADsPath = "WinNT://" & ComputerName & "/" & UserName & ",user" set usr = GetObject(strADsPath) For Each grp In usr.Groups MsgBox "グループ名: " & grp.Name Next

  • VBScriptでオートパイロットプログラムを作ったのですが

    環境は、VB 6.0 SP5 です。 以下のようにVBでプログラミングしたんですが(VBScript含む)、続けて違うIDでログインしようとすると、該当ページが前のIDでログインしたままになっていて、動作が不安定です。普通にIEを立ち上げるてログインした場合、2回目に立ち上げた状態は、ログイン前のまっさらなページが表示されますよね。 何が問題なのでしょう? ご教授願えないでしょうか。   Dim WshShell As Object   Dim objIe As Object   Set WshShell = CreateObject("WScript.Shell")   Set objIe = CreateObject ("InternetExplorer.Application")   objIe.Navigate("該当ページのURL")   objIe.Visible = True   WshShell.AppActivate (objIe)   ログイン処理・・・   同じ事を繰り返す・・・

  • VBSファイルを定期的に自動実行する方法

    毎日同時刻に下記のVBSファイルを自動実行したいと思います。 タスクスケジューラで実行すると download.exe は起動しますが 表示されたダイアログがアクティブ状態にならないため (タイトルバーが灰色のまま、タスクバーのボタンが点滅)、 文字入力ができないまま、処理が終了してしまいます。 1.ダイアログをアクティブにし、正常に処理を実行させるには   どのように記述すれば良いですか? 2.このVBSファイルをユーザーがログオフされている状態で   実行することは可能ですか? 恐れ入りますが、ご存じの方がおられましたら、ご教示願います。 <環境> Windows 2008 Server R2 standard (64ビット) <D:\aaa.vbs> Set objShell = WScript.CreateObject("WScript.Shell") 'ダウンロードEXEを実行 Set objExec = objShell.Exec("D:\download.exe") WScript.Sleep 1000 objShell.AppActivate(objExec.ProcessID) 'ファイルのダウンロード先を指定し、実行(ENTER) WScript.Sleep 1000 objShell.SendKeys "D:\data.txt~"

専門家に質問してみよう