|
■No73568 (魔界の仮面弁士 さん) に返信 とんでもない勘違い(あるいは読み違い)をしていました。 「コマンドプロンプト」と「VBS」を同一視してしまってました。
73565に記した”右クリック後の「管理者として実行」がない”は、VBSに対して、でした。
そもそも初めッからから、VBSを「管理者として実行」することなど、想定されていないのですね!
なにはともあれ、下記コードに辿り着きました。 手元の環境(32bit/64bit)では、このスクリプトのダブルクリックで、巧く動きました。
繰り返しご教示いただいた魔界の仮面弁士さんには、改めて御礼申し上げます。 ほんとうにありがとうございました。
いま暫く開いたままにします。 見落としなど、重ねてご指摘いただければ幸いです。
''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' SetupODBC.vbs ' ' 32bit/64bit 環境に応じてODBC・DSNを構成 ' VBSを管理者として実行 ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''' Option Explicit
Dim objShell, objShellApp Dim strMode, strDSN, strDATABASE, strSERVER, strCommand
''' DSN定義 strDSN = "hogeDSN" strDATABASE = "hogeDB" strSERVER = "hogeINSTANCE"
strCommand = "odbcconf.exe /A {CONFIGSYSDSN ""SQL Server"" " strCommand = strCommand & "DSN=" & strDSN strCommand = strCommand & "|DATABASE=" & strDATABASE strCommand = strCommand & "|SERVER=" & strSERVER strCommand = strCommand & "}"
''' 管理者として実行 do while WScript.Arguments.Count = 0 Set objShellApp = CreateObject("Shell.Application") objShellApp.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
WScript.Quit loop
''' DSN構成実体 Set objShell = WScript.CreateObject("WScript.Shell")
'' X64 or X86 ? strMode = objShell.Environment("Process").Item("PROCESSOR_ARCHITECTURE") If UCase(strMode) = "X86" Then WScript.Echo "32ビット環境で構成します" objShell.CurrentDirectory = "C:\Windows\System32\" Else WScript.Echo "WOW64環境で構成します" objShell.CurrentDirectory = "C:\Windows\SysWOW64\" end if
'' 実行 objShell.Run strCommand,,True
''' WScript.Echo " ODBC/DSN " & strDSN & " を構成しました"
''' file end ''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''
|