vbs ShellExecuteè¿�行外部程åº�时如何判断外部程åº�执行æˆ�功与å�? target=


需�vbs执行一些命�比如 ""uwfmgr filter enable"" (统一写入筛选器), 但是这个uwfmgr.exe需�管�员���能�行相关命令
目�我是这么写的

Set sst = CreateObject("Shell.Application")
Call sst.ShellExecute("uwfmgr","filter enable", ,"runas",0)

这样�以以管�员身份�行命令, 但是我怎么�能判断uwfmgr执行是�功还是失败的? (管�员cmd�行命令会有返回�

原�我执行一些cmd命令都是�/p>

intReturn = WScript.CreateObject("wscript.shell").Run("xxxxxx",1,true)

通过判断intReturn是���判断命令执行�功失� 但是这个�能执行需�管�员��的命� 有没有办法让Run能以管�员�行命�

如何���行Setup.bat文件

'以管�员身份�行程�的命令admin.vbs 
Set objWMIServices = GetObject("winmgmts:{impersonationLevel=impersonate}!\.
ootcimv2") 
Set objWbemObjectSet = objWMIServices.ExecQuery(_ 
"SELECT * FROM Win32_Process WHERE " &_ 
"ExecutablePath='" & Replace(WScript.FullName,"","\") & "' and " & _ 
"CommandLine LIKE '%" & WScript.ScriptName & "%'") 
for each objWbemObject in objWbemObjectSet 
cmdline = objWbemObject.CommandLine 
next 
if WScript.Arguments.Count then 
file = WScript.Arguments(0) 
if file="/?" then 
call ShowHelp() 
WScript.Quit 
end if 
Set RegEx = new RegExp 
RegEx.IgnoreCase = true 
RegEx.Global = true 
RegEx.Pattern = "\|/|||(|)|[|]|{|}|^|$|.|*|?|+" 
temp1 = RegEx.Replace(WScript.ScriptName, "$&") 
temp2 = RegEx.Replace(file, "$&") 
RegEx.Global = false 
RegEx.Pattern = "^.*?" & temp1 & "[""s]*" & temp2 & """?s*" 
args = RegEx.Replace(cmdline, "") 
'WScript.Echo file, args 
else 
file = "Setup.bat" 
'args = "/k cd /d """ & CreateObject("WScript.Shell").CurrentDirectory & Chr(34) 
end if 
'核心代� 
Set sh = CreateObject("Shell.Application") 
call sh.ShellExecute( file, args, , "runas" ) 
function ShowHelp() 
dim HelpStr 
HelpStr = "以管�员身份�行程�� & vbCrLf _ 
& vbCrLf _ 
& WScript.ScriptName & " [program] [parameters]..." & vbCrLf _ 
& vbCrLf _ 
& "program ��行的程�" & vbCrLf _ 
& "parameters 传递给 program 的�� & vbCrLf _ 
& vbCrLf 
WScript.Echo HelpStr 
end function 

到此这篇关于vbs ShellExecute�行外部程�时如何判断外部程�执行�功与�的文章就介�到这了,更多相关vbs ShellExecute�行外部程�内容请�索脚本之家以�的文章或继续�览下�的相关文章希望大家以�多多支�脚本之家�/p>