私はpowershellに管理者権限があるかどうかを確認しようとしています。それは非常にシンプルで、うまく動作しますが、私の問題は、新しいインスタンスを開いた後、スクリプトで新しいインスタンスでpowershellを続行しないということです。新しいインスタンスはSystem32で実行されます。admin権限でpowershellを再起動し、現在のスクリプトを続行してください
新しいインスタンスだけを示しています。PS C:\windows\system32>
は、第2のインスタンスが起動した後に実行されている最初のインスタンスを閉じることも可能ですか?
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;
}
}