Vbscript 用于以管理员身份运行批处理文件而不提示输入密码的脚本
下面的脚本按预期在Windows XP上工作。脚本abc.bat将以管理员身份运行,无需提示输入密码(密码是自动提供的)。但同样的脚本在我们的Windows7上不起作用。是否需要进行任何更改?我没有VB脚本编写的经验。谢谢Vbscript 用于以管理员身份运行批处理文件而不提示输入密码的脚本,vbscript,Vbscript,下面的脚本按预期在Windows XP上工作。脚本abc.bat将以管理员身份运行,无需提示输入密码(密码是自动提供的)。但同样的脚本在我们的Windows7上不起作用。是否需要进行任何更改?我没有VB脚本编写的经验。谢谢 Option Explicit Const USER = "administrator" Const PASS = "*********" Const WSNAME_COMMANDLINE = "C:\support\
Option Explicit
Const USER = "administrator"
Const PASS = "*********"
Const WSNAME_COMMANDLINE = "C:\support\abc.bat"
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim WSHShell : Set WshShell = CreateObject("WScript.Shell")
Dim WshNetwork : Set WshNetwork = CreateObject("WScript.Network")
Dim oDic : Set oDic = CreateObject("Scripting.Dictionary")
Dim objArgs : Set objArgs = WScript.Arguments
Dim oProcessEnv : Set oProcessEnv = WshShell.Environment("PROCESS")
Dim sPathToRunAs, iReturnCode
sPathToRunAs = oProcessEnv("SystemRoot")&"\System32\runas.exe"
''msgbox sPathtorunas
if Not fso.FileExists(sPathToRunAs) Then : WScript.Quit(1) 'Can't find RunAs
'''msgbox "runas /user:" & USER & " " & CHR(34) & WSNAME_COMMANDLINE & CHR(34)
iReturnCode=WshShell.Run("runas /user:" & USER & " " & CHR(34) & WSNAME_COMMANDLINE & CHR(34), 2, FALSE)
Wscript.Sleep 40 ' Time for window to open.
WshShell.AppActivate(sPathToRunAs)' Activate the Window
Wscript.Sleep 3
WSHShell.SendKeys PASS & "~" ' Send the password
Wscript.Sleep 3
''msgbox "done"
您是否在禁用UAC(用户帐户控制)的Windows 7上尝试了该脚本 您可以在此处找到禁用UAC的方法:
如果UAC是您出现问题的原因,您可以使用windows任务计划程序来避免这种情况,就像这里解释的那样:您是否尝试过运行方式的/savecred开关?它应该使密码只在第一次使用时才被使用。()我们不希望使用系统的用户需要知道管理员凭据。所以我们的业务不考虑这个选项。是的,我们确实决定暂时禁用它,到目前为止一切都很好。非常感谢。