В этой заметке скрипт определял права пользователя и, если пользователь не обладал правами администратора, то происходил автоматический вызов этого же скрипта, но уже с попыткой повысить уровень привилегий. Т.е. появлялся запрос UAC для подтверждения данного действия. После того, как было получено подтверждение UAC, открывалось новое окно PowerShell, но при этом старое окно не закрывалось. Я решил добавить код, который бы закрывал это окно.
В принципе сам код очень простой и практически не требует комментариев — нам нужно просто убить процесс с текущим PID. Для получения ID текущего процесса в PowerShell имеется автоматическая переменная: $PID. Поэтому в нашем случае нужно лишь немного изменить старый код:
if (-not $IsAdmin)
{
Write-Output "The script is NOT running as Administrator, restarting PowerShell as Administrator..."
# ...... SKIPPED CODE ....
Stop-Process -Id $PID
}
DenTNT недавно публиковал (посмотреть все)
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024
- VSCode: Найти и удалить элементы xml - 29.10.2024
- WordPress: Ошибка в плагине WpDiscuz - 08.10.2024