Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Probleme mit Powershell-Code

Frage Entwicklung Batch & Shell

Mitglied: TuXHunt3R

TuXHunt3R (Level 3) - Jetzt verbinden

17.07.2007, aktualisiert 13.09.2007, 5258 Aufrufe, 4 Kommentare

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!


01.
 
02.
# ########################################################################################################################## 
03.
# Funktionen: 
04.
# ----------- 
05.
 
06.
 
07.
# Funktionen für die Kosmetik 
08.
function titel  
09.
10.
          clear-host 
11.
          write-host "PCINFO.PS1" 
12.
          write-host "==========" 
13.
          write-host " " 
14.
          write-host "Aktueller PC: $PCName" 
15.
          write-host "------------------------------------------------------------------------" -foregroundcolor cyan 
16.
          write-host " " 
17.
18.
 
19.
function Fusszeile 
20.
21.
     write-host " " 
22.
     Read-host "Druecke Enter fuer die Rueckkehr ins Hauptmenue"      
23.
24.
 
25.
 
26.
# ########################################################################################################################## 
27.
 
28.
 
29.
clear-host 
30.
 
31.
# Eingabe des Nodenames 
32.
write-host "PCINFO.PS1" 
33.
write-host "==========" 
34.
write-host " " 
35.
write-host "Willkommen bei PCInfo!" 
36.
write-host "Dieses Script zeigt diverse Informationen ueber einen PC oder Server an!" 
37.
$PCName = Read-Host "Gib bitte den Namen des PCs ein, der abgefragt werden soll " 
38.
 
39.
 
40.
# Wird solange wiederholt, bis ExitVariable = true ist 
41.
Do { 
42.
     clear-host 
43.
     write-host "PCINFO.PS1" 
44.
     write-host "==========" 
45.
     write-host " " 
46.
     write-host "Dieses Script zeigt diverse Informationen ueber einen PC oder Server an!" 
47.
     write-host " " 
48.
     write-host "Aktueller PC / Server: $PCName" 
49.
     write-host "------------------------------------------------------------------------" -foregroundcolor cyan 
50.
     write-host " " 
51.
     write-host "Bitte waehle eine Funktion aus:" 
52.
     write-host " " 
53.
     write-host "(A) Allgemeine Informationen ueber den PC / Server anzeigen" 
54.
     write-host "(B) Software-Informationen anzeigen" 
55.
     write-host "(C) Installierte Patches/Hotfixes anzeigen" 
56.
     write-host "(D) Laufende Prozesse auflisten" 
57.
     write-host "(E) Dienste auflisten" 
58.
     write-host "(F) Diskinformationen anzeigen" 
59.
     write-host " " 
60.
     write-host "(Y) Abzufragenden PC / Server wechseln" 
61.
     write-host "(Z) Exit" 
62.
     write-host " " 
63.
     $auswahl = Read-Host "Deine Auswahl " 
64.
     switch ($auswahl) { 
65.
          "A" { 
66.
               titel 
67.
               write-host "Allgemeine Informationen ueber den PC / Server"  
68.
               write-host "=============================================="  
69.
               write-host " " 
70.
               write-host "Computerinformationen :" 
71.
               write-host " " 
72.
               get-wmiobject -class win32_computersystem -computername $PCName 
73.
               write-host " " 
74.
               write-host " " 
75.
               write-host "Betriebsystem-Informationen :" 
76.
               write-host " " 
77.
               get-wmiobject -class win32_operatingsystem -computername $PCName 
78.
               write-host " " 
79.
               write-host " " 
80.
               write-host "BIOS-Informationen :" 
81.
               write-host " " 
82.
               get-wmiobject -class win32_bios -computername $PCName 
83.
               write-host " " 
84.
               write-host " " 
85.
               write-host "CPU-Informationen :" 
86.
               write-host " " 
87.
               get-wmiobject -class win32_processor -computername $PCName | select-object -property DeviceID, Manufacturer, Name, Description, CPUStatus, CurrentClockSpeed, MaxClockSpeed, SocketDesignation, AdressWith, DataWidth, l2cachesize, ExtClock 
88.
               write-host " " 
89.
               write-host " " 
90.
               write-host "Informationen ueber den/die Grafikchip(s) :" 
91.
               write-host " " 
92.
               get-wmiobject -class win32_VideoController -computername $PCName | select-object -property DeviceID, Description, Status, VideoProcessor, AdapterRAM, CurrentHorizontalResolution, CurrentVerticalResolution, CurrentBitsPerPixel, InstalledDisplayDrivers, DriverVersion, InfFilename, InfSection    
93.
               Fusszeile 
94.
95.
          "B" { 
96.
               titel 
97.
               write-host "Installierte Software :" 
98.
               write-host " " 
99.
               get-wmiobject -class win32_product -computername $PCName | select-object -property Name, Version, Vendor | sort-object -property Name, Vendor, Version 
100.
               Fusszeile 
101.
102.
          "C" { 
103.
               titel 
104.
               write-host "Installierte Patches/Hotfixes :" 
105.
               write-host " " 
106.
               get-wmiobject -class Win32_Quickfixengineering -computername $PCName | select-object -property HotFixID, Description, ServicePackInEffect | sort-object -property HotFixID, Description, ServicePackInEffect 
107.
               Fusszeile 
108.
 
109.
110.
          "D" { 
111.
               titel 
112.
               write-host "Laufende Prozesse auf $PCName :" 
113.
               write-host " " 
114.
               get-wmiobject -class win32_process -computername $PCName | select-object -property processname, path, processid | sort-object -property processname, processid, path 
115.
               Fusszeile 
116.
117.
          "E" { 
118.
               titel 
119.
               write-host "Dienste auf $PCName :" 
120.
               write-host " " 
121.
               get-wmiobject -class win32_service -computername $PCName | select-object -property Name, State | sort-object -property State, Name 
122.
               Fusszeile 
123.
124.
          "F" { 
125.
               titel 
126.
               write-host "Diskinformationen von $PCName" 
127.
               write-host "=================================" 
128.
               write-host " " 
129.
               write-host "Physikalische Informationen :"  
130.
               get-wmiobject -class Win32_Diskdrive -computername $PCName | select-object -property DeviceID, Model, Partitions, Size | sort-object -property deviceid 
131.
               write-host " " 
132.
               # $laufwerke = get-wmiobject -class Win32_LogicalDisk -computer $PCName 
133.
               # write-host " Laufwerk Groesse(MB) Freier Platz(MB)" 
134.
               # ForEach ($laufwerk in $laufwerke) 
135.
               # { 
136.
               # write-host " {0} {1,15:n} {2,15:n}" -f $laufwerk.DeviceID, ($laufwerk.Size/1m), $($laufwerk.freespace/1m) 
137.
               # } 
138.
               Write-host "Fuellstand laeuft noch nicht!" 
139.
               Fusszeile 
140.
141.
          "Y" { 
142.
               $PCName = Read-Host "Gib bitte den Namen des Kuebels ein, der abgefragt werden soll " 
143.
144.
          "Z" { 
145.
               $ExitVariable = "true" 
146.
147.
          default { 
148.
               titel 
149.
               write-host " " 
150.
               write-warning "Falsche Eingabe! Eingabe muss entweder A, B, C, D, E, Y oder Z sein!" 
151.
               Fusszeile 
152.
153.
154.
 
155.
} While ($ExitVariable -ne "true") 
156.
 

Hat jemand eine Idee? Ich bin mit meinem Latein ziemlich am Ende!

Gruss TuXHunT3R
Mitglied: kallewirsch
12.09.2007 um 21:39 Uhr
Hi TuXHunT3R,

hast Du das Problem gelöst bekommen?

Gruß
Kallewirsch
Bitte warten ..
Mitglied: TuXHunt3R
12.09.2007 um 21:44 Uhr
Leider nein, das Problem besteht immer noch. Rein vom Programmcode her müsste das Ding funktionieren, aber es will nicht. Immer noch das gleiche Problem ich wüsste nicht, was ich anders schreiben sollte.

Hast du eine Idee?
Bitte warten ..
Mitglied: kallewirsch
12.09.2007 um 22:41 Uhr
So auf Anhieb habe ich keine Idee, vielleicht die write-error-funktion mal ausprobieren.

Ich werde morgen den Code mal ausprobieren und schauen wie es reagiert.

Grüße
Kallewirsch
Bitte warten ..
Mitglied: kallewirsch
13.09.2007 um 10:17 Uhr
Moin TuxHunT3R,

habe Dein Script gerade ausprobiert, bis auf einen Fehler im Menüpunkt B auf W2K3-Systemen läuft das problemlos. Ich habe es direkt aus der Powershell gestartet, ebenso aus der IDE heraus, nur Fehler im MEnü B, sonst nix.

An welcher Stelle bekommst Du den Fehler?
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Probleme mit Powershell skript und REF (1)

Frage von Malli88 zum Thema Batch & Shell ...

Batch & Shell
Powershell - In Textdatei suchen und ersetzen

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell Domain Join (2)

Frage von Patrick-IT zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...