none
Выполнять скрипт пока жив процесс RRS feed

  • Вопрос

  • Всем привет!

    Я что-то тупой по ходу =))) Нужно чтоб скрипт жил пока идет установка офиса (нужно чтобы не смешивались шаги в task sequence). Делаю

    $office = Get-WmiObject win32_product | Where-Object {$_.name -match 'professional plus'}
    $version = $office.Version -replace '(\.\d{1,4}){3}$'
    Start-Process -FilePath "$env:CommonProgramFiles\Microsoft Shared\OFFICE$version\Office Setup Controller\Setup.exe" `
        -ArgumentList "/uninstall ProPlus /config $PSScriptRoot\uninstall.xml"
    $process = Get-Process | Where-Object {$_.Path -like "$env:CommonProgramFiles\Microsoft Shared\OFFICE$version\Office Setup Controller\Setup.exe"}
    while ($process) {
    Start-Sleep -Seconds 10
    }

    Все это дело не заканчивается а спит бесконечно. Как закончить выполнения скрипта по окончании процесса setup.exe??

    Спасибо!

    17 ноября 2015 г. 12:46

Ответы

  • А кто обновлять $process будет в цикле?

    $process = Get-Process | Where-Object {$_.Path -like "$env:CommonProgramFiles\Microsoft Shared\OFFICE$version\Office Setup Controller\Setup.exe"}

    while ($process) { Start-Sleep -Seconds 10 $process = Get-Process | Where-Object {$_.Path -like "$env:CommonProgramFiles\Microsoft Shared\OFFICE$version\Office Setup Controller\Setup.exe"} }

    Есть ключ Start-Process -Wait и командлет Wait-Process , чтобы лишних проверок не делать.
    • Предложено в качестве ответа Vector BCOModerator 17 ноября 2015 г. 13:01
    • Помечено в качестве ответа NTLose 17 ноября 2015 г. 13:01
    17 ноября 2015 г. 12:55
    Отвечающий

Все ответы

  • А кто обновлять $process будет в цикле?

    $process = Get-Process | Where-Object {$_.Path -like "$env:CommonProgramFiles\Microsoft Shared\OFFICE$version\Office Setup Controller\Setup.exe"}

    while ($process) { Start-Sleep -Seconds 10 $process = Get-Process | Where-Object {$_.Path -like "$env:CommonProgramFiles\Microsoft Shared\OFFICE$version\Office Setup Controller\Setup.exe"} }

    Есть ключ Start-Process -Wait и командлет Wait-Process , чтобы лишних проверок не делать.
    • Предложено в качестве ответа Vector BCOModerator 17 ноября 2015 г. 13:01
    • Помечено в качестве ответа NTLose 17 ноября 2015 г. 13:01
    17 ноября 2015 г. 12:55
    Отвечающий
  • Осёл я))))

    Спасибо! Я просто заблуждался о том что цикл сам будет обращаться к $process, хотя и было подозрение что переменная не в цикле

    За ключики отдельное спасибо!
    • Изменено NTLose 17 ноября 2015 г. 13:00
    17 ноября 2015 г. 12:58