Выполнение удаленной тихой установки MSI из Powershell - PullRequest
2 голосов
/ 10 февраля 2012

Я пытаюсь использовать командлет PowerShell Invoke-Command для установки установщика MSI.Изнутри powershell на локальном компьютере и из соответствующего каталога работает следующее:

./setup /quiet

Не работает следующее:

$script =
{
    param($path)
    cd "$path"
    & ./setup /quiet
    return pwd
}
return Invoke-Command -ComputerName $product.IPs -ScriptBlock $script -Args $sourcePath

ДляВ целях тестирования я работаю на локальной машине, передавая в "."для аргумента -ComputerName.Пути были проверены на правильность перед передачей в Invoke-Command, а ошибки, сгенерированные в разных версиях этого кода, указывают на правильность путей.Я также пробовал с и без «&» на удаленном вызове для установки.Другие вызовы Invoke-Command работают, поэтому я сомневаюсь, что это проблема с разрешениями.Я проверил, что ответ от вызова pwd - ожидаемый каталог.

Как мне заставить установку работать?

Ответы [ 2 ]

0 голосов
/ 03 августа 2012

У меня были странные проблемы при попытке удаленно выполнить скрипт на локальной машине. Другими словами, удаленный powershell для локальной машины. Это возвращается с ошибкой, которая, кажется, говорит, что удаленное взаимодействие PowerShell не включено на машине, но это было. Я могу запустить сценарий удаленно с другого компьютера до цели, но при использовании удаленного взаимодействия с той же самой коробкой проблема возникает.

  • Убедитесь, что служба WinRM запущена.
  • Убедитесь, что удаленное взаимодействие PowerShell включено, как в Enable-PSRemoting -force.
  • Убедитесь, что ваша политика выполнения powershell достаточно свободна, как, например, в Set-ExecutionPolicy Unrestricted. Если для политики установлено значение RemoteSigned, это может быть проблемой.

Возможно, вы также захотите проверить, что пользователь, с которым вы запускаете скрипт, обладает (локально, но с удаленным доступом) правами «войти в систему как служба» или как пакетное задание. Просто угадайте, если приведенный выше список ничего не решает.

0 голосов
/ 10 февраля 2012

Вы можете попробовать использовать Start-Process в своем блоке скрипта:

cd $ path start-process setup.exe -arg "/ quiet"

Не уверен, если вы захотите или нужно подождать. Посмотрите на помощь для Start-Process.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...