Могу ли я получить доступ к диску, используя идентификатор тома вместо буквы диска в Windows? Это может быть очень полезно для внешних накопителей.
31
Могу ли я получить доступ к диску, используя идентификатор тома вместо буквы диска в Windows? Это может быть очень полезно для внешних накопителей.
Ответы:
Вы можете использовать
mountvol
в командной строке, чтобы получить идентификатор тома, к которому вы хотите получить доступ.Эти идентификаторы могут быть использованы для открытия окна проводника, независимо от буквы диска
Чтобы создать ярлык на диске, создайте новый командный файл с таким содержимым:
источник
:-|
@"%ProgramFiles%\TrueCrypt\TrueCrypt.exe" /v \\?\Volume{4033aabd-1234-5678-a1234567890}\ /lr /c n /q
В PowerShell используйте
Get-Volume
прокруткуFormat-List
так:даст вам все, что вам нужно, например, этот
SYSTEM RESERVED
том на одной из моих машин:источник
Я предпочитаю использовать абсолютные буквы дисков для флешек. Есть адекватные задания для почти любого, если у вас есть 20 или более флешек.
В Windows 7 используйте Windows для форматирования и назначения метки диска или, если диск уже имеет метку, используйте командную строку «Метка (буква диска), чтобы присвоить ей метку по вашему выбору.
Затем перейдите в панель управления, система и безопасность, инструменты администрирования, управление компьютером, управление дисками, чтобы выбрать диск с меткой, которую вы создали, щелкнув правой кнопкой мыши на диске, выберите изменить букву диска и пути и назначить том определенной букве диска. Он всегда будет подключаться к той букве диска, если она доступна.
Я пометил диски, которые содержали живые данные, и маркировка никак не повлияла на существующие данные. Кажется, это работает так же, как и на дискетах в старые добрые времена.
источник
Использование метки
Вы можете получить доступ к диску, используя его метку в PS следующим образом:
ls -l (Get-Volume | ? FileSystemLabel -eq "Barry Allen drive").Path
Это сокращено, используйте полный формат в скрипте для лучшей читаемости - см. Ниже
Использование GptType
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
источник