Могу ли я получить доступ к диску, используя идентификатор тома вместо буквы диска в Windows? Это может быть очень полезно для внешних накопителей.
Могу ли я получить доступ к диску, используя идентификатор тома вместо буквы диска в Windows? Это может быть очень полезно для внешних накопителей.
Ответы:
Вы можете использовать mountvol
в командной строке, чтобы получить идентификатор тома, к которому вы хотите получить доступ.
Эти идентификаторы могут быть использованы для открытия окна проводника, независимо от буквы диска
Чтобы создать ярлык на диске, создайте новый командный файл с таким содержимым:
start \\?\Volume{1b3b1146-4076-11e1-84aa-806e6f6e6963}\
:-|
@"%ProgramFiles%\TrueCrypt\TrueCrypt.exe" /v \\?\Volume{4033aabd-1234-5678-a1234567890}\ /lr /c n /q
В PowerShell используйте Get-Volume
прокрутку Format-List
так:
get-volume | fl
даст вам все, что вам нужно, например, этот SYSTEM RESERVED
том на одной из моих машин:
ObjectId : {1}\\ACER-M3900\root/Microsoft/Windows/Storage/Providers_v2\WSP_Volume.ObjectId="{5b16a307-de54-11e7-8aeb-806e6f6e6963}:VO:\\?\Volume{b41b0670-0000-0000-00e8-0e8004000000}\"
PassThroughClass :
PassThroughIds :
PassThroughNamespace :
PassThroughServer :
UniqueId : \\?\Volume{b41b0670-0000-0000-00e8-0e8004000000}\
AllocationUnitSize : 4096
DedupMode : NotAvailable
DriveLetter :
DriveType : Fixed
FileSystem : NTFS
FileSystemLabel : SYSTEM RESERVED
FileSystemType : NTFS
HealthStatus : Healthy
OperationalStatus : OK
Path : \\?\Volume{b41b0670-0000-0000-00e8-0e8004000000}\
Size : 105058304
SizeRemaining : 33992704
PSComputerName :
Я предпочитаю использовать абсолютные буквы дисков для флешек. Есть адекватные задания для почти любого, если у вас есть 20 или более флешек.
В Windows 7 используйте Windows для форматирования и назначения метки диска или, если диск уже имеет метку, используйте командную строку «Метка (буква диска), чтобы присвоить ей метку по вашему выбору.
Затем перейдите в панель управления, система и безопасность, инструменты администрирования, управление компьютером, управление дисками, чтобы выбрать диск с меткой, которую вы создали, щелкнув правой кнопкой мыши на диске, выберите изменить букву диска и пути и назначить том определенной букве диска. Он всегда будет подключаться к той букве диска, если она доступна.
Я пометил диски, которые содержали живые данные, и маркировка никак не повлияла на существующие данные. Кажется, это работает так же, как и на дискетах в старые добрые времена.
Вы можете получить доступ к диску, используя его метку в PS следующим образом:
ls -l (Get-Volume | ? FileSystemLabel -eq "Barry Allen drive").Path
Это сокращено, используйте полный формат в скрипте для лучшей читаемости - см. Ниже
GPT использует фиксированные идентификаторы для специальных разделов. Мы можем использовать их для написания переносимых скриптов, для доступа к томам Recovery или System на любом компьютере, не назначая ему буквы:
Объем системы:
ls -l (Get-Partition | ? GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}").AccessPaths[0]
Объем восстановления:
ls -l (Get-Partition | ? GptType -eq "{de94bba4-06d1-4d40-a16a-bfd50179d6ac}").AccessPaths[0] -Force
cd "$((Get-Partition | ? GptType -eq "{de94bba4-06d1-4d40-a16a-bfd50179d6ac}").AccessPaths[0])Recovery"
MSR: в UEFI есть (должен быть) также раздел MSR, но вы не можете получить к нему доступ, так как у него нет ни тома, ни файловой системы:
error:ls -l ((Get-Partition | ? GptType -eq "{e3c9e316-0b5c-4db8-817d-f92df00215ae}").AccessPaths[0]) -Force
Три предостережения:
Get-Volume не выведет список скрытых томов, если он не работает с повышенными правами, Get-Partition выведет список их без повышенных прав, но в любом случае вы не сможете получить к ним дальнейший доступ.
При использовании Get-ChildItem (ls) путь к устройству должен передаваться с использованием аргумента -LiteralPath (-l). Это не из-за '?' особый персонаж. -Path просто не работает с Device Path, даже если '?' сбежал.
Невозможно вставить CD в корень пути к устройству. Но можно записать CD в свою папку.
Всегда используйте полный формат в скрипте для лучшей читаемости
ls -l ((Get-Partition | ? GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}").AccessPaths[0])
это сокращение от:
Get-ChildItem -LiteralPath ((Get-Partition | Where-Object { $_.GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}" }).AccessPaths[0])
ls
является псевдонимом Get-ChildItem
-l
сокращен -LiteralPath
? *attribute* -eq "*value*"
является сокращенной конструкции ? { $_.*attribute* -eq "*value*" }
?
является псевдонимом Where-Object
-Force
используется для просмотра скрытых файлов на томе восстановления
Использование Get-Partition и Get-Volume:
Get-Partition предоставляет параметр GptType, но не Label, Get-Volume дает Label, но не GptType