เข้าถึงดิสก์ไดรฟ์โดยใช้รหัสประจำตัวแทนตัวอักษรไดรฟ์ใน Windows


31

ฉันสามารถเข้าถึงดิสก์ไดรฟ์โดยใช้ volume ID แทนอักษรระบุไดรฟ์ใน Windows ได้หรือไม่ มันอาจมีประโยชน์มากสำหรับไดรฟ์ภายนอก


สำหรับพาร์ติชันที่ไม่มีอักษรระบุไดรฟ์ ID ของไดรฟ์ข้อมูลเป็นวิธีเดียวที่จะเข้าถึงได้ คุณไม่สามารถกำหนดอักษรชื่อไดรฟ์ให้กับพาร์ติชันใหม่ได้ถ้าคุณใช้ตัวอักษรภาษาอังกฤษ 26 ตัวผ่านพาร์ติชั่นที่มีอยู่แล้ว ดังนั้นในกรณีดังกล่าวพวกเขาจะไม่เพียงมีประโยชน์ แต่พวกเขาจะเป็นวิธีเดียวที่จะเข้าถึงพวกเขา
RBT

คำตอบ:


42

คุณสามารถใช้mountvolในพรอมต์คำสั่งเพื่อรับ ID ของไดรฟ์ข้อมูลที่คุณต้องการเข้าถึง

ป้อนคำอธิบายรูปภาพที่นี่

ID นี้สามารถใช้เพื่อเปิดหน้าต่าง explorer โดยอิสระจากอักษรระบุไดรฟ์

ป้อนคำอธิบายรูปภาพที่นี่

ในการสร้างทางลัดไปยังไดรฟ์ให้สร้างไฟล์แบตช์ใหม่ที่มีเนื้อหานี้:

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

ใช่มันเป็นสิ่งที่ฉันค้นหามานาน! ตอนนี้ฉันแค่ต้องเรียกใช้คำสั่ง mountvol เพื่อรับ ID ปริมาณทั้งหมด จากนั้นใช้เส้นทางเช่น "\\? \ Volume {}" ฉันสามารถเข้าถึงไดรฟ์ด้วย ID ที่จำเป็น (ถ้ามี) ขอขอบคุณ!
olvin

1
ใช่วิธีนี้ใช้ได้กับ Explorer และในขณะที่คัดลอกไฟล์ด้วยบรรทัดคำสั่ง แต่โชคร้ายที่ TrueCrypt ไม่ยอมรับพา ธ ดังกล่าวไปยัง keyfile = (
olvin

น่าเสียดายที่มันใช้งานได้เฉพาะเมื่อคุณมี NetBIOS และ RPC Locator ทำงานอยู่ดังนั้นสิ่งนี้จะไม่ทำงานหากคุณมี Windows ที่ชุบแข็ง นอกจากนี้คุณอาจต้องให้บริการและไดรเวอร์ที่เกี่ยวข้องกับเครือข่ายหลายอย่าง (Workstation, Computer Browser, Server, TCP / IP NetBIOS Helper, NetBT, DHCP, DNS และอื่น ๆ ) นี่เป็นสิ่งที่โง่เพราะสิ่งเหล่านี้คือ ปริมาณท้องถิ่น :-|
Synetech

1
ทรูคริปต์สนับสนุนสิ่งนี้เพื่อการติดตั้งไดรฟ์ที่ถูกต้องเชื่อถือได้:@"%ProgramFiles%\TrueCrypt\TrueCrypt.exe" /v \\?\Volume{4033aabd-1234-5678-a1234567890}\ /lr /c n /q
Frank Nocke

@Synetech: ฉันไม่สามารถทำซ้ำได้ คำตอบที่โพสต์นั้นใช้ได้ดีสำหรับฉันแม้แต่กับ NetBIOS และ RPC Locator และทุกอย่างที่เกี่ยวข้องกับเครือข่ายฉันก็สามารถหาปิดใช้งานได้ (บางทีคุณเข้าใจผิดเกี่ยวกับเส้นทางเคอร์เนลสำหรับเส้นทาง UNC หรือว่าเป็นปัญหาของ Windows รุ่นก่อนหน้าเท่านั้น?)
Harry Johnston

9

ใน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       :

หากต้องการดูไดรฟ์ข้อมูลที่ซ่อน / ระบบคุณต้องเรียกใช้ระดับสูงดูCaveatsในคำตอบของฉัน
papo

4

ฉันชอบใช้ตัวอักษรไดรฟ์แบบสมบูรณ์สำหรับแฟลชไดรฟ์ มีการมอบหมายอย่างเพียงพอสำหรับทุกคนยกเว้นคุณมีแฟลชไดรฟ์ 20 ตัวขึ้นไป

ใน Windows 7 ใช้ Windows เพื่อจัดรูปแบบและกำหนดป้ายกำกับไดรฟ์หรือถ้าไดรฟ์มีป้ายกำกับอยู่แล้วให้ใช้บรรทัดคำสั่ง "ป้ายกำกับ (อักษรชื่อไดรฟ์) เพื่อให้ป้ายกำกับที่คุณเลือก

จากนั้นไปที่แผงควบคุมระบบและความปลอดภัยเครื่องมือการดูแลระบบการจัดการคอมพิวเตอร์การจัดการดิสก์เพื่อเลือกไดรฟ์ที่มีป้ายกำกับที่คุณสร้างขึ้นโดยการคลิกขวาที่ไดรฟ์เลือกเปลี่ยนอักษรชื่อไดรฟ์และเส้นทางและกำหนดระดับเสียง มันจะติดกับตัวอักษรไดรฟ์นั้นเสมอหากมี

ฉันติดป้ายกำกับไดรฟ์ที่มีข้อมูลสดและการติดฉลากไม่ได้ส่งผลกระทบต่อข้อมูลที่มีอยู่ แต่อย่างใด ดูเหมือนว่ามันจะทำงานเหมือนที่ทำกับฟล้อปปี้ในสมัยก่อน


0

ใช้ป้ายกำกับ

คุณสามารถเข้าถึงดิสก์ไดรฟ์โดยใช้ Label ใน PS ดังนี้:

ls -l (Get-Volume | ? FileSystemLabel -eq "Barry Allen drive").Path

สั้นลงใช้รูปแบบเต็มรูปแบบในสคริปต์เพื่อให้อ่านง่ายขึ้น - ดูด้านล่าง

ใช้ GptType

GPT ใช้รหัสคงที่สำหรับพาร์ติชันพิเศษ เราสามารถใช้สิ่งเหล่านี้เพื่อเขียนสคริปต์แบบพกพาเพื่อเข้าถึง Recovery หรือ System volume บนคอมพิวเตอร์เครื่องใดก็ได้โดยไม่ต้องกำหนดตัวอักษร:

ระดับเสียงของระบบ:
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 แม้ว่าจะเป็น '?' ถูกหลบหนี

ไม่สามารถซีดีลงในรูทของ Device Path ได้ แต่เป็นไปได้ที่จะใส่ซีดีลงในโฟลเดอร์



คำอธิบายและรูปแบบเต็มของข้อความข้างต้น

ใช้รูปแบบเต็มรูปแบบเสมอในสคริปต์เพื่อให้อ่านง่ายขึ้น

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.