Запустить командный файл или команду в установщике wix, когда ИТ-специалисты отключили командную строку - PullRequest
0 голосов
/ 29 мая 2020

Я создал установщик с помощью набора инструментов wix. Поскольку основное приложение - это веб-приложение, мне нужно установить веб-сертификат и отредактировать файл хоста. Для этого я написал командный файл, который отредактирует файл хоста и добавил свойство Wix, чтобы добавить WebCert.

Пакетный файл выглядит так:

FIND /C /I "site.site.com" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0  (
    ECHO. >>%WINDIR%\System32\drivers\etc\hosts
    ECHO ^127.0.0.1 site.site.com>>%WINDIR%\System32\drivers\etc\hosts
    ECHO. >>%WINDIR%\System32\drivers\etc\hosts

И в Component.wxs:

<iis:Certificate Id="rootWebCert"
                 Name="site"
                 Request="no"
                 BinaryKey="site.pfx"
                 StoreName="root"
                 PFXPassword="PASSWORD"
                 StoreLocation="localMachine"/>

Теперь это нормально работает на компьютерах с большей свободой, но в нашем домене есть некоторые компьютеры, которые заблокированы, и одна из функций, которые они блокируют, - это командная строка. Есть ли альтернативный способ отредактировать файл хоста или установить веб-сертификат? Я также сделал это в PowerShell, но для этого потребуется также установить PowerShell на компьютеры с ограниченным доступом.

EDIT:

Мне был предоставлен доступ к их машинам, и я подтвердил это после принятия EULA и Место установки, кнопка «Установить» запросила повышенные разрешения, и они смогли пройти аутентификацию, и установщик НЕ сообщал о каких-либо ошибках, но скрипт НЕ ПРОИЗВОДИЛ go через. Я обнаружил, что работа DID заключалась в открытии командной строки от имени администратора и запуске msiexec /i installer.msi

Я также добавил следующие строки в wxs:

<Condition Message="Installation requires Administrator privileges">
  <![CDATA[Privileged]]>
</Condition>

Эта часть уже была там, просто забыл поместить в исходный пост:

<InstallExecuteSequence>
  <Custom Action="CustomBatchFile" After="InstallFiles"><![CDATA[NOT Installed]]></Custom>
</InstallExecuteSequence>
<CustomAction Id="CustomBatchFile"
              ExeCommand="&quot;[SHORTCUTDIR]CustomBatch.bat&quot; &quot;[INSTALLFOLDER]&quot;"
              Directory="SHORTCUTDIR" 
              Execute="deferred" 
              Return="asyncNoWait"/>
...