Skrypty PowerShell wciąż pozostają jednym z najcenniejszych narzędzi dla administratorów Office 365. Przydaje się, gdy trzeba pobrać określoną listę użytkowników lub skrzynek pocztowych. Zamiast przedzierać się przez morze opcji dostępnych w portalu Office 365, administratorzy mogą łatwo wprowadzić kilka linijek kodu, aby uzyskać to, czego potrzebują. W tym artykule poznamy dziesięć najczęściej używanych poleceń cmdlet PowerShell.
1. Połączenie z wystąpieniem usługi Office 365 za pomocą skryptów PowerShell
Poniżej przedstawiono kroki umożliwiające połączenie z wystąpieniem usługi Office 365. Każdy krok opisuje funkcję do wykonania i odpowiedni skrypt PowerShell pozwalający zrobić to samo.
- Pobierz i zainstaluj Asystenta logowania w witrynie Microsoft Online Services dla specjalistów IT RTW.
- Zaimportuj moduł Online Services PowerShell dla usług Microsoft Azure Active Directory i Office 365:
- Install-Module -Name AzureAD
- Install-Module -Name MSOnline
- Uruchom poniższe polecenie i wprowadź swoje poświadczenia administratora usługi Office 365 w wyświetlonym wyskakującym okienku.
- Utwórz zdalną sesję PowerShell.
- $O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
- Zaimportuj polecenia sesji do lokalnej sesji Windows PowerShell.
- Połącz ze wszystkimi usługami Office 365.
- Connect-MsolService –Credential $O365
2. Połączenie z usługami Exchange Online i SharePoint Online za pomocą skryptów PowerShell
Poniżej przedstawiono kroki wymagane do połączenia usług Exchange Online i SharePoint Online za pomocą PowerShell.
- Uruchom poniższy skrypt, aby połączyć się z modułem Exchange Online. Po wyświetleniu monitu wprowadź poświadczenia administratora usługi Office 365.
- $Cred = Get-Credential
- $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic –AllowRedirection
- Aby połączyć się z usługą SharePoint Online, pobierz i zainstaluj powłokę zarządzania programem SharePoint Online, a następnie uruchom poniższy skrypt.
- $admin="Admin@enterprise.onmicrosoft.com"
- $orgname="enterprise"
- $userCred = Get-Credential -UserName $admin -Message "Type the password."
- Connect-SPOService -Url https://$orgname-admin.sharepoint.com -Credential $userCred
W pierwszych dwóch wierszach skryptu należy podać prawidłowy adres e-mail administratora i nazwę firmy.
3. Uzyskanie listy dostępnych poleceń cmdlet PowerShell dostępnych dla usługi Office 365
Aby uzyskać listę wszystkich poleceń PowerShell dostępnych dla usługi MSOnline, uruchom poniższe polecenie
- Get-Command -module MSOnline
Aby uzyskać listę wszystkich poleceń cmdlet dostępnych dla usługi Azure Active Directory, uruchom poniższe polecenie
- Get-Command -module AzureAD
4. Uzyskiwanie listy wszystkich użytkowników usługi Office 365 za pomocą skryptów PowerShell
Aby pobrać wszystkich użytkowników z ważną licencją w dzierżawcy usługi Office 365, wraz z parametrami DisplayName, City, Department i ObjectID, uruchom poniższe polecenie.
- Get-MsolUser | Select DisplayName, City, Department, ObjectID
5. Tworzenie nowego użytkownika w usłudze Office 365 za pomocą skryptów PowerShell
Aby utworzyć nowego użytkownika usługi Office 365 o imieniu John i nazwisku Smith, uruchom poniższe polecenie.
- New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith" -FirstName “John” -LastName “Smith”
Jeśli utworzenie użytkownika usługi Office 365 powiodło się, system zwróci hasło użytkownika i status licencji.
6. Usuwanie użytkownika ze wszystkich witryn SharePoint za pomocą skryptów PowerShell
Aby usunąć użytkownika ze wszystkich witryn SharePoint jednocześnie, uruchom poniższe polecenie.
- Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
7. Zmiana hasła użytkownika usługi Office 365 za pomocą skryptów PowerShell
Aby zmienić hasło do konta, użyj polecenia cmdlet Set-MsolUserPassword.
- Set-MsolUserPassword -UserPrincipalName JSmith@netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
Możesz pominąć parametr -NewPassword, aby umożliwić systemowi wygenerowanie losowego hasła.
8. Zarządzanie członkostwem w grupach w usłudze Office 365 za pomocą skryptów PowerShell
Aby zarządzać grupą, musisz znać parametry GroupObjectId i GroupMemberObejctId.
Aby znaleźć parametr groupObjectID grupy, którą chcesz zarządzać, uruchom poniższe polecenie.
Aby znaleźć parametr GroupMemberObejctId użytkowników, których chcesz dodać lub usunąć, uruchom poniższe polecenie.
- Get-MsolUser | Select ObjectID.
Aby dodać nowych członków do grupy, uruchom poniższe polecenie.
- Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
Aby usunąć użytkownika z grupy, uruchom poniższe polecenie.
- $GroupId = Get-MsolGroup -SearchString "MyGroup"
- $UserId = Get-MsolUser -UserPrincipalName "evannarvaez@contoso.com"
- Remove-MsoLGroupMember -GroupObjectId $GroupId -GroupMemberType User -GroupmemberObjectId $UserId
W tym przykładzie użytkownik evannarvaez@contoso.com zostanie usunięty z grupy o nazwie MyGroup.
9. Tworzenie zbioru witryn SharePoint za pomocą skryptów PowerShell
Aby utworzyć zbiór witryn SharePoint za pomocą skryptów PowerShell, uruchom poniższe polecenie.
- New-SPOSite -Url https://contoso.sharepoint.com/sites/mynewsite -Owner john.smith@contoso.com -StorageQuota 1000 -Title "Latest presentation"
W tym przykładzie zostanie utworzony nowy zbiór witryn o nazwie Latest presentation (Najnowsza prezentacja) dla bieżącej firmy z określonym adresem URL witryny i właścicielem. Przydział pamięci wynosi 1000 megabajtów.
10. Tworzenie raportów w usłudze Office 365 za pomocą skryptów PowerShell
PowerShell to doskonałe narzędzie do tworzenia różnych raportów. Oto kilka przydatnych raportów o usłudze Office 365 wykonanych za pomocą skryptów PowerShell:
Generowanie raportu „Wszystkie skrzynki pocztowe”, który zawiera szczegółowe informacje o wszystkich skrzynkach pocztowych w konfiguracji usługi Office 365.
- Get-mailbox | get-MailboxStatistics
Pobieranie listy wszystkich skrzynek pocztowych, do których nie logowano się w ciągu ostatnich 30 dni.
- Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) } | Format-Table DisplayName, LastLogonTime
Uzyskanie podsumowania ruchu poczty w usłudze Office 365.
Uwaga: Większość poleceń cmdlet związanych z tworzeniem raportów została wycofana w styczniu 2018 r. i zastąpiono je nowym interfejsem API programu Microsoft Graph. W związku z tym niektóre raporty są obecnie dostępne tylko w centrum zabezpieczeń i zgodności usługi Office 365.