В этой заметке скрипт определял права пользователя и, если пользователь не обладал правами администратора, то происходил автоматический вызов этого же скрипта, но уже с попыткой повысить уровень привилегий. Т.е. появлялся запрос 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 недавно публиковал (посмотреть все)
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024