好吧,所以我嘗試了上述項目來刪除Windows PowerShell,發現它實際上並沒有完全刪除PowerShell。
這至少在Windows 7上看起來不太合適。
如果您運行uninstall-module Azure或Uninstall-Module AzureRM,它會卸載一些東西,看起來像我認爲的基本模塊。
然後,如果你這樣做:
獲取-模塊AzureRM -ListAvailable它會無功而返。 所以它做對了嗎?
不,不是真的。
如果你這樣做: Get-Module -ListAvailable AzureRM *你會發現任何數量的子模塊仍然坐在那裏。 (由於某些原因,通配符與Get-Module一起使用,但不與Uninstall-Module一起使用)
好吧,但是之後只需要執行Uninstall-Module AzureRm *對吧? 不,不是真的
取決於你的powershell版本(或者可能不是,我不確定) 安裝模塊只是抱怨你不能在Uninstall-Module命令中使用通配符。(天知道爲什麼通配符不是這個意思?),但是這是窗口,所以我只好把它吸了起來。
如果你看一下%System-root%\ Program Files \ windowspowershell \ modules,你仍然會看到模塊。
這是爲什麼?我不知道,但這是我必須做的,以清理所有舊版本和更新版本的Azure PowerShell,我必須恢復到乾淨的狀態。 所以要解決缺乏支持通配符的問題,我只是用一個foreach循環者:(。在(GET-模塊-ListAvailable AzureRM *)$模塊名稱|獲取唯一的)
的foreach {
寫 - 主機「刪除模塊$模塊」
卸載模塊$模塊
}
被警告不要試圖運行此作爲Visual Studio代碼或與此有關的Visual Studio,如視你的鎖可能會犯錯因爲它傾向於預加載模塊並鎖定事物。把它放在一個名爲Removeold-AzureRM.ps1文件,並從這樣的PowerShell控制檯窗口中運行它: \刪除,AzureRM.ps1
另外,還要確保在嘗試它之前關閉Visual Studio代碼和Visual Studio或您仍然可能會收到類似的錯誤消息。
如果您在已經卸載AzureRM後運行此操作,則會發現事情停止工作,並且只有最後一招。 刪除%系統根%\ Program Files文件中的所有AzureRM模塊\ windowspowershell \模塊
編輯我已經重新測試這一及以上仍然代碼似乎工作,如果你有安裝azurerm 5.0.1和你已經刪除azurerm所以我可能是錯的其他版本,以及
現在你會在這一點上肯定有這樣的排序,你現在可以重新安裝與安裝,模塊AzureRM Azure中的PowerShell。
如果您犯了像我這樣的意外損壞powershellget的錯誤,請勿嘗試使用WMF 5.1或5.0重新安裝它,因爲這樣會安裝正常,但您仍然不會擁有powershellget,爲什麼我不確定再次,這是窗戶,所以讓我們把它吸了起來。
好吧,那該如何解決呢?
你唯一的辦法就是從https://github.com/PowerShell/PowerShellGet/releases
下載powershellget的釋放,並複製PowerShellGet-1.5.0.0 \ PowerShellGet到你的模塊文件夾。 然後Install-Module將再次工作。
是的我知道我們都在說重新安裝不是更安全嗎?
是的,但對於那些你喜歡我的人,如果這不是一個理由或其他選擇上述是你最好的選擇。我希望這可以幫助某人,因爲這至少需要3天的時間才能理清爲什麼當我確信我已經刪除了所有內容時,我仍然繼續執行舊的模塊。
如果PS cmdline已經死了 - 請撥打 –
請您詳細說明完成此操作的步驟? – blissweb