1 (изменено: dab00, 2011-07-14 18:48:18)

Тема: VBS: Запуск mshta.exe от имени

Не получается запустить mshta.exe от имени
Код:

Set objShellApp = CreateObject("Shell.Application")
Set wshShell = CreateObject("WScript.Shell")
objShellApp.ShellExecute "mshta.exe " & Chr(34) & wshShell.CurrentDirectory & "\" & "XXX.hta" & Chr(34), "", "", "runas",1

Пишет Windows не удалось найти 'mshta.exe "C:\Temp\XXX.hta"'
Подскажите, пожалуйста, как решить вопрос.
Через wshShell.Run - без проблем. А очень хочется через objShellApp.ShellExecute.

А если просто:

objShellApp.ShellExecute Chr(34) & wshShell.CurrentDirectory & "\" & "XXX.hta" & Chr(34), "", "", "runas",1

то пишет Приложение, выполняющее эту операцию указанному файлу не сопоставлено.

В path system32 есть
assoc .hta: .hta = htafile
...

2 (изменено: Spy00000, 2011-07-14 21:12:31)

Re: VBS: Запуск mshta.exe от имени

Для objShellApp.ShellExecute аргументы для файла вторым параметром передаются.
Вот так вот должно работать:


Set objShellApp = CreateObject("Shell.Application")
Set wshShell = CreateObject("WScript.Shell")
objShellApp.ShellExecute "mshta.exe" , Chr(34) & wshShell.CurrentDirectory & "\" & "XXX.hta" & Chr(34), "", "runas",1

3 (изменено: dab00, 2011-07-15 08:27:44)

Re: VBS: Запуск mshta.exe от имени

спасибо Spy00000, пробел был лишний, сэкономил пару часов
только вот теперь другой косяк: при запуске от имени XXX.hta не удается подключиться к WMI
код ошибки: -2147024891
похоже с подключением от имени ничего не получится...

4

Re: VBS: Запуск mshta.exe от имени

-2147024891 вроде-бы означает "отказано в доступе".
Вы от чьего имени HTA запускаете и к WMI на каком компьютере (на локальном или по сети) подключаетесь?

5

Re: VBS: Запуск mshta.exe от имени

в том то и дело, что  пристарте XXX.hta пытается подключиться к локальному WMI, а локальное подключение возможно только от имени текущего пользователя... и не смотря на то, что я выбираю текущего, все равно косяк...
в общем не получится ничего
короче щас запостю темку с ссылкой на это чудо-приложение
приглашаю тестировать