Probleme mit Powershell-Code
Unerklärlicher Fehler in Powershell-Code
Guten Tag
Bei dem untenstehenden Powershell-Script habe ich folgendes Problem: Sobald ich zurück ins Hauptmenü komme und einen zweiten Menupunkt auswählen will, wird die Ausgabe des zweiten Menupunkts fehlerhaft, d.h. die Ausgabe bleibt entweder leer oder wird nicht so formatiert, wie ich es mit "select-object" oder "sort-object" angegeben habe.
Es funktioniert immer nur die erste Abfrage. Wenn ich eine zweite Abfrage machen will, muss ich das Script zuerst beenden und neu starten.
Ein Beispiel:
Ich starte das Script, gebe den PC-Namen ein und komme ins Hauptmenü. Dort wähle ich z.B. den Menupunkt A, welcher diverse WMI-Abfragen tätigt (CPU, OS, Graka, etc). Danach springe ich ins Hauptmenü zurück. Dort wähle ich z.B. Menüpunkt D (Listet alle laufenden Prozesse auf). Nun kommt entweder eine leere Ausgabe oder die Ausgabe wird nicht korrekt formatiert.
Probiert es am besten selbst mal aus, dann seht ihr, was ich meine!
Hat jemand eine Idee? Ich bin mit meinem Latein ziemlich am Ende!
Gruss TuXHunT3R
Guten Tag
Bei dem untenstehenden Powershell-Script habe ich folgendes Problem: Sobald ich zurück ins Hauptmenü komme und einen zweiten Menupunkt auswählen will, wird die Ausgabe des zweiten Menupunkts fehlerhaft, d.h. die Ausgabe bleibt entweder leer oder wird nicht so formatiert, wie ich es mit "select-object" oder "sort-object" angegeben habe.
Es funktioniert immer nur die erste Abfrage. Wenn ich eine zweite Abfrage machen will, muss ich das Script zuerst beenden und neu starten.
Ein Beispiel:
Ich starte das Script, gebe den PC-Namen ein und komme ins Hauptmenü. Dort wähle ich z.B. den Menupunkt A, welcher diverse WMI-Abfragen tätigt (CPU, OS, Graka, etc). Danach springe ich ins Hauptmenü zurück. Dort wähle ich z.B. Menüpunkt D (Listet alle laufenden Prozesse auf). Nun kommt entweder eine leere Ausgabe oder die Ausgabe wird nicht korrekt formatiert.
Probiert es am besten selbst mal aus, dann seht ihr, was ich meine!
# ##########################################################################################################################
# Funktionen:
# -----------
# Funktionen für die Kosmetik
function titel
{
clear-host
write-host "PCINFO.PS1"
write-host "=========="
write-host " "
write-host "Aktueller PC: $PCName"
write-host "------------------------------------------------------------------------" -foregroundcolor cyan
write-host " "
}
function Fusszeile
{
write-host " "
Read-host "Druecke Enter fuer die Rueckkehr ins Hauptmenue"
}
# ##########################################################################################################################
clear-host
# Eingabe des Nodenames
write-host "PCINFO.PS1"
write-host "=========="
write-host " "
write-host "Willkommen bei PCInfo!"
write-host "Dieses Script zeigt diverse Informationen ueber einen PC oder Server an!"
$PCName = Read-Host "Gib bitte den Namen des PCs ein, der abgefragt werden soll "
# Wird solange wiederholt, bis ExitVariable = true ist
Do {
clear-host
write-host "PCINFO.PS1"
write-host "=========="
write-host " "
write-host "Dieses Script zeigt diverse Informationen ueber einen PC oder Server an!"
write-host " "
write-host "Aktueller PC / Server: $PCName"
write-host "------------------------------------------------------------------------" -foregroundcolor cyan
write-host " "
write-host "Bitte waehle eine Funktion aus:"
write-host " "
write-host "(A) Allgemeine Informationen ueber den PC / Server anzeigen"
write-host "(B) Software-Informationen anzeigen"
write-host "(C) Installierte Patches/Hotfixes anzeigen"
write-host "(D) Laufende Prozesse auflisten"
write-host "(E) Dienste auflisten"
write-host "(F) Diskinformationen anzeigen"
write-host " "
write-host "(Y) Abzufragenden PC / Server wechseln"
write-host "(Z) Exit"
write-host " "
$auswahl = Read-Host "Deine Auswahl "
switch ($auswahl) {
"A" {
titel
write-host "Allgemeine Informationen ueber den PC / Server"
write-host "=============================================="
write-host " "
write-host "Computerinformationen :"
write-host " "
get-wmiobject -class win32_computersystem -computername $PCName
write-host " "
write-host " "
write-host "Betriebsystem-Informationen :"
write-host " "
get-wmiobject -class win32_operatingsystem -computername $PCName
write-host " "
write-host " "
write-host "BIOS-Informationen :"
write-host " "
get-wmiobject -class win32_bios -computername $PCName
write-host " "
write-host " "
write-host "CPU-Informationen :"
write-host " "
get-wmiobject -class win32_processor -computername $PCName | select-object -property DeviceID, Manufacturer, Name, Description, CPUStatus, CurrentClockSpeed, MaxClockSpeed, SocketDesignation, AdressWith, DataWidth, l2cachesize, ExtClock
write-host " "
write-host " "
write-host "Informationen ueber den/die Grafikchip(s) :"
write-host " "
get-wmiobject -class win32_VideoController -computername $PCName | select-object -property DeviceID, Description, Status, VideoProcessor, AdapterRAM, CurrentHorizontalResolution, CurrentVerticalResolution, CurrentBitsPerPixel, InstalledDisplayDrivers, DriverVersion, InfFilename, InfSection
Fusszeile
}
"B" {
titel
write-host "Installierte Software :"
write-host " "
get-wmiobject -class win32_product -computername $PCName | select-object -property Name, Version, Vendor | sort-object -property Name, Vendor, Version
Fusszeile
}
"C" {
titel
write-host "Installierte Patches/Hotfixes :"
write-host " "
get-wmiobject -class Win32_Quickfixengineering -computername $PCName | select-object -property HotFixID, Description, ServicePackInEffect | sort-object -property HotFixID, Description, ServicePackInEffect
Fusszeile
}
"D" {
titel
write-host "Laufende Prozesse auf $PCName :"
write-host " "
get-wmiobject -class win32_process -computername $PCName | select-object -property processname, path, processid | sort-object -property processname, processid, path
Fusszeile
}
"E" {
titel
write-host "Dienste auf $PCName :"
write-host " "
get-wmiobject -class win32_service -computername $PCName | select-object -property Name, State | sort-object -property State, Name
Fusszeile
}
"F" {
titel
write-host "Diskinformationen von $PCName"
write-host "================================="
write-host " "
write-host "Physikalische Informationen :"
get-wmiobject -class Win32_Diskdrive -computername $PCName | select-object -property DeviceID, Model, Partitions, Size | sort-object -property deviceid
write-host " "
# $laufwerke = get-wmiobject -class Win32_LogicalDisk -computer $PCName
# write-host " Laufwerk Groesse(MB) Freier Platz(MB)"
# ForEach ($laufwerk in $laufwerke)
# {
# write-host " {0} {1,15:n} {2,15:n}" -f $laufwerk.DeviceID, ($laufwerk.Size/1m), $($laufwerk.freespace/1m)
# }
Write-host "Fuellstand laeuft noch nicht!"
Fusszeile
}
"Y" {
$PCName = Read-Host "Gib bitte den Namen des Kuebels ein, der abgefragt werden soll "
}
"Z" {
$ExitVariable = "true"
}
default {
titel
write-host " "
write-warning "Falsche Eingabe! Eingabe muss entweder A, B, C, D, E, Y oder Z sein!"
Fusszeile
}
}
} While ($ExitVariable -ne "true")
Hat jemand eine Idee? Ich bin mit meinem Latein ziemlich am Ende!
Gruss TuXHunT3R
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 64019
Url: https://administrator.de/forum/probleme-mit-powershell-code-64019.html
Ausgedruckt am: 16.02.2025 um 21:02 Uhr
4 Kommentare
Neuester Kommentar