- 締切済み
WSHからのコマンドプロンプト実行
お世話になります。 OS:Windows7 Professional SP1 UAC:既定(上から2番目) 上記の条件で、WSHからコマンドプロンプトを管理者権限で立ち上げ、 ファイルをコピーするスクリプトを作成したいのですが・・・ 当方あまり知識が無く困り果ててる次第でございます。 *************************************************************************** Do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7 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 Next Set sha = CreateObject("Shell.Application") sha.ShellExecute "cmd.exe", """" & WScript.ScriptFullName & """ uac", "", "runas" WScript.Quit loop *************************************************************************** 以上のコマンドでUsersからでも管理者権限でプロンプトが立ち上がる所までは確認しています。 このあと、プロンプト上で "Copy D:\A.txt C:\Windows\System32 /y" を自動的に実行してくれるようなスクリプトにしたいのですが、どう記述すればよいのでしょうか? なるべくユーザーに負担をかけない形で、スクリプト一発で処理できたらと考えていますが・・・ ご指導よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
Set oFS=Wscript.CreateObject("Scripting.FileSystemObject") oFS.CopyFile "d:\a.txt","C:\Windows\System32\" みたいな感じだとうごきませんか?
- a-yoshi
- ベストアンサー率34% (222/645)
的外れなコメントになるかもしれませんが、以下のもので、IPCONFIG /ALL を実行させることができています。 Set objWS = CreateObject("WScript.Shell") Set objExec = objWS.Exec("cmd.exe /c ipconfig/all") (抜粋) これをこんな感じで実行してみてください。 Dim objWS Dim objExec Set objWS = CreateObject("WScript.Shell") Set objExec = objWS.Exec("cmd.exe /c Copy D:\A.txt C:\Windows\System32 /y") だめだったらごめんなさい。 では
お礼
ご回答ありがとうございます。 私のスクリプトで立ち上がった管理者権限付きのプロンプトとは、別にプロンプトが立ち上がってしまうようです。 (コピーコマンドはUACで弾かれました) なかなか難しいものですね…
お礼
ご回答ありがとうございます。 管理者として立ち上げたプロンプトに入力されるわけではないので、UACに弾かれてしまうようですね・・・ 勉強になりました。