Fehler abfangen im PS Skript

Mitglied: Doskias

Doskias (Level 2) - Jetzt verbinden

19.01.2021 um 09:34 Uhr, 630 Aufrufe, 5 Kommentare

Hallo Schwarmintelligenz :) face-smile

Situation vorweg: Wir haben in unregelmäßigen Abständen ein auftretendes Problem. Dies Problem trifft nicht alle Anwender gleichzeitig und auch nicht immer die gleichen, denn das wäre ja zu einfach. Bei meiner Suche bin ich darauf gekommen, dass das Problem nur auftritt, wenn im Systemlog eine gewisse InstanceID auftritt. Allerdings ist dies nur ein Indiz und keine hinreichende Bedingung. Sprich: Wenn der Fehler auftritt, dann existiert die Meldung im Systemlog, wenn die Meldung aber da ist, dann muss der Fehler nicht zwingend auftreten. Also habe ich mir ein PS-Skript erstellt mit der Idee es bei Bedarf zu starten um die laufenden Rechner zu ermitteln, die in den vergangenen 24 Stunden ebenfalls die InstanceID protokolliert haben. Ausgeführt wird das ganze auf einem DC mit Adminrechten. Hier nun das Skript:

An sich funktioniert das Skript. Es gibt jedoch 4 Dinge die mir in dem Skript zu schaffen machen.

1: Das ganze müsste sich auch ohne invoke-command ermitteln lassen können. Dazu sollte der Befehl
ausreichend sein. Dieser führt jedoch zu der Meldung, dass der Netzwerkpfad zu dem Computer nicht gefunden werden konnte. Es liegt auch nicht an der Variablen, sondern am Rechner. Wenn ich den get-eventlog-Befehl auf meinem Rechner unter den gleichem Benutzer ausführe, dann funktioniert es. Woran liegt das?

2: Wenn ich das Skript in dem Zustand ausführe, dann bekomme ich gelegentlich die Meldung:
Fehler beim Ausführen des InitializeDefaultDrives-Vorgangs für den Anbieter "FileSystem".
Es sind immer die gleichen Rechte. Ich habe noch nicht ganz verstanden welche Einstellung hier ursächlich für die Fehlermeldung ist. ich bekomme die Meldung sowohl auf Windows 8 Rechner als auch auf Windows 10 Rechnern. Auffällig hier ist, dass alle Windows 10 Rechner vom gleichen Image installiert wurden, den gleichen Patchstand haben und die gleichen GPOs erhalten. Die User auf den Rechnern haben alle die gleichen Berechtigungen, keine lokalen Adminrechte. Es trifft nicht alle von dem Image installierten Rechnern. Meine ergoogelten Recherchen brachten keine Abhilfe. Das Skript funktioniert dann allerdings dennoch. Wie kann ich die Ursache dafür beheben?

3: Wenn das Ereignis schonmal aufgetreten ist, es aber länger als 24 Stunden her ist, dann ist mein $Ergebnis einfach leer. Damit kann ich gut leben. Wenn das Ereignis allerdings noch nie aufgetreten ist, dann bekomme ich die Meldung, dass keine Übereinstimmung gefunden wurde. Ansicht kein Fehler aber eine Meldung, die mich an der Stelle nicht interessiert. Wie kann ich diese Meldung unterdrücken?

4: Ich habe versucht mit Write-Error die unter Punkt 2 genannten Meldung separat zu protokollieren. Das funktioniert allerdings nicht. Es wird immer nur die unter Punkt 3 erzeugte "Keine Übereinstimmung"-Nachricht Protokolliert.

Gruß
Doskias
Mitglied: 147323
147323 (Level 1)
19.01.2021, aktualisiert um 10:54 Uhr
Statt dem reinen "Namen" würde ich hier immer den DNSHostNamen oder IP-Adresse für den Zugriff benutzen.
Fehler beim Ausführen des InitializeDefaultDrives-Vorgangs für den Anbieter "FileSystem".
Stichwort "Powershell Profil laden verhindern".
Wie kann ich diese Meldung unterdrücken?
Stichwort Try{}Catch{}Finally
Bitte warten ..
Mitglied: LeeX01
LÖSUNG 19.01.2021 um 10:55 Uhr
Dafür ist es nötig dass der Service Remote Registry auf den Zielsystemen gestartet ist. Hast du das sichergestellt?
Bitte warten ..
Mitglied: Doskias
19.01.2021 um 11:19 Uhr
Und das bezieht sich jetzt auf welchen Punkt genau?
Bitte warten ..
Mitglied: LeeX01
19.01.2021 um 11:27 Uhr
Zitat von @Doskias:

Und das bezieht sich jetzt auf welchen Punkt genau?

Meinst du mich?

Auf den Punkt 1
Bitte warten ..
Mitglied: Doskias
19.01.2021 um 15:02 Uhr
Zitat von @LeeX01:
Dafür ist es nötig dass der Service Remote Registry auf den Zielsystemen gestartet ist. Hast du das sichergestellt?

So nachdem ich jetzt einen Konflikt mit zwei sich widersprechenden GPOs gefunden habe, die sich genau um den Dienst drehen habe ich das jetzt Sichergestellt. Es funktioniert nun. Allerdings bin ich doch etwas verwundert. Es sind 87 Rechner in der betroffenen OU
benötigt für die ersten 29 Rechner genau 10 Minuten, während
das ganze in 5 Minuten.

Denke auf Grund des zeitlichen Aspektes bleibe ich beim invoke-Command.

Punkt 1 ist damit dennoch erledigt.

Punkt 2 was @jokari schreibt habe ich allerdings nicht ganz verstanden. Ich habe die Einstellungen noch einmal geprüft und nur 12 der 87 Rechner haben das "Problem". Die Execution-Policyist dort identisch. zwei der 87 Rechner sind neu. Einer von Freitag, einer von Montag. Der von Freitag hat das Problem, der vom Montag nicht. Da Sie wie gesagt vom gleich Image erstellt wurden und bis auf den Namen identisch konfiguriert sind, erschließt sich mir die Ursache nicht.

Punkt 3: habe ich ebenfalls mit try - catch - finally erfolglos versucht. Habe jetzt einfach den Parameter -errorAction SilentContinue benutzt. Für dieses zweck geht es. Werde mir try - catch -finally in einer ruhigen Minute noch einmal genau ansehen.

Punkt 4 hat sich mit dem silentContinue eigentlich erledigt. Zur Protokollierung der Fehler prüfe ich nach jedem Durchgang $error[0] ob dort "Netzwerkpfad" enthalten ist, werte dies aus und schreibe es in eine Datei.

Punkte 1,3 und 4 sind damit erledigt. Punkt 2 ist noch offen, deswegen markiere ich die Frage noch nicht als gelöst.
Bitte warten ..
Heiß diskutierte Inhalte
Linux
Installation Grammm Server
smeclntVor 1 TagFrageLinux13 Kommentare

Hallo zusammen, meine Linux Kenntnisse sind sehr rudimentär trotzdem suche ich eigentlich ständig nach einer Alternative zu MS Exchange. Bis jetzt gab es nichts ...

Switche und Hubs
Probleme im Netzwerk Switche teilweise nicht erreichbar
hukimanVor 9 StundenFrageSwitche und Hubs29 Kommentare

Guten Morgen, seit Monaten haben wir hier immer wieder Probleme mit dem Netzwerk, das Problem konnte ich leider aber noch immer nicht finden. Es ...

Erkennung und -Abwehr
Einer Malware auf der Spur. Benötige Sherlock Holmes!
streamVor 21 StundenFrageErkennung und -Abwehr7 Kommentare

Guten Abend Wenn ich meine Windows-10-Kiste starte, so gibt mir mein Router eine Meldung aus, dass eine bestimmte IP-Adresse wegen Bösartigkeit geblockt wurde. Auf ...

Windows 10
Windows 10 interes Mikro ohne Funktion
TPH125Vor 1 TagFrageWindows 1011 Kommentare

Hallo zusammen, Ich verzweifelt bald. Besitze einen Medion Akoya MD 97110. Habe Windows 10 installiert, seit dem funktioniert das inigrierte Mikrofon nicht mehr. Gerät ...

Batch & Shell
Tabellarische Ausgabe der Netzwerkschnittstellen
gelöst dysti99Vor 8 StundenFrageBatch & Shell18 Kommentare

Mit - ip a - werden ja die Netzwerkschnittstellen angezeigt. Ich möchte mit ein Batchscript folgende Ausgabe erreichen: 1 eth0 192.168.1.1 AD:13:67:56:14:D1 2 eth1 ...

Festplatten, SSD, Raid
(USB) Festplatten laut ?
TomEngelVor 1 TagFrageFestplatten, SSD, Raid6 Kommentare

Ich grüsse Sie Alle. Eine Frage eines engagierten Laien Habe mehrere 3,5 " Festplatte. Einige schon recht alt 8 Jahre, andere ca 2-3 jahre ...

Ubuntu
Mailserver Test Provider IP
gelöst it-blzVor 1 TagFrageUbuntu9 Kommentare

Hallo, ist es möglich einen "Mailserver" (Imap + smtp) in einer Virtual Box mit einer Provider IP (dynamisch - ist allerdings konstant) zu testen? ...

Linux Netzwerk
SAMBA FS Portfreigabe
Jannik2018Vor 23 StundenFrageLinux Netzwerk17 Kommentare

Hallo zusammen, ich habe eine Portfreigabe für meinen SAMBA Server mit Netzwerkfreigaben auf port 445 TCP eingerichtet allerdings wenn ich per DNS oder externer ...