我的目标:我正在尝试使用VBS在运行它的当前用户下为IE创建桌面快捷方式,使用带参数的RunAs命令和使用用户输入填充变量的变量(InputBox)提示符。 / p>
操作系统:Win7 x64
工作BAT :(手动填写域\用户名)
list
不工作的VBS:
%windir%\system32\runas.exe /u:Domain\Username "%ProgramFiles%\Internet Explorer\iexplore.exe"
答案 0 :(得分:0)
当TargetPath
不是有效字符串时,当进出字符串时,它们应始终以单引号开头和结尾。字符串中的字面引号也必须进行转义,以避免“破坏”字符串并导致语法错误。要在字符串中转义文字引号,请将其加倍。
以下是一些应该有帮助的例子。
Dim TestString
TestString = "Simple string"
'Simple string
TestString = "Concatenated" & " string"
'Concatenated string
TestString = "Another " & TestString & " with a variable"
'Another Concatenated string with a variable
TestString = """Quoted string"""
'"Quoted string"
TestString = "This is a """ & TestString & """ in a variable"
'This is a "Quoted string" in a variable
考虑到这一点,该行应该是
oUrlLink.TargetPath = "%windir%\system32\runas.exe /u:DOMAIN\" & strUser & " ""%ProgramFiles%\Internet Explorer\iexplore.exe"""
输出为:
%windir%\system32\runas.exe /u:DOMAIN\Username "%ProgramFiles%\Internet Explorer\iexplore.exe"
对不起专注于错误的问题,而这是一个问题,主要问题是你如何设置TargetPath
。它应该只包含可执行文件的路径,需要使用Arguments
属性指定任何参数,所以试试这个。
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
strUser = InputBox ("Please Enter your Domain Account")
set oUrlLink = WshShell.CreateShortcut(strDesktop & "\RunAs Internet Explorer (Domain Account).lnk")
oUrlLink.TargetPath = "%windir%\system32\runas.exe"
'Use arguments to pass any arguments for the executable.
oUrlLink.Arguments = "/u:DOMAIN\" & strUser & " ""%ProgramFiles%\Internet Explorer\iexplore.exe"""
oUrlLink.IconLocation = "%ProgramFiles%\Internet Explorer\iexplore.exe"
oUrlLink.Save