Запустите установщик из сценария выключения PowerShell

Цель:

  • Запустите установщики (.exe) на всех компьютерах домена при завершении работы с помощью сценария PowerShell.

Дано:

  • Я успешно использую другие сценарии завершения работы, назначенные GPO
  • Скрипт на самом деле работает - проверяется путем записи пользовательских файлов журнала
  • Установщик хранится на сетевом ресурсе

Проблема:

  • Установщик не запускается при вызове из сценария выключения (ниже)
  • Та же проблема с установщиками Java и.NET (оба.exe)

Уже пробовал

  • Скрипт работает при запуске вручную
  • Общий доступ к файлам установщика доступен для "Все", "Аноним", "Доменные компьютеры"
#
$registry = Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |
Get-ItemProperty -name Version,Release -EA 0 |
Where { $_.PSChildName -match '^(?!S)\p{L}'} |
Select Version

$flag = $false

foreach ($version in $registry){
    if ($version.Version -like "4.5*"){
        "Found Version " + $version.Version
        $flag = $true
        break
    } else {

    }
}
if($flag){
    # .NET 4.5* is installed
} else {
    # install .NET 4.5.2
    & "\\ad1dc01\deployment$\Microsoft\DotNet\452\NDP452-KB2901907-x86-x64-AllOS-ENU.exe" /q /norestart
}

1 ответ

Решение

Возможно, установщик не завершает работу до завершения работы системы. Попробуйте командлет Start-Process с параметром -Wait?

Start-Process -FilePath "\\ad1dc01\deployment$\Microsoft\DotNet\452\NDP452-KB2901907-x86-x64-AllOS-ENU.exe" -ArgumentList "/q /norestart" -Wait

Другие вопросы по тегам