A co, jeśli literki dysków się skończą?

Nie wiem jak dużo macie podłączonych dysków sieciowych na stałe i jak często goszczą u Was pamięci przenośne. Przyznam szczerze, że u mnie nie ma tego dużo – 1 dysk, na którym robi się kopia zapasowa, jeden dysk sieciowy służący typowo jako domowy storage i od czasu do czasu do 3 dysków. Do tego kilka partycji na moich dwóch dyskach w komputerze. Efekt? Nawet nie zbliżyłem się do wykorzystania wszystkich liter. W czasie noworocznym pojawiła się chęć sprawdzenia tego, a efektem realizacji dzielę się wpisem.

Na początek trzeba skądś zdobyć dodatkowe mapowania dysków i tu sposobów jest bardzo dużo – można zmapować całą hierarchię dysku sieciowego pod osobne litery, albo podłączać wszystko co ma się w zasięgu ręki i jeszcze pożyczyć od znajomych. Ja poszedłem mniej wyrafinowaną drogą – podzieliłem swój dysk przenośny na znacząco mniejsze fragmenty.

Z racji tego, że użyłem dysku ze starego laptopa, miałem mniej do roboty. Tak wyglądała lista woluminów z użyciem programu diskpart:

Literek już tutaj jest sporo, ale jak sprawdzić, które są wolne? Popełniłem w tym celu krótki skrypt, który zamieszczam poniżej:

$assigned_letters = New-Object System.Collections.ArrayList
$letters = "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "Q", "P", "R", "S", "T", "U", "W", "X", "Y", "Z"
$drives = (Get-PSDrive).Name
foreach($drive in $drives)
{
    if($drive -in $letters)
    {
        $assigned_letters.Add($drive) | Out-Null
    }
}

$free_letters = $letters | Where-Object { $_ -notin $assigned_letters }

U mnie tylko tyle liter można przypisać:

Co daje nam wciąż 14 liter do zagospodarowania. Podzieliłem więc swój dysk na 16 dodatkowych części, na tym etapie mam przydzielone wszystkie możliwe litery dostępne na moim komputerze, sypnęło dużo nowych woluminów. Teraz wiekopomna chwila, przejdźmy do zarządzania dyskami i spróbujmy przypisać kolejną (ale jaką?) literę dla nowo tworzonego woluminu.

Zgodnie z przewidywaniami, nie da się wyczarować nowej litery, ale to nie jest koniec świata, można zainstalować wolumin gdzieś na systemie plików, albo nie nadawać mu litery. Nie ma kryzysu ani krachu, po prostu nie ma dostępnej pewnej opcji w systemie. Nic się nie stało.

Ale co się stanie, jeśli wszystkie litery będą zajęte, a podłączymy inny dysk przenośny? Ponownie nic specjalnego – Windows 10 nie uraczy nas nawet komunikatem, że brak jest dostępnych liter – dysk nigdzie się nie pojawi. Przypisanie litery trzeba zrobić ręcznie z poziomu diskpart’a albo z przystawki „Zarządzanie dyskami”.

Miały być fajerwerki, a tu klops!

Marcin Kuchczyński

Wielki fan automatyzowania wszystkiego, co trzeba wykonać więcej niż 2 razy. Cierpliwie rozwijający się w kierunku rozwiązań chmurowych i raczkujący w sferze sztucznej inteligencji. W IT od 2016 roku.

2 komentarze

  1. Grzegorz pisze:

    Na domowym komputerze to nie jest problem, ale jak masz serwer plików w sieci, a do tego stosujesz „podwójne” nazewnictwo – litera dla dysku fizycznego plus inna litera dla udostępnionego udziału tego dysku w sieci, to dość szybko zaczyna się robić duży problem.

  2. Co powiesz na oneliner?
    [char[]](65..90) | Where-Object {$_ -notin (Get-PSDrive).Name}

Leave a Reply