23 maja 2018

Zarządzanie chmurą z Powershell - przygotowanie

UPDATED: dodatkowe obrazki z obejściem problemu z repozytorium

Niedawno przygotowywałem krótką prezentację o zarządzaniu Office 365 z poziomu Powerhell. Na moim komputerze jest to proste - odpowiednie moduły instalowałem przez kolejne miesiące, jednak na świeżych komputerach z Windows 10 zauważyłem wiele drobnych problemów.
Dlatego też uznałem, że warto jest zrobić krótkie podsumowanie.
Większość modułów, która jest używana do zarządzania środowiskiem Office 365 lub Azure dostępna jest i aktualizowana w PowerShell Gallery (www.powershellgallery.com). Kiedy jednak chcemy je zainstalować w systemie, pojawiają się błędy. W czym leży problem?
Do instalacji modułów powershell z galerii używany jest moduł PowerShellGet, który w Windows 10 dostarczany jest domyślnie z systemem w ramach PowerShell 5. Niestety dostarczany jest on w wersji 1.0.0.1, jak widać na poniższym obrazku po wykonaniu komendy
get-module PowerShellGet -ListAvailable








Dodatkowo pomocniczy pakiet NuGet również nie jest najnowszy i próba instalacji modułu zwraca komunikat o potrzebie aktualizacji dostawcy. Co powinniśmy zatem zrobić? Wymusić aktualizację obu pakietów, jak pokazują kolejne obrazki. Aktualna wersja pakietu NuGet w momecie pisania artykułu to 2.8.5.208:





W niektórych wypadkach dobrze jest po aktualizacji NuGet zamknąć powłokę, bo nie zawsze odświeżą się zmienne środowiskowe i kolejna próba instalacji znowu stwierdzi, że wersja NuGet jest zbyt stara.
Oczywiście wszystkie instalacje wykonujemy w kontekście administratora.
Teraz czas na aktualizację PoweShellGet. Ponieważ był instalowany z systemem, nie możemy użyć cmdleta update-module, musimy wymusić instalację:


Sprawdzamy rezultat:








Jak widać, jest wersja oryginalna i wersja najnowsza, którą możemy już normalnie aktualizować i domyślnie używać.
Czasami jednak możemy natknąć się na taki problem, sygnalizujący brak dostępu do repozytorium:






O co chodzi? Sprawdzam dostępne dla maszyny repozytoria i faktycznie widać jego brak:



Po zarejestrowaniu galerii pojawia się ona na liście repozytoriów, jak pokazuje kolejny obrazek (co ciekawe, nie działa komenda standardowa, z podaniem nazwy i urla PSGallery, trzeba użyć komendy z opcją domyślną -  Register-PSRepository -Default.






Mając zaktualizowany moduł PoweShellGet możemy również użyć nowych cmdletów w nim zawartych (np. get-installedmodule). Jednak przy instalacji lub aktualizacji modułów otrzymamy komunikat:






Możemy się go pozbyć w prosty sposób, wykonując komendę jak na kolejnym obrazku:



Teraz już bez problemów możemy przystąpić do zarządzania środowiskiem chmurowym, instalując potrzebne moduły, takie jak MSOnline, AzureAD, MicrosoftTeams. Trochę więcej na ten temat w kolejnym poście z tego cyklu.

Brak komentarzy: