Что нового

[Автоматизация] Как заставить pkgmgr.exe работать в AutoIT?

Vinosh

Сервер не ###. Стоял и стоять будет.
Сообщения
15
Репутация
1
Хочу написать скрипт который в начале устанавливал софт который есть в Windows 7 но по умолчанию отключен.
В обычном BAT\CMD команда выглядит так:
Код:
pkgmgr /iu:"NameSoft"
Срабатывает сразу и стабильно, но если делаю через AutoIT

так:
Код:
RunWait("cmd.exe /c " & "start /w pkgmgr /iu:NameSoft")

и вот так:
Код:
RunWait(@ComSpec & ' /C pkgmgr /iu:"NameSoft"')


То получаю сообщение об ошибке:
Не удалось выполнить операцию, ошибка 0x8007000B
Была сделана попытка загрузить программу, имеющую неверный формат
Вроди смысл команды в autoit и cmd одинаковый, почему так происходит? И какое решение?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.
 

joiner

Модератор
Локальный модератор
Сообщения
3,557
Репутация
628
Vinosh
вот так работает
Код:
RunWait(@ComSpec & ' /C pkgmgr /?')

это для установки обновлений. причем тут софт? http://technet.microsoft.com/ru-ru/library/cc749465(v=ws.10).aspx
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Vinosh [?]
В обычном BAT\CMD команда выглядит так:
Вот так и запускайте
Код:
RunWait('pkgmgr.exe /iu:"NameSoft"')

Или с какой целью вы пытаетесь использовать cmd.exe ?
 
Автор
Vinosh

Vinosh

Сервер не ###. Стоял и стоять будет.
Сообщения
15
Репутация
1
joiner
Да, так выполняется как положено. Т.е. пример работает.

InnI
Всё та же ошибка, я там по всякому извращался и простые методы не хотят работать, должны, но не хотят
- - -

Так же пробывал просто записать команду в file.cmd и запустить из скрипта, та же самая ошибка, хотя если запустить file.cmd руками, то всё нормально

Похожая тема http://www.autoitscript.com/forum/topic/115307-script-errors-when-cmd-doesnt/
__ __ __
РЕШЕНИЕ:
pkgmgr.exe работать не будет, но есть альтернатива dism.exe
Код:
RunWait("cmd.exe /k " & "C:\Windows\SysNative\dism.exe /online /enable-feature /featurename:""NameSoft"" ", @WindowsDir, @SW_SHOW)

:stars: :blink:
Лично я в шоке, спасибо тем кто пытался и забугорным друзьям кто сумел :laugh:

PS: SysNative сильно засекреченая windows-ом папка что в неё даже залезть нельзя, но команда сработала
 

InnI

AutoIT Гуру
Сообщения
4,951
Репутация
1,446
Судя по той теме, проблема в битности Windows.
Vinosh, если у вас Windows x64, не могли бы вы запустить тот первый проблемный скрипт при помощи AutoIt3_x64.exe ? Интересно узнать - поможет это или нет...
 
Автор
Vinosh

Vinosh

Сервер не ###. Стоял и стоять будет.
Сообщения
15
Репутация
1
Воистину... Скомпилированый через AutoIt x64 на win x64 работает отлично...
facepalm.jpg
 
Верх