首页 文章

你会修复这个vbs来使用admin priviledge执行这个bat文件吗?

提问于
浏览
0

在Windows 7下激活uac .

这都是一个问题 . 这个问题:

upnphost excessive cpu load

Especifically:

我经常遇到这个问题,我不想一直重新启动upnphost服务,所以我只是在任务调度程序中创建了一个任务,每天运行一次,每5分钟重复一次 . 该任务运行一个.bat文件:net stop upnphost net start upnphost如果你想让它在没有cmd窗口的情况下在后台运行,运行这个.vbs,上面的.bat已经被创建为“C:\ upnphost.bat “:设置WshShell = CreateObject(”WScript.Shell“)WshShell.Run chr(34)&”C:\ upnphost.bat“&Chr(34),0设置WshShell =没有这样的方式upnphost服务将每隔5自动重启一次没有可见演示的分钟,所以如果它决定行为不端并且进入高cpu,它将持续5分钟,你可以将其更改为你想要的任何间隔 .

一切都有效,除了蝙蝠实际工作的事实,我需要直接右击蝙蝠并以管理员身份执行 .

因为这个原因,如果我点击它将执行它,但不是作为管理员,它不会工作 .

因此,将其作为一项任务安排也不会有效 .

你能修复vbs中的代码吗?

Set WshShell = CreateObject("WScript.Shell") 
 WshShell.Run chr(34) & "C:\upnphost.bat" & Chr(34), 0 Set 
 WshShell = Nothing

所以它用admin priviledge执行bat . 重要的是,我到蝙蝠的路线有空位 .

尊敬

2 回答

  • 0

    您可以在启用了UAC的情况下以管理员身份启动程序,但是仍然会提示您是否要启动此程序 . 例如,

    Set objSA = CreateObject ("Shell.Application")
    objSA.ShellExecute "cmd.exe","uac","","runas",1
    

    然而,

    我能够使用此vbscript使用计划任务停止并重新启动此服务,将任务设置为“隐藏”并以最高权限运行 .

    strService = "upnphost"
    strComputer = "."
    
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colService = objWMIService.ExecQuery("SELECT Name FROM Win32_Service " _
    & "where Name='" & strService & "'")
    
    For Each objService In colService
        return = objService.StopService()
        return = objService.StartService()
    Next
    
  • 0

    计划任务必须以可以启动和停止服务(通常是管理员帐户)并启用了“以最高权限运行”选项的用户身份运行 .

    enter image description here

相关问题