1

我想问一下在运行脚本时如何防止关机,或者至少给出一个弹出窗口,询问你是否想关机(比如当你打开记事本并写一个字符,但不保存它和点击关机)。

我一直在创建以静默方式运行安装程序的脚本,但其中一些似乎仍会激活 Windows 关闭(如果它们缺少先决条件,可能会发生这种情况)。

这是我用于安装的代码:

# --- Install ---
$fileExtension = (Get-ChildItem -path $installationFilePath).Extension

if(".msi" -eq $fileExtension)
{
    [string[]]$Private:args = New-Object string[] 4
    $args[0] = "/qn"
    $args[1] = "TRANSFORM=1033.mst"
    $args[2] = "REBOOT=Suppress"
    $args[3] = "/l*v $errorLogPath"

    $process = Start-Process $installationFilePath -ArgumentList $args -PassThru
}

if(".exe" -eq $fileExtension)
{
    [string[]]$Private:args = New-Object string[] 2
    $args[0] = '/v"' + "/qn TRANSFORM=1033.mst REBOOT=Suppress /l*v $errorLogPath" + '"'
    $args[1] = "/s"

    $process = Start-Process $installationFilePath -ArgumentList $args -PassThru
} 

$processActive = $process

while ($processActive -ne $null)
{
    Start-Sleep -Seconds 1
    Write-Host '.' -NoNewline
    $processActive = Get-Process -Id $processActive.Id -ErrorAction SilentlyContinue
}

我知道这应该是可能的,但我还没有弄清楚如何。

4

1 回答 1

0

以下是安装完成后中止关机的示例:

Start-Process yourprogram.exe -Wait
shutdown /a

你甚至可以循环中止几次以确保你成功了。

for($i=0;$i -lt 5;$i++)
{
    shutdown /a
    sleep 1
}
于 2017-03-31T14:17:20.967 回答