2

ユーザーがラジオ ボタンの特定の配置をクリックして、一連の vbscript (および近々 Perl スクリプト) を実行する必要があります。

私はすべてのvbscriptをサーバー側に保存しています。実行するためにリモートシステム上にある必要はありません。そうそう、スクリプトはイントラネットのリモート システムに関する情報を収集しています。

最善の方法は何でしょうか。現在、複数のスクリプトではなく、1 つのスクリプトのみを実行するためにこれを使用しています...これを保持するか、このアイデアを破棄する必要があります。

Protected Sub windowsScript(ByVal COMPUTERNAME As String)
    ' Create an array to store VBScript results
    Dim winVariables(1) As String
    Dim filePath As String = COMPUTERNAME & "\C$\Windows\somefile.txt"
    'Execute PsExec on script
    runPsExec(COMPUTERNAME, "systemInfo.vbs", 1)
    'Import data from text file into variables
    textRead(filePath, winVariables)
    System.Threading.Thread.Sleep(1000)
    'Delete the file on server - we don't need it anymore
    runPsExec(COMPUTERNAME, "systemInfo.vbs", 2)
    MsgBox("Windows OS: " & winVariables(0).ToString())
    MsgBox("Service Pack: " & winVariables(1).ToString())

End Sub

また、別の関数「textRead」があるため、ここではわかりにくいですが、この特定のスクリプトがクライアント側に保存され、vbscript がテキスト ファイルに出力されます。textRead は変数を読み取り、それを読み取るためにテキスト ファイルをサーバーに送り返します。

これは間違いなく私がやりたいことではありません。もう少し動的にしたいのですが、新しいスクリプトを使用すると...クライアント上にある必要はまったくありません。

どんな助けでも大歓迎です:)

何らかのタイプの While ループを作成することを考えていますが、それが機能するかどうかはわかりません。

4

1 に答える 1

1

ブラウザからこれを行うのはちょっと奇妙です。私の会社では、vbscript ログオン スクリプトを使用してログオン時にシステム情報を収集し、その結果をログ ファイルに追加します。必要に応じて、特定のスクリプトを実行して、より多くのデータを収集したり、Windows SCCM を介してシステム設定を変更したりすることがあります。

ユーザーに自分のシステムに関する情報を提供することが目的である場合は、ローカルで (サーバー共有上の場所から) 実行できる優れたユーティリティがいくつかあります。

編集

複数のプロセスを開始する簡単な方法

dim scripts_to_run, script
const COMPUTERNAME = 0, SCRIPTNAME = 1, EXTRA_PARAMS = 2
scripts_to_run = Array(_
  Array("computer1","script1.vbs",1),_
  Array("computer2","script1.vbs",0),_
  Array("computer3","script3.vbs",3)_
)
for each script in scripts_to_run
  runPsExec script(COMPUTERNAME), script(SCRIPTNAME), script(EXTRA_PARAMS)
  runPsExec join(script,",")
next

sub runPsExec(p1, p2, p3)
  'here coms your code shat runs the script
  wscript.echo p1 & p2 & p3
end sub

または短いバージョン

dim scripts_to_run, aArgs
scripts_to_run = Array(_
  Array("computer1","script1.vbs",1),_
  Array("computer2","script1.vbs",0),_
  Array("computer3","script3.vbs",3)_
)
for each aArgs in scripts_to_run
  runPsExec aArgs
next

sub runPsExec(aArgs)
  'here coms your code shat runs the script
  wscript.echo aArgs(0) & aArgs(1) & aArgs(2)
end sub
于 2012-08-03T19:49:43.320 に答える