Unterschied PS 5 und PS 7

erikro
Goto Top
Moin,

ich habe ein Powershellskript, das bisher ohne Probleme lief. Als Parameter wird


beim Aufruf übergeben. Das soll ein Teil oder auch ein ganzer Gruppenname sein. Im weiteren Verlauf wird dann mit


geprüft, ob es denn diese Gruppe(n) gibt.

Unter 5.1.19041.1682 Desktop läuft das wie Schmitz' Katze und das gesamte Skript erstellt eine Matrix aus Usern und Gruppenmitgliedschaften. Alles gut. Unter 7.2.5 Core passiert folgendes:


Warum? Was wurde da geändert? Und warum steht in der Fehlermeldung, dass "Sourcegroup DL_RW*" nicht gefunden wurde?

Beide PS-Installationen befinden sich auf dem selben Rechner und es wird das Skript mit dem selben User ausgeführt. Es kann also kein Rechteproblem sein.

Liebe Grüße

Erik

Content-Key: 3209579330

Url: https://administrator.de/contentid/3209579330

Ausgedruckt am: 15.08.2022 um 18:08 Uhr

Mitglied: colinardo
Lösung colinardo 29.06.2022 aktualisiert um 17:55:32 Uhr
Goto Top
Servus Erik,
kann das hier im Test zwischen 5.1 und 7.2.5 leider nicht nachvollziehen, aber schreibe den Filter stattdessen mal so
damit umgehst du die Subexpression, die führt als Filter manchmal zu nicht nachvollziehbaren Scope-Problemen, bei denen der Parent Scope nicht im Filter lesbar ist.
Evt. auch mal das AD Module explizit vorladen (ohne Autoload).

Grüße Uwe
Mitglied: erikro
erikro 30.06.2022 um 09:55:03 Uhr
Goto Top
Moin,

ich danke Dir erstmal. Nun läuft das Skript fast sauber durch und macht auch unter 7 das, was es soll. Offensichtlich ist die Version 7 genauer (oder auch zickiger) als die 5er. Ich musste noch an zwei, drei anderen Stellen was ändern. Nun kommt es so weit, dass die Excel-Tabelle korrekt erstellt wird. Nur eins fehlt noch: Hübsch machen. Da kriege ich auf diese beiden Zeilen:


Diese Meldungen


Hmmmmmmm, ehrlich gesagt bin ich nicht wirklich der Experte des Excel-Objekts. Ich habe nachgelesen bei MS in der Doku und verstehe das nicht wirklich. Offenbar ist die Zeile 158 falsch. Aber warum? Wieso funkt das unter 5 und nicht unter 7?

Liebe Grüße

Erik
Mitglied: colinardo
Lösung colinardo 30.06.2022 aktualisiert um 10:07:05 Uhr
Goto Top
Den Interop-Typ Microsoft.Office.Interop.Excel musst du erst mit Add-Type laden bevor du ihn nutzen kannst, der Namespace wird nicht automatisch geladen.
Alternativ statt den Namespace zu nutzen ist das __Value der Konstanten dort einzutragen dann brauchst du den Typ nicht laden.
Die PS7 verzeiht halt ein paar Ungenauigkeiten nicht mehr so wie die 5er.
Mitglied: erikro
erikro 30.06.2022 um 10:17:36 Uhr
Goto Top
Nochmal danke. Jetzt läuft es unter beiden Versionen. Tatsächlich war das Original ein wenig schmutzig programmiert. Offenbar stört das unter 5 nicht und unter 7 schon. Letzteres finde ich eigentlich besser. face-wink