Powershell-Laufwerk mit UNC-Pfad

Ein PSDrive kann man auch auf eine Netzwerkfreigabe verweisen lassen. Der Zugriff funktioniert damit genauso wie ein Netzlaufwerk:

1
new-psdrive -name LWName -psprovider filesystem -root \\Servername\Freigabename

Unter “LWName” ist dieses dann ansprechbar und mit “-Credential” könnten auch Anmeldedaten übergeben werden, falls der angemeldete Benutzer nicht genügend Rechte hat.

Bezeichnung eines Laufwerkes ändern

Bei mehreren Partitionen oder Netzlaufwerken ist es meist sinnvoll, wenn man diesen eindeutige Bezeichnungen gibt. Mit der Powershell ändert man diese Drive Labels wie folgt:

1
2
$Laufwerk = New-Object System.Io.DriveInfo("D")
$Laufwerk.VolumeLabel = "Daten-HD"

Hat man die “PowerShell Community Extensions” installiert, so geht das mit dem Commandlet “Set-VolumeLabel” noch einfacher:

1
Set-VolumeLabel "D:" "Daten-HD"

Freien Speicher eines Laufwerkes anzeigen

Hier habe ich gezeigt wie man Laufwerksinformationen per WMI abfragen kann. Das geht mit der Powershell und den .Net-Klassen aber auch anders:

1
2
$Laufwerk = New-Object System.IO.DriveInfo("E")
$Laufwerk.TotalFreeSpace

Hier wird der freie Speicher des Laufwerkes “E:” angezeigt.

Mehr Informationen:
“System.IO.DriveInfo” bietet noch mehr Informationen zu einem Laufwerk.
Welche? Einfach folgendes eingeben:

1
New-Object System.Io.DriveInfo("E") | Get-Member

Informationen zu lokalen Laufwerken per WMI anzeigen

Per WMI suchen wir uns alle lokalen Laufwerke (Typ 2) heraus und lassen uns den Laufwerkbuchstaben, die Bezeichnung, Gesamtgröße und den freien Platz von jedem Datenträger ausgeben.

1
Get-Wmiobject Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3} | Select-Object DeviceID, VolumeName, Size, FreeSpace

Andere Möglichkeit:

1
Get-Wmiobject Win32_LogicalDisk -Filter "DriveType = 3" -computer localhost | Select-Object DeviceID, VolumeName, Size, FreeSpace

Netzlaufwerk umbenennen

Benennt ein vorhandenes Netzlaufwerk anhand des Laufwerkbuchstabens um.

1
2
3
4
5
6
7
8
9
10
11
' Variablen für Laufwerkbuchstabe und späteren Namen
StrLaufwerk = "X"
StrBezeichnung = "Transferlaufwerk"
 
' Objekt referenzieren
Set ObjShell = CreateObject("Shell.Application")
 
ObjShell.Namespace(StrLaufwerk & ":\").Self.Name = StrBezeichnung
 
' Objekt leeren
Set ObjShell = Nothing