net useを使って共有フォルダをローカルのドライブにマッピングします。普通にCMDを起動すると、ドライブを普通に利用できますが、「管理者として実行」で起動した場合は、”指定されたドライブが見つかりません”というメッセージが表示されます。
以下のシナリオを考えてみます。
・Xドライブに、管理者権限に昇格し実行する必要があるVBScript(Test.vbs)がある
・Test.vbsを呼び出すバッチ(callVBS.bat)がある
Test.vbsの内容は以下です。
' 管理者権限に昇格 ' WScript.Arguemnts.Count = 0:GUI 1:CUI do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7 ' Check WScript5.7~ and Vista~ Set wmi = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2") Set os = wmi.ExecQuery("SELECT *FROM Win32_OperatingSystem") For Each value in os if left(value.Version, 3) < 6.0 then exit do 'Exit if not vista Next ' Run this script as admin. Set sha = CreateObject("Shell.Application") sha.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" WScript.Quit loop ' todo: Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.RegWrite "HKLM\SOFTWARE\Test\Value", "Test", "REG_SZ" |
バッチを実行すると、UACのポップアップ画面が表示されて、「はい」を選択したら、”スクリプト ファイル <Script name>が見つかりません。”という旨のエラーが出ます。
なぜかわからないですが、どうやら、マッピングしたドライブに直接実行することができなくて、VBScriptをローカルにコピーして実行する必要があります。
この記事がお役にたちましたらシェアをお願いします:)
0 件のコメント:
コメントを投稿