Доступ к диску с использованием идентификатора тома вместо буквы диска в Windows

Могу ли я получить доступ к диску, используя идентификатор тома вместо буквы диска в Windows? Это может быть очень полезно для внешних накопителей.

4 ответа

Решение

Ты можешь использовать mountvol в командной строке, чтобы получить идентификатор тома, к которому вы хотите получить доступ.

введите описание здесь

Эти идентификаторы могут быть использованы для открытия окна проводника, независимо от буквы диска

введите описание здесь

Чтобы создать ярлык на диске, создайте новый командный файл с таким содержимым:

start \\?\Volume{1b3b1146-4076-11e1-84aa-806e6f6e6963}\

В 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

Это сокращено, используйте полный формат в скрипте для лучшей читаемости - см. Ниже

Использование 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, но вы не можете получить к нему доступ, так как у него нет ни тома, ни файловой системы:
ошибка: 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 используется для просмотра скрытых файлов на томе Recovery

Использование Get-Partition и Get-Volume:
Get-Partition предоставляет параметр GptType, но не Label, Get-Volume дает Label, но не GptType

Другие вопросы по тегам