Edytujemy naszą usługę O365 z poziomu PowerShell
Cześć.
Miałem dziś potrzebę wylistować użytkowników mojego tenanta (aż czterech!) z określonymi kolumnami a następnie wprowadzić aktualizację ich parametrów (dla przykładu użyję Dział oraz Miasto).
Mogłem to zrobić z poziomu ECP, ale… Niby to tylko czterech użytkowników, zrobie to szybciej niżeli instalowanie addonów, łączenie się za pomocą PowerShella i tak dalej.. A co jeżeli takich użytkowników mamy juz 100? Też to zrobimy z poziomu ECP? Oczywiście. Tylko, że o w wiele, wiele dłuższym czasie.
Na potrzeby wpisu przyjmiemy, że jest to system Windows 10, bez zainstalowanych modułów Powershell.
Aby rozpocząć pracę z O365 w PS potrzebujemy modułów z galerii:
MSOnline z linku: https://www.powershellgallery.com/packages/MSOnline/ Azure AD PowerShell z linku https://www.powershellgallery.com/packages/AzureAD/ Oba moduły instalujemy w bardzo łatwny sposób:
Install-Module -Name MSOnline
Install-Module -Name AzureAD
Kolejnym krokiem będzie zalogowanie się do swoich usług
Connect-AzureAD
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential (Get-Credential) -Authentication Basic -AllowRedirection
Import-PSSession $Session
Connect-MsolService
Po poprawnym zalogowaniu możemy wylistować np. swoje skrzynki mailowe poleceniem:
Get-mailbox
Ja potrzebowałem wyeksportować wszystkie dane moich użytkowników do pliku csv. W tym celu użyłem polecenia:
get-user -resultsize unlimited |select * |export-csv c:\dane_ps\uzytkownicy.csv
Dzięki temu uzyskałem kompletny plik csv z każdą możliwą komórką do uzupełnienia. Po uzupełnieniu wszystkich niezbędnych danych musimy w jakiś sposób dodać te dane, prawda? Zrobimy to w taki sposób:
Import-Csv „c:\dane_ps\uzytkownicy.csv” | foreach{Set-MsolUser -UserPrincipalName $_.UserPrincipalName -Department $_.Department -City $_.City }
Dlaczego to polecenie wygląda w taki sposób? Najpierw importujemy plik cvs, potem dla każdego rekordu z tego pliku wykonujemy polecenie Set-MsolUser z parametrem, który identyfikuje naszego użytkownika: UserPrincipalName, a każdy kolejny parametr wskazuje wartość, którą modyfikujemy. Możemy dodać tych parametrów nawet 30 jeżeli mamy taką ochotę.
Po chwili nasze wartości powinny być widoczne poprawnie w ECP.
Jak dla mnie – ułatwia to bardzo pracę.
Have fun!