Hallo zusammen,
bin gerade dabei ein Skript zur Inventarisierung von PC und den angeschlossenen Monitoren.
$MonitorInfo = Get-WmiObject WmiMonitorId -Namespace root\wmi $MonitorObj = [PSCUstomObject]@{ #Auslesen der Seriennummer(n) Seriennummer_Monitor = ($MonitorInfo.SerialNumberID|ForEach-Object {[char]$_}) -join "" #Auslesen der Product ID(s) Produktname_Monitor = ($MonitorInfo.UserFriendlyName | ForEach-Object {[char]$_}) -join "" #Auslesen des Herstellers Hersteller_Monitor = ($MonitorInfo.ManufacturerName|ForEach-Object {[char]$_}) -join "" #Auslesen des Produktionsjahres YearOfManufacture = $MonitorInfo.YearOfManufacture #Auslesen des Angeschlossenen Computers Computername_Monitor = $MonitorInfo.PSComputerName
Das Problem ist jetzt, dass das Ergebnis von Seriennummer, Produktname und Hersteller mit vielen Leerzeichen zwischen den Ergebnissen stehen (Bsp.: XXXXXXXXXX XXXXXXXXXX).
Bei jedem der drei ist es eine unterschiedliche Zahl an Leerzeichen die ich gerne durch ein Komma ersetzten will.
Am liebsten wäre mir wenn man die einzelnen Werte in wie in einem Array abrufen könnte mit $MonitorObj.Seriennummer_Monitor[1]. Ist dies möglich bzw. gibt es bessere Möglichkeiten?
Außerdem würde ich diese Ergebnisse auf einem anderen Rechner gerne weiter verarbeiten. Hab es schon mit New-PSSession bzw. Enter-PSSession versucht aber dies hat nicht so funktioniert wie ich es mir vorgestellt habe.
Ist es überhaupt möglich sich Variablen zu „teilen“?
Eine dritte und letzte Frage noch. Dabei geht es um Resize-Partition.
[int] $disk_counter = 0 $Disk = Get-Disk $Disk | Where-Object OperationalStatus -eq "Online" | ForEach-Object {$disk_counter++} #Festplattengröße wird bestimmt $Disk_Size = $Disk | ForEach{$_.FriendlyName,[math]::truncate($_.size / 1GB)} Resize-Partition -DriveLetter c -Size ($Disk_Size[1]-3)GB
Resize-Partition wird ja normalerweise so angegeben:
Resize-Partition -DriveLetter c -Size 29GB
Somit bleibt Partition C: 29 GB groß und der Rest wird frei. Da ich es aber variabel setzten möchte für unterschiedliche Szenarien wird eine Variable benötigt. Das GB bereitet mir Sorgen, da Size normal in UInt64 angegeben wird und somit die Variable auf von diesem Typ sein muss. Bei festlegen der Variable wie zb so:
$test = ($disk_size[1]-3)GB
Wird natürlich ein Fehler ausgegeben. Hatte einer das Problem auch schon mal und kann dabei behilflilch sein?
Ist es in Ordnung mehrere Fragen zusammenzufassen oder ist es besser für jede einen neuen Thread zu eröffnen?
Vielen Dank schonmal für eure Antworten.
Viele Grüße,
Dominik