2017-02-17 4 views
1

Моя цель: я пытаюсь использовать VBS для создания ярлыка на рабочем столе для IE под текущим пользователем, который запускает его с помощью команды RunAs с аргументами и приглашением переменной (InputBox), которая заполняет переменная с пользовательским вводом.VBS для создания ярлыка на рабочем столе с аргументами RunAs

ОС: Win7 x64

Рабочая BAT: (заполнение домена \ имя пользователя вручную)

%windir%\system32\runas.exe /u:Domain\Username "%ProgramFiles%\Internet Explorer\iexplore.exe" 

нерабочими VBS:

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" /u:DOMAIN\"" & strUser & "%ProgramFiles%\Internet Explorer\iexplore.exe") 
oUrlLink.IconLocation = "%ProgramFiles%\Internet Explorer\iexplore.exe" 
oUrlLink.Save 
+0

Вы должны исправить избежать строку в 'TargetPath', при использовании кавычек внутри строки, удвоит их является правилом, как' oUrlLink.TargetPath = «% WINDIR% \ system32 \ runas.exe/у: DOMAIN \ "& strUser &" ""% ProgramFiles% \ Internet Explorer \ iexplore.exe "" "'. – Lankymart

ответ

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" 

Вслед за the comments

К сожалению сосредоточены на неправильно вопрос, whi le, что было проблемой, основной проблемой было то, как вы устанавливали 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 
+0

Спасибо Lankymart! По-прежнему существует ошибка ... Ошибка: ---------------------------------- -------------------------------------------------- ------ Создать ярлык рабочего стола (RunAs Internet Explorer (Doamin Account) .vbs (5, 1) Ошибка выполнения Microsoft VBScript: Неверный вызов или аргумент процедуры -------------- -------------------------------------------------- -------------------------- Он запрашивает строку ввода, но не выполняет ее. Я также попытался отделить последний пространство и аргументы с той же точной ошибкой :( –

+0

отдельная строка .... oUrlLink.TargetPath = "% windir% \ system32 \ runas.exe/u: DOMAIN \" & strUse r & "" & "% ProgramFiles% \ Internet Explorer \ iexplore.exe" –

+0

@GekkoLlama Опять это не сработает, потому что '% ProgramFiles%' будет расширяться до 'Program Files', что означает, что вам нужно заключить его в кавычки * (приведенная строка, см. примеры) *, поэтому, следуя советам в ответе, это должно быть 'oUrlLink.TargetPath ="% windir% \ system32 \ runas.exe/u: DOMAIN \ "& strUser &" ""% ProgramFiles % \ Internet Explorer \ iexplore.exe "" "'. Он не форматирует хорошо в комментарии, просто скопируйте строку в моем ответе - * «Учитывая это, строка должна быть« *. – Lankymart

Смежные вопросы