Передайте переменную окружения в INSTALLDIR в msi - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь написать конфигурацию PowerShell DSC и получить следующий код:

Package RapidCRC
{
    Ensure = "Present"
    Path  = "C:\Repo\RapidCRC.Unicode.v0.3.27.x64\RapidCRC-Setup-0.3.27-x64.msi"
    Name = "RapidCRC (x64) 0.3.27"
    ProductId = "{27A6AB13-B66B-4AB8-BDA1-313477475F6A}"
    Arguments = 'INSTALLDIR="C:\Program Files\Utilities\RapidCRC.Unicode" ALLUSERS=2 ARPSYSTEMCOMPONENT=0'
}

Я хотел бы передать C: \ Program Files в качестве переменной среды. Я попробовал следующее:

Arguments = 'INSTALLDIR="%ProgramFiles%\Utilities\RapidCRC.Unicode" ALLUSERS=2 ARPSYSTEMCOMPONENT=0'

Arguments = 'INSTALLDIR="[ProgramFiles64Folder]Utilities\RapidCRC.Unicode" ALLUSERS=2 ARPSYSTEMCOMPONENT=0'

но они не работают. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 13 октября 2018

Вы смотрите на скрипты PowerShell. Таким образом, вы можете использовать $env:ProgramFiles в вашем скрипте конфигурации DSC:

Package RapidCRC
{
    Ensure = "Present"
    Path  = "C:\Repo\RapidCRC.Unicode.v0.3.27.x64\RapidCRC-Setup-0.3.27-x64.msi"
    Name = "RapidCRC (x64) 0.3.27"
    ProductId = "{27A6AB13-B66B-4AB8-BDA1-313477475F6A}"
    Arguments = "INSTALLDIR=`"$($env:ProgramFiles)\Utilities\RapidCRC.Unicode`" ALLUSERS=2 ARPSYSTEMCOMPONENT=0"
}

СТОРОННОЕ ПРИМЕЧАНИЕ: обратите внимание на backticks , используемый в параметре Argument.

...