Я пытаюсь автоматизировать установку одного из моих приложений, но столкнулся с несколькими блокпостами, и мне действительно нужна помощь.Автоматизация установки с использованием сценариев BAT/PS
В настоящее время мы используем технологию KACE от Dell, чтобы подтолкнуть установщика к локальным машинам. Установщик запускается как пользователь SYSTEM, что означает, что он не имеет и не может иметь прямого доступа к сетевым ресурсам (относится к ним позже).
установка рабочего процессаПриложение выглядит следующим образом:
Stop Local Security Services, чтобы установить программное обеспечение
Удалите все отображенный на диск букву X
Карта сетевой диск X \ тест \ тест
TestApp.exe/с
Msiexec/я Test.msi/тихо
Начало Услуги Локальной безопасности, чтобы установить программное обеспечение
скопировать файл ярлыка на рабочем стол
установки ИЦЭ lf имеет 1 исполняемый файл и 1 MSI, которые должны быть запущены. EXE устанавливает приложение для мэйнфреймов. Файл MSI устанавливает несколько файлов локально, а затем регистрирует 6 DLL-файлов, расположенных на этом подключенном диске.
В этом случае проблема заключается в том, что эти файлы ДОЛЖНЫ быть на этом общем диске, а программа установки работает как SYSTEM -> Учетная запись учетной записи системы не может получить доступ к подключенному диску для регистрации файлов, чтобы установка завершилась с ошибкой.
Меня также ограничивает тот факт, что я не могу просто сохранить имя пользователя/пароль в виде открытого текста в пакетном файле.
Вот мой код до сих пор:
REM Stopping McAfee Services
echo Stopping McAfee Services.
net stop mcshield
net stop mcafeeframework
REM Map Network Drive
echo Mapping Network Drive
net use X: /delete /y
net use X: \\test\test
(Here is where I need help - Is there a way to force a username/password prompt here for the user? I basically just want the user to authenticate to the X drive mapping, which will allow the installation to move forward)
echo Starting Test 1 Installation
Test1.exe /s /v"/qb"
echo Starting Test 2 Installation
msiexec /i Test2.msi /quiet
(If the drive has not been mapped by this point, the installation fails as the SYSTEM account can't access the drive)
echo.
REM Restarting Mcafee Services
echo Starting McAfee Services.
net start mcshield
net start mcafeeframework
echo.
REM Copy Shortcut
xcopy "shortcut\*" "C:\Users\public\desktop"
В качестве альтернативы,
Может/я должен преобразовать это в PS сценарий? Я знаю, что PS более мощный, чем пакет, но не знал, как это сделать.
В Powershell вы можете использовать 'New-PSDrive' с параметром' -credential' для сопоставления диска. Однако, если это должно быть без присмотра, которое бы не обходилось, чтобы хранить учетные данные в обычном тексте. Разве невозможно запустить все это под другой учетной записью? – arco444
Насколько мне известно.Мы ограничены либо запуском скрипта, либо пользователем системы, либо отсутствием доступа к общему диску или пользователю, но у пользователя нет прав администратора для запуска установки. В нашей нынешней среде невозможно поднять пользователя до администратора. На стороне примечания. Пока я работал над преобразованием этого сценария powershell, я обнаружил, что параметры New-PSDrive, такие как -credential и -persist, не работают (я получал недопустимые ошибки параметров в PS). –
Помимо того, что X-диск является сетевым и недоступен для системной учетной записи, я не вижу, как приложение будет работать в любом случае. Буквы дисков отображаются в контексте профиля пользователя (а не всей системы), поэтому, если вы зарегистрируете файлы на этом диске с определенной учетной записью, они не будут видны другой учетной записи. Может быть, каждый пользователь обращается к нему через имя общего ресурса, а не букву диска? Групповая политика - это общее решение для вашего сценария и позволяет избежать проблемы, запустив учетные данные, которые могут быть добавлены для установки в случае необходимости. – PhilDW