emeriks
Goto Top

VMware PowerCli ändert PS-Profil?

Hi,
wir haben hier einen Server, auf welchen diverse PS-Scripte laufen, welche irgendwas überwachen.

Windows Server 2016 Datacenter
aktueller Patchstand 01/19

Dort lief bisher u.a. ein Script, welches unsere MS Failovercluster abgefragt hat. Dafür musste im Script nicht extra ein Modul importiert werden.
Vorgestern habe ich auf diesem Server die VMware PowerCli auf Version 11.1 aktualisiert. Seit dem funktionieren Scripte nicht mehr, welche mit dem MS CmdLet "Get-Cluster" die Failovercluster abfragen sollen. Dieses CmdLet ist jetzt überschrieben mit dem von der VMware PowerCli, ohne dass ich das Modul dafür explizit importiert hätte.

Ich musste jetzt die Scripte für FailoverCluster anpassen und dort als erstes explizit mit "Import-Module FailoverClusters" gegensteueren, damit diese Scripte weiter funktionieren.

Die Frage:
Wo hat sich das PowerCli-Modul jetzt eingeklingt, sodass es beim Start der PowerShell jetzt automatisch geladen wird?

Ich habe die diversen Profilpfade schon geprüft, wie sie z.B. hier genannt werden:
Understanding the Six PowerShell Profiles
Dort sind nirgends PS1-Dateien drin.

Irgendwas übersehe ich.

E.

Content-Key: 399382

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

Printed on: April 26, 2024 at 12:04 o'clock

Member: colinardo
Solution colinardo Jan 25, 2019 updated at 08:38:56 (UTC)
Goto Top
Servus.
Hier wird nichts am Profil geändert!
Das hat mit dem Autoloading Mechanismus der PS zu tun. Get-Cluster ist ja einmal in den Microsoft Modulen vorhanden als auch in den PowerCli Modulen, also doppelt.
Wenn man also ein Module später hinzufügt und dieses ein CMDLet enthält was genauso heißt wie eins das es schon vorher gab wird das CMDLet importiert was zuletzt hinzugefügt wurde solange nicht schon ein Modul geladen ist das das CMDLet bereits enthält.

Hier kannst du das noch etwas detaillierter nachlesen
PowerShell Basics–Recommendations when Importing Modules

Außer man setzt die entsprechende Variable die einen davor warnt, das es ein CMDlet doppelt gibt.

Also immer schön acht geben was man da an neuen Modulen importiert und trotz Autoloading besser immer das explizit geforderte Modul am Anfang des Skripts in die Session laden.

Grüße Uwe
Member: emeriks
emeriks Jan 25, 2019 at 08:38:40 (UTC)
Goto Top
Hallo Uwe,
danke, das erklärt. Da kam tatsächlich solch eine Meldung beim Installieren. Ich hatte jedoch angenommen, dass das erst dann zutrifft, wenn man das Modul bei Bedarf importiert.

Wenn ich jetzt die Module für das Failoverclustering deinstalliere und wieder neu installiere, dann müsstem diese sich doch wieder "in den Vordergrund" schreiben, oder?

E.
Member: colinardo
Solution colinardo Jan 25, 2019 updated at 08:41:52 (UTC)
Goto Top
Zitat von @emeriks:
Wenn ich jetzt die Module für das Failoverclustering deinstalliere und wieder neu installiere, dann müsstem diese sich doch wieder "in den Vordergrund" schreiben, oder?
Ja, ich würde aber trotzdem nicht darauf vertrauen. Beim nächsten Update stehst du wieder da wie ein Ochs. Deswegen besser in den Scripten das Modul explizit importieren, das ist ja nicht viel Arbeit erspart dir aber beim nächsten Update wieder Stress.
Member: emeriks
emeriks Jan 25, 2019 at 08:41:35 (UTC)
Goto Top
Alles klar. Danke Dir!
Schönes WE!
Member: colinardo
colinardo Jan 25, 2019 updated at 08:46:33 (UTC)
Goto Top
Gerne, wünsch ich dir ebenso.
Member: emeriks
emeriks Jan 25, 2019 at 08:47:59 (UTC)
Goto Top
Zitat von @emeriks:
Wenn ich jetzt die Module für das Failoverclustering deinstalliere und wieder neu installiere, dann müsstem diese sich doch wieder "in den Vordergrund" schreiben, oder?
Nee, das hat nicht funktioniert. Hm .. face-sad
Member: colinardo
colinardo Jan 25, 2019 updated at 09:04:32 (UTC)
Goto Top
Dann zählen die MS CMDLets wohl zur Gruppe der nativen Befehle oder PowerCli nutzt nur Functions und markiert die Befehle nicht als echte CMDLets, oder MS behandelt diese eben anders weil sie vom Hersteller selbst kommen.

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...

Wie gesagt, du hast ja wie oben im Artikel und in diesem Link diverse Möglichkeiten das Verhalten zu umgehen, und die solltest du auch Vorzugsweise nutzen.

Bin nur gerade unterwegs und kann das deswegen nicht genau prüfen.