Posso acessar uma unidade de disco usando o ID do volume em vez de uma letra de unidade no Windows? Pode ser muito útil para unidades externas.
31
Posso acessar uma unidade de disco usando o ID do volume em vez de uma letra de unidade no Windows? Pode ser muito útil para unidades externas.
Respostas:
Você pode usar
mountvol
no prompt de comando para obter o ID do volume que deseja acessar.Esses IDs podem ser usados para abrir uma janela do explorer, independente da letra da unidade
Para criar um atalho para a unidade, crie um novo arquivo em lotes com este conteúdo:
fonte
:-|
@"%ProgramFiles%\TrueCrypt\TrueCrypt.exe" /v \\?\Volume{4033aabd-1234-5678-a1234567890}\ /lr /c n /q
No PowerShell , use
Get-Volume
canalizado daFormat-List
seguinte maneira:lhe dará tudo o que você precisa, por exemplo, este
SYSTEM RESERVED
volume em uma das minhas máquinas:fonte
Prefiro usar letras absolutas para unidades flash. Existem atribuições adequadas para praticamente qualquer pessoa, a menos que você tenha 20 ou mais unidades flash.
No Windows 7, use o Windows para formatar e atribuir uma etiqueta de unidade ou, se a unidade já tiver uma etiqueta, use a linha de comando "Etiqueta (letra da unidade) para fornecer uma etiqueta de sua escolha.
Em seguida, vá ao painel de controle, sistema e segurança, ferramentas administrativas, gerenciamento de computadores e gerenciamento de disco para selecionar a unidade com a etiqueta criada clicando com o botão direito do mouse na unidade, selecione alterar letra e caminhos da unidade e atribua o volume a uma letra de unidade específica. Ele sempre será montado nessa letra de unidade, se estiver disponível.
Eu rotulei unidades que continham dados ativos e a rotulação não afetou os dados existentes de forma alguma. Parece funcionar exatamente como nos disquetes nos velhos tempos
fonte
Usando uma etiqueta
Você pode acessar uma unidade de disco usando seu Label no PS desta forma:
ls -l (Get-Volume | ? FileSystemLabel -eq "Barry Allen drive").Path
Foi reduzido, use o formato completo em um script para melhor legibilidade - veja abaixo
Usando GptType
O GPT usa IDs fixos para partições especiais. Podemos usá-los para escrever scripts portáteis, para acessar volumes de Recuperação ou Sistema em qualquer computador sem atribuir uma carta a ele:
Volume do sistema:
ls -l (Get-Partition | ? GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}").AccessPaths[0]
Volume de recuperação:
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: no UEFI, existe (deveria haver) também partição MSR, mas você não pode acessá-lo, pois ele não possui um volume nem um sistema de arquivos:
error:
ls -l ((Get-Partition | ? GptType -eq "{e3c9e316-0b5c-4db8-817d-f92df00215ae}").AccessPaths[0]) -Force
Três advertências:
O Get-Volume não listará volumes ocultos, a menos que esteja executando elevado, o Get-Partition os listará não elevados, mas você não poderá acessá-los ainda mais, mesmo assim.
Com o dispositivo Get-ChildItem (ls), o caminho deve ser passado usando o argumento -LiteralPath (-l). Isso não é por causa de '?' caractere especial. -Path simplesmente não funciona com o caminho do dispositivo, mesmo que '?' é escapado.
Não é possível fazer o CD na raiz do caminho do dispositivo. Mas é possível colocar o CD em sua pasta.
Explicação e formato completo das instruções acima
Sempre use o formato completo em um script para melhor legibilidade
ls -l ((Get-Partition | ? GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}").AccessPaths[0])
é a abreviação de:
Get-ChildItem -LiteralPath ((Get-Partition | Where-Object { $_.GptType -eq "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}" }).AccessPaths[0])
ls
é um alias deGet-ChildItem
-l
é encurtado-LiteralPath
? *attribute* -eq "*value*"
é construção encurtada de? { $_.*attribute* -eq "*value*" }
?
é um alias deWhere-Object
-Force
é usado para ver arquivos ocultos no volume de recuperaçãoUso de Get-Partition e Get-Volume:
Get-Partition fornece o parâmetro GptType, mas não Label, Get-Volume fornece Label, mas não GptType
fonte