我想檢查PowerShell是否有管理權限。這很簡單,工作正常,但我的問題是,PowerShell不會在腳本打開新實例後繼續執行新腳本。新的實例在System32中運行。重新啓動PowerShell的管理權限,並繼續使用當前腳本
的新實例只是表明:PS C:\windows\system32>
是否也可以關閉第二個實例啓動後運行的第一個實例?
function checkRights {
$identity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$princ = New-Object System.Security.Principal.WindowsPrincipal($identity)
if(!$princ.IsInRole(`
[System.Security.Principal.WindowsBuiltInRole]::Administrator))
{
$powershell = [System.Diagnostics.Process]::GetCurrentProcess()
$psi = New-Object System.Diagnostics.ProcessStartInfo $powerShell.Path
$installPath = $MyInvocation.MyCommand.Path
$script = $installPath
$prm = $script
foreach($a in $args) {
$prm += ' ' + $a
}
$psi.Arguments = $prm
$psi.Verb = "runas"
[System.Diagnostics.Process]::Start($psi) | Out-Null
return;
}
}