VBscriptのobjWShell.Runでセットアッププログラムにパラメータを渡す方法について

このQ&Aのポイント
  • OFFICE2003で、リソースキットでインストールするソフト(Wordなど)のカスタマイズ方法とMSTファイルの作成について、解説します。
  • コマンドプロンプトからセットアッププログラムを起動する方法と、objWShell.Runを使用してパラメータを渡す方法について説明します。
  • objWShell.Runの記述でパラメータを指定する際の注意点について解説します。
回答を見る
  • ベストアンサー

VBscriptのobjWShell.Run

OFFICE2003で、リソースキットでインストールするソフト(Wordなど)の種類や設定をカスタマイズして、MSTファイルを作成し、そのパラメータをセットアッププログラムに渡すことでカスタマイズされたOffice2003を社内に配布すためのスクリプトを考えております。 コマンドプロンプトから  G:\setup.exe TRANSFORMS="G:\setupfile.mst /qd-" を入力するとセットアッププログラムは起動するので、 下記通りobjWShell.Runの記述で、setup.exe 後ろにパラメータを記述したいのですが、エラーとなってしまいます。 objWShell.Run "G:\setup.exe TRANSFORMS="G:\setupfile.mst /qd-", vbNormalFocus, True どのようにすれば、いいのでしょうか?

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

試していませんが objWShell.Run "G:\setup.exe TRANSFORMS=""G:\setupfile.mst /qd-""" とクォートしたらどうなりますか?

Jiep21
質問者

お礼

早々にご連絡いただきありがとうございました。 解決いたしました。

関連するQ&A

  • VBSでEXEファイル起動時のパラメータ記述方法

    Office2003をサーバー上に置き、バッチファイルで配布しておりました。 \\server\office2003$\setup.exe TRANSFORMS=\\server\office2003$\setupfile.mst /qd+ Windows7では、ネットワークパスが使えないようでしたので、VBSでインストールを使用と考えています。 空いているドライブを検索して、空いているドライブ名をネットワークドライブに設定しようとしておりますが、      setup.exe のパラメータの箇所で、setup.exeからエラーが出てしまいます。 objWShell.Run strDrive & ":\setup.exe TRANSFORMS=" & strDrive & ":setupfile.mst /qd+", vbNormalFocus, True   strDriveは、空いているドライブを検索した結果のドライ名が入っています。 パラメータの記述方法をおしえてください。

  • Vbscriptエラー

    vbでメッセージBOXを用いてプログラムを起動できるようにしたいのですがエラーが出てしまいます。「インデックスが有効範囲にありません。」 どこが間違っているのでしょうか? ーーーーーーー Dim objWShell Dim a Dim b a = MsgBox (" 「」を利用。"&Chr(13)&Chr(13)&_ "    「」?    "&Chr(13)&Chr(13)&Chr(13)&_ " ---------------------------- "&Chr(13)&_ "  お問い合わせください。" , vbYesNo,"「r」") ' MsgBox vbYes&"="&a If a = vbYes Then Set objWShell = CreateObject("WScript.Shell") b = WScript.Arguments(0) If b = 0 Then objWShell.Run "C:\Windows\System32\notepad.exe" ,vbNormalFocus,False ' End If End If ーーーーー

  • vbscriptを用いて他のVBSファイルを実行

    プログラム ---------------------------------------------------------------- option explicit dim objwshell set objwshell = createobject("wscript.shell") objwshell.run "ファイルのフルパス", 1, false set objwshell = nothing --------------------------------------------------------------- その「ファイルのフルパス」上に「notepad.exe」と入力するとメモ帳が起動するんですけど、他のファイル(vbs、jsなど)を指定するとエラーが出ます。 もしかしてこれは拡張子が「.exe」のファイルだけしか起動できないのでしょうか? ちなみに上のファイルを保存するときの拡張子は「.vbs」です。

  • WSH.Runで待機できません

    お世話になっております。 掲題の件でおしえてください。 Set objWshShell = CreateObject("WScript.Shell") ret = objWshShell.Run("abc.exe", 0, true) 上記のようなコードで、同期をとって外部プログラム(abc.exe)を実行させています。 abc.exeの中では別の外部プログラム(Setup.exe:InstallShieldで作成)を 同様にWSHで同期を取って実行させています。 上記コードををループを使って実行したところ、 Setup.exe実行中にabc.exeの処理が終了してしまうようで、意図した動作となりません。 どのようにしたら、Setup.exe終了を待機して、abc.exeを終了させられるのでしょうか? よろしくお願いいたします。 Win7;VB6

  • 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

    下記、プログラムを実行すると、コマンドプロンプトの画面が 消えずに、そのまま残ってしまいます。 どうしたら、画面を消すことができるでしょうか。 お力添えをお願いいたします。 Set WshShell = Wscript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("user") WshEnv("C:\NET\aaa.txt") = "administrator" Wshshell.Run("cmd.exe") WScript.Sleep(500) WshShell.SendKeys("runas /user:administrator " + chr(34) + "xcopy D:\NET\aaa.txt C:\NET\aaa.txt" + chr(34)) WshShell.SendKeys("{Enter}") WScript.Sleep(500) WshShell.AppActivate "C:\WINDOWS\system32\runas.exe" WshShell.SendKeys("XXXXX") WshShell.SendKeys("{Enter}") WScript.Sleep(500)

  • office2007の自動インストール(スクリプト)が出来ない...

    office2007の自動インストール(スクリプト)が出来ない... オフィスカスタマイズツールでMSPファイルを作成(Office2007oct.MSP)し、 スクリプトでユーザにインストールさせたいのですが、下記のエラーが出てしまいます... エラー内容 /adminfile で指定されたパスまたはファイルにカスタマイズ更新プログラムが 含まれていませんでした。 ここの”カスタマイズ更新プログラム”とは何を指しているのでしょうか? この解決方法を教えてほしいのです。 実行スクリプト文:"setup.exe /adminfile Office2007oct.MSP” 今回初めての試みで少ない情報で申し訳ありませんが、宜しくお願いします。

  • "Program Files"に "Overland" というフォルダが??

    自分のパソコンのProgram Filesフォルダを覗いてみたところ、\Overlandという名前の見覚えのないフォルダが入っていました。中には、「overland.msi」「Overland.cab」「setup.exe」「setup.ini」「instmsia.exe」「instmsiw.exe」というファイル、および「英数字の羅列.ini」「4桁の数字.mst」が数十個入っています。 これはいったい何のプログラムでしょうか。ウィルスやスパイウェアでなければいいのですが... (ちなみに、Norton InternetSecurityの検査にはひっかかりませんでした)。 よろしくお願いします。

  • ファイルを開く時間測定のスクリプトについて

    お世話になります 会社でログ監視ツールを導入するにあたりどの程度負荷がかかるのか 計測することになりました。 まず、ファイルを開くのにかかる時間をログに記録するための スクリプトを作成しました。 プログラムの最初と最後に時間を出力するというものです。 しかし、やってみたところ前後でまったく同じ時間が記録されていました。(秒まで) Runメソッドを使用し、ファイルが開き終わってから時間を記録するように するにはどういったロジックが必要なのか教えてください。 よろしくお願いします。 【現在のスクリプト】 Option Explicit Dim objWShell Dim objFs Dim outFile Dim vbNormalFocus Dim myData Set objFs = CreateObject("Scripting.FileSystemObject") Set outFile = objFs.CreateTextFile("ログファイルのパス", True) 'Trueは上書き可 Set objWShell = CreateObject("WScript.Shell") OutFile.WriteLine Now() objWShell.Run "rundll32.exe url.dll" & _ ",FileProtocolHandler 資料のパス", 1, TRUE OutFile.WriteLine Now() OutFile.WriteLine "終了" OutFile.Close

  • エクセルVBA:perlで作成したexeが失敗する

    VBAプログラムで詰まってしまったので質問します。 perlにて自作したexeファイルをexcelのボタンから開きたいのですが、 実行の途中で止まってしまうようなのです。 止まってしまうexeファイルは、自分でダブルクリックして起動すると正常動作する為、 原因がわかりません。 'Declare Function ShellExecute Lib "shell32.dll" _ 'Alias "ShellExecuteA" ( _ 'ByVal hwnd As Long, _ 'ByVal lpOperation As String, _ 'ByVal lpFile As String, _ 'ByVal lpParameters As String, _ 'ByVal lpDirectory As String, _ 'ByVal nShowCmd As Long) As Long 'lRet = ShellExecute(0, "open", sPASS, vbNull, vbNull, SW_NORMAL) 'With CreateObject("Wscript.Shell") ' .Run "***********************", 5 'End With 'MsgBox "vbCrLf & CurDir & vbCrLf" 'Shell "**********************", 1 'With CreateObject("Wscript.Shell") ' .Run "..************", 5 'End With 'Dim ret As Long 'With CreateObject("Wscript.Shell") ' ret = .Run("*************", 7, True) 'End With 'If ret <> 0 Then MsgBox "失敗しました": Exit Sub 'Shell "*****************************" 'Dim WSH 'Set WSH = CreateObject("Wscript.Shell") 'WSH.Run "*************************", 3 'Set WSH = Nothing 'Dim file As Variant 'file = Application.GetOpenFilename 'file = "****************** " + file 'Shell (file) 'On Error GoTo errline 'ret = ShellExecute(0, "open", "***************", "", Path, 1) 'errline: 'Err = 0 'Dim ファイルのあるフォルダ As String 'Dim ファイルの名前 As String 'Dim プログラムのパス As String 'Dim 拡張子 As String 'ファイルのあるフォルダ = Worksheets("Sheet1").Cells(1, 1) 'ファイルの名前 = Worksheets("Sheet1").Cells(2, 1) 'プログラムのパス = Worksheets("Sheet1").Cells(3, 1) '拡張子 = Worksheets("Sheet1").Cells(4, 1) 'Dim ファイルのパス As String 'ファイルのパス = ファイルのあるフォルダ & "\" & ファイルの名前 & "." & 拡張子 'Dim AppFp As String 'AppFp = プログラムのパス & " """ & ファイルのパス & """" '前の""はスペース空ける '「"」が特殊文字であるため、スキップするための文字(エスケープ文字)「"」を前につける 'Dim a As Integer 'a = Shell(AppFp, vbNormalFocus) '上記プログラム全部× Const vbHide = 0 'ウィンドウを非表示 Const vbNormalFocus = 1 '通常のウィンドウ、かつ最前面のウィンドウ Const vbMinimizedFocus = 2 '最小化、かつ最前面のウィンドウ Const vbMaximizedFocus = 3 '最大化、かつ最前面のウィンドウ Const vbNormalNoFocus = 4 '通常のウィンドウ、ただし、最前面にはならない Const vbMinimizedNoFocus = 6 '最小化、ただし、最前面にはならない 'Dim objWShell 'Set objWShell = CreateObject("WScript.Shell") 'できたが×途中で終了している模様 'フォルダ「C:\happy」を開きます 'objWShell.Run "rundll32.exe url.dll" & _ ' ",**************", vbNormalFocus, False 'WScript.Echo "**********を実行しました!" 'Set objWShell = Nothing どうにかVBAから起動したいのですが、方法は無いでしょうか??

専門家に質問してみよう