Tags: Storage, PowerShell, Dateisystem
Wenn man die Größe von Partitionen nachträglich anpassen möchte, dann dient meistens die Datenträgerverwaltung dieser Aufgabe. Auf einer Installation von Server Core oder generell bei der Remote-Verwaltung empfiehlt sich dagegen PowerShell als Alternative. Zuständig ist dort das Cmdlet Resize-Partition.
Die Notwendigkeit zur Anpassung von Partitionsgrößen ergibt sich häufig dann, wenn man virtuelle Laufwerke zu klein dimensioniert hat. Diese lassen sich dann zwar sehr einfach vergrößern, aber anschließend muss man im Gast-OS noch die Partitionen nachziehen, um den gewonnenen Speicherplatz nutzen zu können.
GUI-Tool mit Schwächen bei der Remote-Verwaltung
Während die Datenträgerverwaltung für das Management lokaler Laufwerke recht komfortabel ist, erfordert sie bei der Remote-Verwaltung einige Voraussetzungen auf dem Zielrechner. Notorisch ist dabei zudem die Fehlermeldung, wonach der RPC-Server nicht erreichbar sei.
Nutzt man hingegen die PowerShell-Cmdlets für das Management von Disks oder Partitionen, dann reicht es, wenn man eine CIM-Session zum entfernten Rechner aufbaut und diese dann den Kommandos als Parameter mitgibt:
$cs = New-CimSession -Credential contoso\admin -ComputerName WS2016
Get-Partition -CimSession $cs -DriveLetter D
Auf diese Weise würde man einige Informationen über die Partition erhalten, die auf dem Remote-PC den Buchstaben D: hat, darunter die aktuelle Größe. Nicht erfahren wird man auf diesem Weg jedoch, wie viel Platz auf der Partition belegt bzw. noch frei ist. Das wird man aber oft wissen wollen, bevor man die Größe einer Partition ändert.
Freien Speicherplatz anzeigen
Während man diese Information unter dem alten Kommandointerpreter bei jedem Aufruf von dir bekommt, schweigt sich das PowerShell-Gegenstück Get-ChildItem darüber aus. Daher muss man zu diesem Zweck den Befehl Get-PSDrive bemühen. Die Eingabe von
Get-PSDrive D
liefert die Daten zum Laufwerk D.
Für den Abruf der Infos von einem Remote-Rechner ist dieses Kommando nicht vorgesehen, daher muss man es in ein Invoke-Command packen:
$ps = New-PSSession -ComputerName WS2016 -Credential contoso\admin
Invoke-Command -Session $ps -ScriptBlock{Get-PSDrive -PSProvider FileSystem}
Dieses Beispiel würde die Informationen zu allen Laufwerken zurückgeben.
Zulässige neue Werte ermitteln
Möchte man nun herausfinden, wie weit man die Partition verkleinern oder vergrößern kann, dann ruft man dafür
Get-PartitionSupportedSize -DriveLetter D
auf. Dieses Cmdlet unterstützt wie Get-Partition den Parameter CimSession und könnte daher auch remote aufgerufen werden, das Gleiche gilt für die folgenden Beispiele.
Den minimal und maximal zulässigen Wert erhält man beim obigen Befehl in Byte, den man bei Bedarf mittels
Get-PartitionSupportedSize -DriveLetter D |
select @{Name="Maximum";Expression={$_.SizeMax/1GB}}
umrechnen kann.
Größe der Partition ändern
Im letzten Schritt orientiert man sich an dieser Ober- und Untergrenze, um die neue Größe der Partition festzulegen:
Resize-Partition -DriveLetter D -Size 200GB
Damit würde die neue Größe auf 200GB geändert, wenn sich diese innerhalb des zulässigen Rahmens bewegt.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
Weitere Links