Wie zu reinigen, die schlechten Azure PowerShell deinstallieren?
Hintergrund:
Ich hatte installiert Azure-PowerShell-1.x über die MSI, und nachträglich Hinzugefügt, einige Azure-Ressource-Management-Module über die Eingabeaufforderung.
Hat alles gut funktioniert; dann gestern Nachmittag auf der ISE aus unerklärlichen Gründen verschwunden. In einem Versuch, um das zu ändern, plante ich zum deinstallieren das MSI & dann neu installieren. (Ich wusste nicht, dass es notwendig ist, um den ersten unstall die manuell hinzugefügten Module.)
Die deinstallation schien gut laufen, hat es aber nicht entfernen Sie die manuell installierte Module, noch hat Sie warnen.
Ergebnis: Die Maschine hat nicht mehr die Azure PowerShell installiert. Ich kann nicht Installieren, Deinstallieren oder Reparieren der installation, da einige Module bleiben:
Azure Module der PowerShell Gallery installiert sind, auf diese
Maschine. Bitte entfernen Sie diese Module vor der Installation der MSI-Datei.
Gibt es eine Möglichkeit, zu "reparieren" diese installation? Entweder manuell entfernen-Dateien/cleanup-Registrierung, oder die Kraft, das MSI zu installieren was auch immer da ist?
Ist dies alles läuft auf einer VM auf Azure. Ich könnte löschen Sie den gesamten VM & von Grund auf neu starten, wenn nötig, aber lieber zu vermeiden, wenn es eine relativ einfache Lösung.
Dank!
InformationsquelleAutor Mark Maslar | 2015-12-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Okay, so habe ich versucht, den oben genannten Artikel, um windows powershell entfernen, und fand eigentlich, dass es nicht vollständig entfernen powershell.
Dies ist zumindest unter windows 7 scheint es nicht richtig zu.
Wenn Sie
uninstall-module Azure
oderUninstall-Module AzureRM
es deinstalliert etwas, sieht aus wie die base-Modul, denke ich.Dann, wenn Sie tun:
Get-Module AzureRM -ListAvailable
wird es wieder nichts.
So its done right?
Nein, nicht wirklich.
Wenn Sie dann tun:
Get-Module -ListAvailable AzureRM*
finden Sie eine beliebige Anzahl von sub-Modulen noch dort sitzt. (Aus irgendeinem Grund wildcards arbeiten mit Get-Module aber nicht mit Deinstallieren-Modul)
Okay so, aber dann eben Deinstallieren-Modul AzureRm* Recht?
Nein, nicht wirklich
Je nach Ihrem powershell-version (Oder vielleicht auch nicht, ich bin mir nicht sicher)
Install-Modul nur beschwert, dass Sie nicht verwenden können wildcards in der Deinstallieren-Module-Befehl. (Gott weiß, warum, was ist der Sinn von wildcards, wenn nicht für diese?, aber dann ist dies windows, also musste ich zu saugen).
Und wenn man einen Blick in den %System-root%\Program Files\windowspowershell\modules " Sie werden noch sehen, die Module gibt.
Warum ist das so? Ich bin mir nicht sicher, aber das ist, was ich tun musste, um zu bereinigen all die alten Versionen und neuere Versionen von Azure powershell, die ich hatte, um wieder zu einem sauberen Schiefer.
So, das problem zu lösen fehlende wildcard-support habe ich nur verwendet eine foreach-Schleife wie folgt:
foreach ($module in (Get-Module -ListAvailable AzureRM*).Name |Get-Unique) {
write-host "Removing Module $module"
Uninstall-module $module
}
Werden gewarnt, nicht zu versuchen, führen Sie diese als Visual Studio-code oder visual studio für, dass Materie, wie Sie je nach Ihrer Sperre erhalten Sie möglicherweise Fehler, wie es dazu neigt, pre-laden der Module und Schloss die Dinge offen. Legen Sie es in eine Datei namens Removeold-AzureRM.ps1 und führen Sie es in eine powershell-Konsole-Fenster wie dieses:
.\Entfernen-AzureRM.ps1
Achten Sie ebenfalls darauf schließen, Visual Studio Code und Visual studio vor, es zu versuchen, oder Sie möglicherweise dennoch eine ähnliche Fehlermeldung.
Wenn Sie dies ausführen, nachdem Sie bereits deinstalliert AzureRM Sie werden feststellen, dass Dinge, die aufhören zu arbeiten, und Sie haben nur einen Ausweg.
Löschen Sie alle AzureRM Module in %System-root%\Program Files\windowspowershell\modules
Bearbeiten habe ich wieder getestet, und der obige code scheint immer noch funktionieren, wenn Sie azurerm 5.0.1 installiert ist und Sie bereits entfernt azurerm so dass ich könnte falsch sein über andere Versionen als auch
Nun werden Sie an dieser Stelle sicher haben diese sortiert und Sie können nun installieren Sie die Azure powershell mit Install-Modul AzureRM.
Wenn Sie den Fehler gemacht, nuking powershellget wie ich durch Zufall, nicht die Mühe versuchen, neu installieren Sie es mit den WMF-5.1 oder 5.0, die Installation gut, aber Sie noch nicht haben, powershellget, warum ich bin mir nicht sicher, und das ist wieder windows, so können nur saugen Sie es auf.
Okay, so wie es zu lösen ist dann?
Ihre einzige Möglichkeit ist das herunterladen der Version von powershellget
Und und kopieren Sie die PowerShellGet-1.5.0.0\PowerShellGet zu Ihrem Ordner Module.
Dann Installieren-Modul funktioniert wieder.
Yeah ich weiß, wir sind alle sagen ist es nicht nur sicherer zu re-installieren?
Ja wahrscheinlich, aber für diejenigen von Ihnen, wie mir, wo das war keine option für einen oder anderen Grund der oben genannten ist Ihre beste Wette. Ich hoffe, dies hilft jemand wie dieser hat mich mindestens 3 Tage, um sich zu Sortieren, warum ich immer ältere Module ausgeführt werden, wenn ich sicher war, ich hatte schon alles entfernt.
InformationsquelleAutor Isaac Kane Egglestone
Schneller gehen, können Sie Sie deinstallieren parallel:
Arbeitete für mich. Ich habe, um es auszuführen zweimal alles loswerden.
bearbeitet die Antwort auf einen zweiten Aufruf, um alles loswerden.
InformationsquelleAutor BlueSky
Es ist nur eine Dev-VM. Ich schob es auf und begann von vorn. Lektion gelernt: Deinstallieren Sie PowerShell Gallery-Komponenten vor der deinstallation des MSI.
Könntest du bitte erläutern Sie auf genau die Schritte, dies zu tun ??
InformationsquelleAutor Mark Maslar
Deinstallieren Sie die Module per MSI (zuerst) und dann cmdline:
Den Rechner neu starten, danach installieren und dann wieder über WebPI/MSI. https://azure.microsoft.com/en-us/blog/azps-1-0/
Sagt, dass kein solcher Befehl Deinstallieren-AzureRM
Das Uninstall-Modul (nicht deinstallieren-AzureRM) - cmdlet ist nicht Teil des Azure-cmdlets, ist es einen generischen PS-cmdlet. Versuchen Sie, diese Befehle - Hinweis: diese funktioniert nur, wenn Sie die Installation über die Galerie - wenn Sie die Installation über MSI, müssen Sie die deinstallation über das MSI.
InformationsquelleAutor bmoore-msft
Fand ich den Befehl " Get-InstalledModule funktioniert besser für mich zu entdecken, meine installierten Module.
Meine aktuelle Skript sieht wie folgt aus:
InformationsquelleAutor David R. Williamson