web-dev-qa-db-ja.com

Windowsですべてのシェルの場所のリストを取得する方法

Windowsには、Windowsのすべてのエクスプローラーシェルの場所(コンピューター、UsersFilesなど)を含むコマンド(できれば)またはレジストリキーがありますか。

3
Anonymous

すべてではないにしても、さまざまなHKLM\...\FolderDescriptionsエントリの名前のほとんどがShell:コマンドで機能します。それらをPowerShellで一覧表示できます。

$FD = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions'
(gp (gci $FD).PSPath).Name
PS C:\...\keith>$FD = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions'
>> (gp (gci $FD).PSPath).Name
>>
AccountPictures
Roaming Tiles
Common Programs
PublicAccountPictures
GameTasks
UserProfiles
MyComputerFolder
SearchHistoryFolder
Local Pictures
SyncSetupFolder
DpapiKeys
Retail Demo
Favorites
My Video
SearchHomeFolder
RecordedTVLibrary
System
Libraries
ThisDeviceFolder
AppsFolder
MusicLibrary
CommonVideo
OneDriveDocuments
SyncResultsFolder
LocalizedResourcesDir
Cookies
CameraRollLibrary
Original Images
Recorded Calls
3D Objects
CommonMusic
OneDrivePictures
My Pictures
Cache
Local Videos
Downloads
SavedPictures
CommonDownloads
AppData
SyncCenterFolder
PublicLibraries
VideosLibrary
My Music
ConflictFolder
SavedGames
InternetFolder
HomeGroupFolder
Quick Launch
SystemCertificates
AppDataProgramData
Contacts
UserProgramFiles
Device Metadata Store
Profile
Start Menu
Common AppData
ProgramFilesCommonX64
PhotoAlbums
ProgramFilesX64
ConnectionsFolder
Administrative Tools
ThisPCDesktopFolder
OneDriveCameraRoll
PrintersFolder
AppMods
DocumentsLibrary
AppDataDocuments
ProgramFilesX86
AppDataFavorites
Searches
Local Downloads
SearchTemplatesFolder
Common Startup
ControlPanelFolder
SendTo
ResourceDir
ProgramFiles
CredentialManager
PrintHood
MAPIFolder
HomeGroupCurrentUserFolder
User Pinned
CD Burning
Local Music
UsersLibrariesFolder
AppUpdatesFolder
Application Shortcuts
Common Start Menu
Common Start Menu Places
LocalAppDataLow
OneDrive
Templates
Programs
PicturesLibrary
Roamed Tile Images
Camera Roll
Recent
AppDataDesktop
Desktop
CommonPictures
RecycleBinFolder
Screenshots
CryptoKeys
Common Templates
Startup
ImplicitAppShortcuts
UserProgramFilesCommon
Links
OEM Links
OneDriveMusic
Common Desktop
NetHood
Ringtones
Common Administrative Tools
NetworkPlacesFolder
SystemX86
History
Development Files
AddNewProgramsFolder
Playlists
ProgramFilesCommonX86
PublicGameTasks
ChangeRemoveProgramsFolder
Public
SavedPicturesLibrary
CommonRingtones
Common Documents
Captures
CSCFolder
Local AppData
Windows
UsersFilesFolder
Local Documents
ProgramFilesCommon
Fonts
Personal

次に、Shell:コマンドでShell:::{<GUID>}の形式で機能するCLSIDがいくつかあります。 ShellFolderサブキーを持つHKCR\CLSIDのサブキーは疑わしい可能性が高いため、次のものを見つけることができます。

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | out-null
gci 'HKCR:\CLSID' | ? { $_.GetSubkeyNames() -contains 'ShellFolder' } | select PSChildName, @{N = 'Default'; E = {(gp $_.PSPath).'(Default)'}}
PS C:\...\keith>gci 'HKCR:\CLSID' | ? { $_.GetSubkeyNames() -contains 'ShellFolder' } | select PSChildName, @{N = 'Default'; E = {(gp $_.PSPath).'(Default)'}}

PSChildName                            Default
-----------                            -------
{00020D75-0000-0000-C000-000000000046}
{00021400-0000-0000-C000-000000000046} Desktop
{018D5C66-4533-4307-9B53-224DE2ED1FE6} OneDrive
{025A5937-A6BE-4686-A844-36FE4BEC8B6D} Power Options
{031E4825-7B94-4dc3-B131-E946B44C8DD5} UsersLibraries
{04731B67-D933-450a-90E6-4ACD2E9408FE} CLSID_SearchFolder
{05d7b0f4-2121-4eff-bf6b-ed3f69b894d9} Taskbar
{088e3905-0323-4b02-9826-5d99428e115f}
{0AFACED1-E828-11D1-9187-B532F1E9575D} Folder Shortcut
{0c39a5cf-1a7a-40c8-ba74-8900e6df5fcd}
{0CD7A5C0-9F37-11CE-AE65-08002B2E1262} Cabinet Shell Folder
{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}
{0DF44EAA-FF21-4412-828E-260A8728E7F1} Taskbar
{0E5AAE11-A475-4c5b-AB00-C66DE400274E} Shell File System Folder
{11016101-E366-4D22-BC06-4ADA335C892B} IE History and Feeds Shell Data Source for Windows Search
{1206F5F1-0569-412C-8FEC-3204630DFB70} Credential Manager
{15eae92e-f17a-4431-9f28-805e482dafd4} Install New Programs
{17cd9488-1228-4b2f-88ce-4298e93e0966} Set User Defaults
{1bef2128-2f96-4500-ba7c-098dc0049cb2} CLSID_DBFolderBoth
{1CF1260C-4DD0-4ebb-811F-33C572699FDE}
{1D2680C9-0E2A-469d-B787-065558BC7D43} Fusion Cache
{1f3427c8-5c10-4210-aa03-2ee45287d668} User Pinned
{1FA9085F-25A2-489B-85D4-86326EEDCD87} Manage Wireless Networks
{208D2C60-3AEA-1069-A2D7-08002B30309D} Network
{20D04FE0-3AEA-1069-A2D8-08002B30309D} This PC
{21EC2020-3AEA-1069-A2DD-08002B30309D} All Control Panel Items
{2227A280-3AEA-1069-A2DE-08002B30309D} Printers
{22877a6d-37a1-461a-91b0-dbda5aaebc99} Recent Places Folder
...

しかし、これらの多くは、コントロールパネルアイテムのように、別のアイテムの子です。それらのリストを取得する方法は次のとおりです。

$Shell = New-Object -ComObject Shell.application
$DT = $Shell.Namespace(0)

Function Unfold ($oFolder) {
$oFolder.Items() | ?{ ($_.IsFolder -eq $True) -and ($_.Name -notLike 'Fonts') } | ForEach{
UnFold $_.GetFolder
}
$_.GetFolder.Items() | select Name, Path
}

$DT.Items() | ?{($_.IsFolder -eq $True) -and
        ($_.Name -match 'Control Panel')} | % {
            Unfold $_.GetFolder
} | select name, path -unique | Sort Path | Out-Gridview

GridView

4
Keith Miller

私が見た中で最高のものは、 Nirsoft.net のシェルビューメニュー(64ビットおよび32ビット)です。たくさんのエントリーがありますので、準備してください。しかし、このソフトウェアはこれに最適です。

優れているため、Nirsoftツールをいくつか使用しています。

これがシェルビューのスクリーンショットです。 CLSIDフィールドは表示されていませんが、必要なものはここにあります

enter image description here

1
John

あなたが探しているのは IKnownFolder インターフェース(Shell32.dllの一部)です。
これは、これらの特別なフォルダに関する情報を取得するためのすべてのツールを提供します。
Windows SDKには、これを使用する方法の例がいくつかあります。

Windowsのさまざまなバージョン(Vista以降)がこの情報を処理する方法には微妙な違いがありますが、IKnownFoldersインターフェイスはVista以降のすべてのWindowsバージョンでサポートされており、一貫したインターフェイスを提供するため、違いに対処する必要はありません。あなた自身。

0
Tonny