Was ist los mit den Parametern Uninstall-SPSolution und AllWebApplications?
-
09-12-2019 - |
Frage
Wenn ich versuche, WSP mit der folgenden Zeile zu deinstallieren, ist alles in Ordnung:
Uninstall-SPSolution project.wsp # no error - OK
Wenn ich versuche, switch parameter -AllWebApplications hinzuzufügen, erhalte ich eine Fehlermeldung (so etwas wie diese Lösung enthält keine Ressourcen für den Webanwendungsbereich), was auch in Ordnung ist:
Uninstall-SPSolution project.wsp -AllWebApplications # error X - OK
ABER wenn ich diesen Schalterparameter mit FALSCHEM Wert hinzufüge, erhalte ich eine Fehlermeldung (wie oben), was falsch ist, nicht wahr?
Uninstall-SPSolution project.wsp -AllWebApplications:$false # error X again - WRONG
Es sieht so aus, als hätte sich an der vorherigen Zeile nichts geändert, aber es sollte...
Auf andere Weise:Meine Lösung brauche ich NICHT AllWebApplication
parameter, aber ich möchte es explizit ausschalten (dh - geben Sie es mit FALSCHEM Wert an).
Frage ist:Wie kann ich diesen Schalterparameter als FALSCH angeben?
Mir ist gerade aufgefallen, dass dies mit dem Cmdlet nicht passiert Install-SPSolution
.
Lösung
Es scheint, als ob Install-SPSolution und Uninstall-SPSolution von zwei verschiedenen Entwicklern (oder zumindest zu unterschiedlichen Zeiten) geschrieben wurden
Beide Befehle haben das Potenzial, entweder nein, eine einzelne oder alle Webanwendungen zu akzeptieren, wie sie mit diesen Optionen umgehen, sind sehr unterschiedlich.
Installieren-SPSolution
Dies ist die gut codierte, auf der die Entscheidung basiert:
- Überprüfen Sie, ob in der Webanwendung ein Wert ungleich Null vorliegt. In diesem Fall wird geprüft, ob alle Webanwendungen wahr sind. Wenn dies der Fall ist, handelt es sich um einen Fehler, wenn nicht, um eine einzelne Webanwendung
- wenn nicht single, prüft es, ob der SwitchParameter AllWebApplications wahr ist, wenn ja, sind es alle WebApps
- wenn nicht, dann sind es keine WebApps
Deinstallation-SPSolution:
Hat den beiden Parametern unterschiedliche Parametersätze zugewiesen, dh Sie können nicht sowohl -WebApplication als auch -AllWebApplications unabhängig von den Werten angeben, da es dann nicht entscheiden kann, welchen Parametersatz Sie meinen.
Und dann zu "Deinem Käfer" anstatt nach dem Wert von -AllWebApplications zu suchen, prüfen sie einfach, ob das Parameterset "AllWebApplication" ist, wenn ja, ignorieren sie jeden von Ihnen angegebenen Wert und nehmen einfach true an
Andere Tipps
Es sollte funktionieren, indem -confirm auf 0 oder false gesetzt wird.
Aus allen Webanwendungen:
Uninstall-SPSolution yousolutionname.wsp -AllWebApplications -Confirm:$false
Aus einer bestimmten Webanwendung:
Uninstall-SPSolution -Identity yousolutionname.wsp -Confirm:0 -Webapplication $url