1

コード(私の実際のコードではありませんが、同じ動作を生成します):

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 を受け入れ、表示された PS ウィンドウを 経由[X]で閉じると、ウィンドウは直接閉じずに 3 ~ 5 秒で消えます。

Windows 8 Pro 64 ビットを使用しています。

4

1 に答える 1

1

これはRead-Host問題です。これは 64 ビット OS だけに影響するわけではなく、x86 と x64 の両方の Windows 7 Pro で確認したところです。再現するにはRead-Host、任意の PowerShell コンソールで実行し、ウィンドウを閉じます。

アップデート:

さまざまなバージョンの Windows とビットネスでテストしたところ、結果に一貫性がないことがわかりました。Read-Host実行ごとに動作が異なる場合があるようです。

于 2013-01-13T05:49:08.593 に答える