代码(不是我的实际代码,但它也会产生相同的行为):
If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(`
[Security.Principal.WindowsBuiltInRole] "Administrator"))
{
Write-Warning "The script tries to re-run itself using Administrator privileges.";
try {
Start-Process powershell -ArgumentList ($MyInvocation.MyCommand.Path) -Verb runAs;
}
catch [InvalidOperationException] {
Write-Warning "You canceled the privilege request. This script WON'T WORK, please re-run it!";
Read-Host;
Exit;
}
Exit;
}
# Here comes the code which will be run if started with Admin rights
Read-Host;
当我接受Windows UAC并通过[X]
关闭显示的PS窗口时,窗口会在3-5秒后消失,而不是直接关闭!
我正在使用 Windows 8 Pro 64位。
答案 0 :(得分:1)
这是一个Read-Host
问题。它不仅影响64位操作系统,我只是在x86和x64 Windows 7 Pro上验证过。要重现,只需在任何PowerShell控制台上运行Read-Host
并关闭窗口。
更新:
我刚刚测试了各种版本的Windows和bit-ness,我发现结果并不一致。 Read-Host
有时在不同的运行中表现不同。