|  | ■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 '''
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
 
 
 
 |