В современных версиях Windows проводник (File Explorer) всегда запускается с минимальными привилегиями. Даже если щелкнуть по исполняемому файлу
C:\Windows\explorer.exe
и запустить его в режиме Run as administrator, повышения привилегий не происходит. В этой статье мы рассмотрим способ запуска проводника Windows в привилегированном режиме с правами администратора.
Как запустить Проводник от имени администратора?
Чтобы запустить процесс проводника Windows с повышенными привилегиями, сначала нужно завершить непривилегированный процесс explorer.exe.
- Откройте
taskmgr.exe
, перейдите на вкладку Details, найдите и завершите процессexplorer.exe
(End task); - Затем в Task Manager выберите -> File -> Run New Task -> explorer.exe /nouaccheck (обязательно включите опцию Create this task with administrative privileges);
- Это запусит процесс проводника с правами администратора. Как в этом убедиться?
- Щелкните заголовку в списке процессов на вкладке Details и выберите Select Columns;
- Включите опцию Elevated;
- Теперь видно, что процесс explorer.exe запущен в привилегированном режиме (
Elevated=Yes
).
Также вы можете запустить процесс explorer.exe с правами администратор из консоли PowerShell (обязательно запустите powershell.exe с правами администратора):
taskkill /f /FI "USERNAME eq $env:UserName"/im explorer.exe
Запустите привилегированный процесс explorer.exe:
c:\windows\explorer.exe /nouaccheck
Новый процесс explorer унаследует повышенный маркер доступа, с которыми запущена консоль powershell.exe.
Для быстрого запуска File Explorer с правами администратора можете создать следующий BAT файл на рабочем столе:
taskkill /f /FI "USERNAME eq %USERNAME%" /im explorer.exe
start c:\windows\explorer.exe /nouaccheck
В билде Windows 11 23H2 были внедрены изменения касательно запуска explorer.exe с правами администратора, которые описал Вадим Стеркин в своем блоге. В этом билде Windows контролирует запуск проводника с токеном администратора и прибивает запущенный процесс, а вместо него запускает новый с обычными правами.
Чтобы отключить такое поведение, нужно изменить параметр реестра AutoRestartShell:
$path = 'HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'
New-ItemProperty -Path $path -Name AutoRestartShell -Type Dword -Value 0 -Force | Out-Null
Теперь, при запуске следующей команды в первый раз, Windows все еще стреляет elevated процесс:
taskkill /f /FI "USERNAME eq $env:UserName" /im explorer.exe ; c:\windows\explorer.exe /nouaccheck
Но при повторном запуске, привилегированный explorer.exe останется запущенным.👌
После окончания работы разрешите перзапуск оболочки проводника:
New-ItemProperty -Path $path -Name AutoRestartShell -Type Dword -Value 1 -Force | Out-Null
taskkill /f /FI "USERNAME eq $env:UserName" /im explorer.exe
У вас не разрешений на доступ к этой папке в Windows
Рассмотрим частый сценарий, при котором процесс Проводника, запущенный с правами администратора, может быть особенно удобен.
При работе с проводником Windows (File Explorer) под учетной записью, которая добавлена в группу локальных администраторов (или даже под встроенным администратором Windows), часто приходится открывать системные каталоги, профили других пользователей или редактировать защищенные системные файлы. При попытке открыть такой каталог или файл, появляется предупреждающее окно UAC о необходимости предоставить доступ и повысить привилегии.
Например, попробуйте в проводнике открыть системный каталог C:\Windows\System32\Config. Должно появится окно User Account Control, сообщающее о том, что у вас доступа к каталогу нет:
You don’t currently have permission to access this folder. Click Continue to permanently get access to this folder.
При наличии у вашей учетной записи права администратора вы можете получить через повышение привилегий UAC, нажав кнопку Continue.
Когда вы нажимаете Continue, UAC временно повышает привилегии вашего процесса explorer.exe и предоставляет вашей учетной записи NTFS права для доступа к данному каталогу (Full Control).
Известные проблемы такого подхода:
После выполнения такой операции в NTFS разрешениях на папку явно добавляется ваша учетная запись. Хотя все, что вы хотели – просмотреть содержимое каталога, а не менять его ACL! В случае если это хост Windows Server с несколькими администраторами, тогда ACL каталога будет постоянно увеличиваться. Тогда каждый из них при доступе к папке внесет строку доступа для своей учетки и ACL каталога будет постоянно расти.
\\msk-fs01\shared\
). В этом случае при доступе к каталогу не нужно повышать привилегии, соответственно, не происходит изменение NTFS разрешений.При активной работе с системными файлами или общими папками такое выскакивающее уведомление UAC начинает раздражать. Чтобы не отключать UAC полностью, вы можете временно запустить File Explorer от имени администратора .
Когда вы закончите работу с защищенными папками, обязательно перезапустите explorer.exe в обычном режиме.
Данный трюк с запуском процесса проводника Windows с повышенными правами работает как в Windows Server 2016/2019/2022, так и во всех билдах Windows 10/11.
CreateExplorerShellUnelevatedTask
.
Может, на сервере такое и работает, но в клиентской ОС — нет. Там нужно иначе: Завещание мистера Гейтса.
На практике это редко нужно. На первой картинке же написано, что одобрение запроса дает постоянный доступ к папке.
Вадим, вы правы на клиентах Windows 8.1 / Windows 10 этот фокус не работает.
Возможно на персональной однопользовательской системе это и не нужно. Но на серверах, на мой взгляд, так удобнее. Да и NTFS разрешения на папку не утяжеляются.
Вадим: Я считаю не очень корректным ваше решение с директорией C:\Windows\System32\Config
По моему мнению более корректно было бы сделать так:
1 шаг Изменить владельца директории Config
2 шаг Изменить разрешения безопасности для директории Config
3 шаг Изменить владельца директории Config (вернув значение по умолчанию т.е владелец Система)
Я не претендую на истину в последней инстанции а лишь высказал свое ,возможно субъективное мнение (imho:🤔 )
PS Трюк с запуском проводника Windows c привилегиями TurstInstaller НЕ УДАЕТЬСЯ в Windows 10 Pro build 1941
да проводник запускается но только максимум с правами администратор , попытки запуска с помощью сторонних утилит типа AdvancedRun тоже к успеху не привели.🤔😯
Спасибо, помогло мне зайти в теневую копию. А то копия как бы есть, но при нажатии открыть — нету доступа. Хотя пользователь входит в локальные администраторы, а у группы есть все разрешения
А раздавать доступа на каждую шаровую папку себе или любому другому админу лично — не по феншую
На серверах это очень нужно! На всех директориях по умолчанию выставляется «пользователи домена» на чтение и все это inherited от корня. Скажем вы хотите дать шару, выделить конкретных пользователей в NTFS, рестриктить на уровне smb не удобно, намного надежнее и правильнее убрать группу users, оставить систему\лок админов и искомую группу кому нужен доступ, и представим себе что эта папка еще и в DFS участвует. Что тогда? несмотря на то что твоя учетка находится в лок админах, без явного повышения прав — доступ к директории ты не получишь, а если нажмешь «ок» — система пропишет тебя явно, а так как это дфс, и внутри может быть десятки тысяч файлов, служба начнет реплицировать все это между всеми нодами…. не очень это все хорошо
Все верно.
Как обходной трюк — можно управлять NTFS разрешениями на папки через UNC путь (\\server1\share1\). В этом случае при доступе к каталогу не нужно повышать полномочия, соотвественно не происходит изменение разрешений.
Кажется это перестало работать и на серверах (WS2016)
function Start-ExplorerElevated {
$systeminfo = Get-CimInstance -ClassName Win32_OperatingSystem
if ($systeminfo.Caption -match "2016"){
taskkill /f /FI "USERNAME eq $env:UserName"/im explorer.exe
c:\windows\explorer.exe /nouaccheck
Write-Host "Host 2016"
}
elseif ($systeminfo.Caption -match "2012"){
taskkill /f /FI "USERNAME eq $env:UserName"/im explorer.exe
Start-Process explorer.exe
Write-Host "Host 2012"
}
else{
Write-Host "Another Host"
}
}
Start-ExplorerElevated
.SYNOPSIS
Предоставление повышенных привилегий для процесса Explorer
.DESCRIPTION
Происходит проверка версии ОС через WMI (Get-CimInstance) для WS2012r2 и WS2016.
При нахождении соответствия запускаем поиск процессов Explorer от учетной записи PS сессии ($env:UserName) и останавливаем их.
Далее запускам Explorer с повышенными правами.
Благодарю! Метод действительно рабочий.
Запуск explorer с параметром explorer.exe /nouaccheck работает не только в Windows Server, но и в десктопной Windows 10
Давно пользуюсь total commander который сразу и запускаю с полными правами
На XP это не срабатывает, а параметр /nouaccheck вообще не распознаётся.
В XP это работало по-другому
runas /user:ComputerName\AdminName "C:\WINDOWS\explorer.exe /separate"
И не забывать об этом «побочном эффекте»
“Грабли” Microsoft или “засада” с командой SUBST в новейших Windows 10 и 2016
https://winitpro.ru/index.php/2018/03/16/grabli-microsoft-ili-zasada-s-komandoj-subst-v-novejshix-windows-10-i-2016/