Ich muss Skript schreiben, um alle Laufwerke im System durchlaufen und dann etwas mit diesen Laufwerken zu tun. Der Code muss PS-Versionen 2.0 - 4.0 unterstützen. Problem ist, dass, wenn ich die Liste der Laufwerke abrufe, es mit verschiedenen Typen zwischen PS Version 2.0 und 4.0 kommt, wie unten gezeigt.Verschiedene Datentypen für die gleiche Abfrage zwischen Power Shell-Versionen
$PSVersionTable
$drives = Get-WmiObject -class Win32_LogicalDisk -Filter "DriveType=3" | select Name
'Type = ' + $drives.GetType().FullName
Foreach($drive in $drives)
{
#some logic
}
Hier wird ausgegeben, in PS-Version 2,0
Name Wert
---- ----- CLRVersion 2.0.50727.5485
Build 6.1.7601.17514
PSVersion 2.0
WSManStackVersion 2.0
PSKompatibel Versionen {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
Typ ist System.Management.Automation.PSCustomObject
Dies ist, was ich in PS-Version 3.0 und höher erhalten.
Name Wert
---- ----- PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.42000
Build 6.3.9600.16394
PSCompatibleVersions {1.0, 2.0 , 3,0, 4,0}
PSRemotingProtocolVersion 2.2
Typ ist System.Object []
Wie kann ich PS-Version 2.0 mache auch ein Objekt [] so zurück, dass mein Code konsistent sein könnte