Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

String-Variable Verarbeitung / Partitionierung unter Windows 10

$
0
0

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



Viewing all articles
Browse latest Browse all 2314

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>