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 件のコメント:
コメントを投稿