Как открыть скрытые системные папки с Shell командами Windows
Многие скрытые системные папки в Windows идентифицируются в реестре Windows вместе с ключом идентификатора класса (CLSID), именами специальных папок и папками на Вашем ПК. Использование этих специальных имен папок вместе с Shell командами означает, что даже скрытые папки, глубоко погруженные в Вашу файловую систему, всегда находятся всего в нескольких нажатиях клавиш.
Что такое CLSID ключи?
Специфическим папкам (а также некоторым программным компонентам) предоставляется CLSID, который позволяет Windows и другим программам легко идентифицировать их, не зная их точного имени. CLSID ключи, общие имена и полные пути к этим папкам сохраняются как записи в реестре Windows. Это похоже на то, как каждый компьютер в Вашей сети имеет регулярное имя, которое Вам легко запомнить — при использовании имени компьютера Windows просматривает IP-адрес компьютера от Вашего имени.
Точно так же программы могут использовать общее имя для папки в структуре Windows и полагаться на фактическое местоположение, которое хранится как CLSID ключ в реестре. Shell объекты, с которыми мы будем работать, перечислены в Реестре в следующем месте:
Каждый подраздел в длинном списке внутри ключа FolderDescriptions представляет собой специальную папку. Имя каждого ключа — это CLSID этой папки. Нажмите на любой из них, и Вы увидите несколько важных значений, прикрепленных к этому ключу, такие как Name (общее имя папки) и RelativePath (фактический путь, где находится папка).
Как выполнить Shell команду
Итак, что Вы можете сделать с этой информацией? Вы можете создать специальную команду с именем Shell, за которой следует общее имя папки, чтобы открыть эту папку. Вы можете отправить Shell команду из диалогового окна «Выполнить» (Windows + R), адресной строки Windows File Explorer или даже адресной строки Internet Explorer. Просто введите команду, используя следующий формат:
Вот пример. Скажем, Вы хотите открыть папку, содержащую изображения, связанные с Вашей учетной записью Windows. Вместо того, чтобы просматривать папку AppData Вашей учетной записи (кстати, скрытую папку), а затем найти папку со снимками Вашей учетной записи, Вы можете просто запустить окно «Выполнить», написать следующую команду и нажать «Enter»:
Какие имена папок доступны?
Это все очень хорошо, но действительно ли стоит просматривать все записи реестра, чтобы найти имена папок? Может быть да, а может быть и нет. К счастью, для этого у Вас есть мы. Ниже приведен список всех имен папок, которые Вы можете использовать после команды Shell, а также относительные местоположения этих папок.
- shell:AccountPictures – %AppData%\Microsoft\Windows\AccountPictures
- shell:AddNewProgramsFolder – Control Panel\All Control Panel Items\Get Programs
- shell:Administrative Tools – %AppData%\Microsoft\Windows\Start Menu\Programs\Administrative Tools
- shell:AppData – %AppData%
- shell: Application Shortcuts – %LocalAppData%\Microsoft\Windows\Application Shortcuts
- shell:AppsFolder – Приложения
- shell:AppUpdatesFolder – Установленные обновления
- shell:Cache – %LocalAppData%\Microsoft\Windows\INetCache
- shell:Camera Roll – %UserProfile%\Pictures\Camera Roll
- shell:CD Burning – %LocalAppData%\Microsoft\Windows\Burn\Burn
- shell:ChangeRemoveProgramsFolder – Control Panel\All Control Panel Items\Programs and Features
- shell:Common Administrative Tools – %ProgramData%\Microsoft\Windows\Start Menu\Programs\Administrative Tools
- shell:Common AppData – %ProgramData%
- shell:Common Desktop – %Public%\Desktop
- shell:Common Documents – %Public%\Documents
- shell:CommonDownloads – %Public%\Downloads
- shell:CommonMusic – %Public%\Music
- shell:CommonPictures – %Public%\Pictures
- shell:Common Programs – %ProgramData%\Microsoft\Windows\Start Menu\Programs
- shell:CommonRingtones – %ProgramData%\Microsoft\Windows\Ringtones
- shell:Common Start Menu – %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
- shell:Common Startup – %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
- shell:Common Templates – %ProgramData%\Microsoft\Windows\Templates
- shell:CommonVideo – %Public%\Videos
- shell:ConflictFolder – Control Panel\All Control Panel Items\Sync Center\Conflicts
- shell:ConnectionsFolder – Control Panel\All Control Panel Items\Network Connections
- shell:Contacts – %UserProfile%\Contacts
- shell:ControlPanelFolder – Control Panel\All Control Panel Items
- shell:Cookies – %LocalAppData%\Microsoft\Windows\INetCookies
- shell:Cookies\Low – %LocalAppData%\Microsoft\Windows\INetCookies\Low
- shell:CredentialManager – %AppData%\Microsoft\Credentials
- shell:CryptoKeys – %AppData%\Microsoft\Crypto
- shell:desktop – Desktop
- shell:device Metadata Store – %ProgramData%\Microsoft\Windows\DeviceMetadataStore
- shell:documentsLibrary – Libraries\Documents
- shell:downloads – %UserProfile%\Downloads
- shell:dpapiKeys – %AppData%\Microsoft\Protect
- shell:Favorites – %UserProfile%\Favorites
- shell:Fonts – %WinDir%\Fonts
- shell:Games – Games
- shell:GameTasks – %LocalAppData%\Microsoft\Windows\GameExplorer
- shell:History – %LocalAppData%\Microsoft\Windows\History
- shell:HomeGroupCurrentUserFolder – Homegroup\(user-name)
- shell:HomeGroupFolder – Homegroup
- shell:ImplicitAppShortcuts – %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\ImplicitAppShortcuts
- shell:InternetFolder – Internet Explorer
- shell:Libraries – Libraries
- shell:Links – %UserProfile%\Links
- shell:Local AppData – %LocalAppData%
- shell:LocalAppDataLow – %UserProfile%\AppData\LocalLow
- shell:MusicLibrary – Libraries\Music
- shell:MyComputerFolder – This PC
- shell:My Music – %UserProfile%\Music
- shell:My Pictures – %UserProfile%\Pictures
- shell:My Video – %UserProfile%\Videos
- shell:NetHood – %AppData%\Microsoft\Windows\Network Shortcuts
- shell:NetworkPlacesFolder – Network
- shell:OneDrive – OneDrive
- shell:OneDriveCameraRoll – %UserProfile%\OneDrive\Pictures\Camera Roll
- shell:OneDriveDocuments – %UserProfile%\OneDrive\Documents
- shell:OneDriveMusic – %UserProfile%\OneDrive\Music
- shell:OneDrivePictures – %UserProfile%\OneDrive\Pictures
- shell:Personal – %UserProfile%\Documents
- shell:PicturesLibrary – Libraries\Pictures
- shell:PrintersFolder – All Control Panel Items\Printers
- shell:PrintHood – %AppData%\Microsoft\Windows\Printer Shortcuts
- shell:Profile – %UserProfile%
- shell:ProgramFiles – %ProgramFiles%
- shell:ProgramFilesCommon – %ProgramFiles%\Common Files
- shell:ProgramFilesCommonX64 – %ProgramFiles%\Common Files (64-bit Windows только)
- shell:ProgramFilesCommonX86 – %ProgramFiles(x86)%\Common Files (64-bit Windows только)
- shell:ProgramFilesX64 – %ProgramFiles% (64-bit Windows только)
- shell:ProgramFilesX86 – %ProgramFiles(x86)% (64-bit Windows только)
- shell:Programs – %AppData%\Microsoft\Windows\Start Menu\Programs
- shell:Public – %Public%
- shell:PublicAccountPictures – %Public%\AccountPictures
- shell:PublicGameTasks – %ProgramData%\Microsoft\Windows\GameExplorer
- shell:PublicLibraries – %Public%\Libraries
- shell:Quick Launch – %AppData%\Microsoft\Internet Explorer\Quick Launch
- shell:Recent – %AppData%\Microsoft\Windows\Recent
- shell:RecordedTVLibrary – Libraries\Recorded TV
- shell:RecycleBinFolder – Recycle Bin
- shell:ResourceDir – %WinDir%\Resources
- shell:Ringtones – %ProgramData%\Microsoft\Windows\Ringtones
- shell:Roamed Tile Images – %LocalAppData%\Microsoft\Windows\RoamedTileImages
- shell:Roaming Tiles – %AppData%\Microsoft\Windows\RoamingTiles
- shell:SavedGames – %UserProfile%\Saved Games
- shell:Screenshots – %UserProfile%\Pictures\Screenshots
- shell:Searches – %UserProfile%\Searches
- shell:SearchHistoryFolder – %LocalAppData%\Microsoft\Windows\ConnectedSearch\History
- shell:SearchHomeFolder – search-ms:
- shell:SearchTemplatesFolder – %LocalAppData%\Microsoft\Windows\ConnectedSearch\Templates
- shell:SendTo – %AppData%\Microsoft\Windows\SendTo
- shell:Start Menu – %AppData%\Microsoft\Windows\Start Menu
- shell:StartMenuAllPrograms – StartMenuAllPrograms
- shell:Startup – %AppData%\Microsoft\Windows\Start Menu\Programs\Startup
- shell:SyncCenterFolder – Control Panel\All Control Panel Items\Sync Center
- shell:SyncResultsFolder – Control Panel\All Control Panel Items\Sync Center\Sync Results
- shell:SyncSetupFolder – Control Panel\All Control Panel Items\Sync Center\Sync Setup
- shell:System – %WinDir%\System32
- shell:SystemCertificates – %AppData%\Microsoft\SystemCertificates
- shell:SystemX86 – %WinDir%\SysWOW64
- shell:Templates – %AppData%\Microsoft\Windows\Templates
- shell:ThisPCDesktopFolder – Desktop
- shell:UsersFilesFolder – %UserProfile%
- shell:User Pinned – %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned
- shell:UserProfiles – %HomeDrive%\Users
- shell:UserProgramFiles – %LocalAppData%\Programs
- shell:UserProgramFilesCommon – %LocalAppData%\Programs\Common
- shell:UsersLibrariesFolder – Libraries
- shell:VideosLibrary – Libraries\Videos
- shell:Windows – %WinDir%
Конечно, как только Вы найдете эти папки, Вы можете легко добавить их в закладки, чтобы в будущем Вы могли перейти к ним еще быстрее.
how to hide cmd shell window?
on start up i have a bat file run routine things for me
however, the black console pops up and stays open until everything is finished.
anyway to hide it and run it in background ? so it shouldn’t appear minimized or system tray.
6 Answers 6
You can use a VBS script to achieve this. Either write all your code as VBS, or call your batch file like this:
Create a shortcut to the file. On the new shortcut: Right click -> Properties. Go to the Shortcut tab, and choose «Run: Minimized.» (This is assuming you’re on WinXP).
This link should help you as helped me. I used the second solution that uses a program named quiet.exe
To use, just call quiet.exe program params_if_has .
My use example: quiet.exe php script.php
You can’t really do that but if you are using the scheduler to run the batch file you can select «don’t interact with desktop» when creating the job.
I once had a little program which could hide windows based on their title. So my startup batch first set a unique title with title and then called the other program to hide the window with said title. Worked fine but involves a little programming.
If you don’t want to go that way, then you should use the Task Scheduler as tr4656 noted.
Try renaming your file to .cmd instead of .bat .
Or, if you’re executing a .exe try:
Note: When using «start» you have to be at a command prompt.
Как запустить PowerShell в скрытом режиме
Иногда может потребоваться запустить скрипт PowerShell в скрытом режиме, незаметно для пользователя. Достичь этого можно различными способами, о некоторых я сегодня расскажу.
Способ первый
Начиная со второй версии PowerShell при запуске можно использовать параметр -WindowStyle со значением Hidden. Это позволяет осуществить запуск в скрытом режиме, без открытия консоли. Предположим, что у меня в папке C:\Temp лежит скрипт hello.ps1, который надо ″по тихому″ выполнить при входе пользователя. Для этого используем следующую команду:
powershell.exe -nologo -noninteractive -windowStyle hidden -command ″C:\Temp\hello.ps1″
Теоретически скрипт должен выполниться в фоне, незаметно для пользователя. Но на практике этот способ работает не всегда, в некоторых случаях во время выполнения скрипта окно PowerShell остается открытым. Поэтому, на всякий случай, рассмотрим еще пару способов запустить PowerShell в скрытом режиме.
Способ второй
Для скрытия окна мы воспользуемся Windows API, точнее функцией ShowWindowAsynс. Первой командой сохраняем сигнатуру C# функции ShowWindowAsync в переменную. Затем с помощью командлета Add-Type добавляем функцию в сеанс в виде статического метода класса. Полученному методу ShowWindowAsync передаем в виде параметров дескриптор окна и цифровое значение, указывающее как должно отображаться окно. Для получения текущего процесса PowerShell используется конструкция Get-Process -Id $pid, дескриптор окна получаем из его свойства MainWindowHandle. В качестве цифрового значения указываем 0 (SW_HIDE), чтобы скрыть окно:
$Signature = @″
[DllImport(«user32.dll»)]public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
″ @
$ShowWindowAsync = Add-Type -MemberDefinition $Signature -Name «Win32ShowWindowAsync» -Namespace Win32Functions -PassThru
$ShowWindowAsync::ShowWindowAsync((Get-Process -Id $pid).MainWindowHandle, 0)
Полученный код добавляем в начало скрипта.
Способ третий
Скрыть запуск PowerShell можно, как ни странно, с помощью VBScript. Для этого создаем vbs-файл следующего содержания:
command = ″powershell.exe -nologo -noninteractive -command C:\Temp\hello.ps1″
set shell = CreateObject(″WScript.Shell″)
shell.Run command,0, false
Цифра 0 в скрипте означает запуск в скрытом виде, false — не ждать окончания выполнения команды.
Теперь для запуска PowerShell скрипта надо запустить этот vbs-файл и он тихо выполнится.
В заключение уточню, что все три способа не могут полностью скрыть запуск скрипта. При запуске все равно видно всплывающее окно. Заметить этот момент сложно, поскольку окно всплывает на доли секунды, но все же можно.