Wprowadzenie — Microsoft 365 jako serce infrastruktury IT w firmie
Powiedzmy sobie szczerze — Microsoft 365 to dziś fundament pracy w niemal każdej firmie. Poczta, Teams, OneDrive, SharePoint, Copilot — wszystko kręci się wokół tego ekosystemu. I właśnie dlatego helpdesk IT musi znać go od podszewki.
Nie wystarczy wiedzieć, gdzie kliknąć „zresetuj hasło". W 2026 roku administracja M365 to zarządzanie tożsamością w Entra ID, konfiguracja polityk bezpieczeństwa, diagnostyka problemów z Outlookiem, migracja do nowego klienta poczty i wdrażanie Copilota — a to dopiero początek listy.
Ten przewodnik powstał z myślą o technikach pierwszej i drugiej linii wsparcia IT, którzy codziennie mierzą się ze zgłoszeniami związanymi z Microsoft 365. Znajdziesz tu aktualne informacje o zmianach w platformie na początku 2026 roku, gotowe komendy PowerShell, procedury diagnostyczne i sprawdzone rozwiązania najczęstszych problemów. Cel jest prosty — zamknąć ticket szybciej i sprawić, żeby użytkownik wrócił do pracy bez frustracji.
Kluczowe zmiany w Microsoft 365 na początku 2026 roku
Obowiązkowe MFA dla centrum administracyjnego Microsoft 365
To prawdopodobnie najważniejsza zmiana, która dotyka każdego administratora M365. Od 9 lutego 2026 roku Microsoft wymusza uwierzytelnianie wieloskładnikowe (MFA) dla wszystkich użytkowników logujących się do centrum administracyjnego Microsoft 365. Nie jest to już zalecenie — to twardy wymóg.
Osoby bez skonfigurowanego MFA? Po prostu zablokowane.
Zmiana dotyczy wszystkich portali administracyjnych:
portal.office.com/adminportal/homeadmin.cloud.microsoftadmin.microsoft.com
Co to oznacza dla helpdesku? Przede wszystkim — lawinę zgłoszeń od administratorów, którzy nagle nie mogą się zalogować do panelu. A takich osób w dużych organizacjach bywa zaskakująco sporo, bo wiele firm nadal nie wdrożyło MFA dla wszystkich kont administracyjnych (tak, nawet w 2026 roku).
Procedura obsługi zgłoszenia „Nie mogę wejść do admina M365":
- Zweryfikuj tożsamość zgłaszającego — to kluczowe, bo MFA właśnie chroni przed nieautoryzowanym dostępem.
- Sprawdź, czy użytkownik ma skonfigurowaną metodę MFA w Microsoft Entra ID.
- Jeśli nie — przeprowadź go przez konfigurację na stronie
aka.ms/MFAWizard. - Jeśli ma skonfigurowane MFA, ale nie działa — sprawdź, czy nie utracił dostępu do urządzenia uwierzytelniającego (np. zmienił telefon).
# Sprawdź metody MFA użytkownika w PowerShell (wymaga modułu Microsoft.Graph)
Connect-MgGraph -Scopes "UserAuthenticationMethod.Read.All"
$userId = "[email protected]"
Get-MgUserAuthenticationMethod -UserId $userId |
Select-Object @{N='Metoda';E={$_.AdditionalProperties['@odata.type']}},
Id | Format-Table -AutoSize
W sytuacjach awaryjnych — np. gdy jedyny globalny administrator utracił dostęp do MFA — konieczne jest skorzystanie z procedury Emergency Access Account (konta awaryjnego). Jeśli Twoja organizacja nie ma takiego konta… cóż, najwyższy czas je utworzyć. Microsoft oficjalnie zaleca posiadanie co najmniej dwóch kont awaryjnych wykluczonych z polityk warunkowego dostępu.
Nowa rola AI Administrator
Microsoft wprowadził nową rolę administracyjną — AI Administrator — dedykowaną zarządzaniu usługami opartymi na sztucznej inteligencji, przede wszystkim Microsoft 365 Copilot. Z perspektywy helpdesku to istotna zmiana, bo pojawia się zupełnie nowy typ zgłoszeń: „Copilot nie działa", „Copilot pokazuje dane, których nie powinien" albo „Agent w Teams się nie pojawia".
Rola AI Administratora pozwala na:
- Zarządzanie agentami Copilot w centrum administracyjnym
- Konfigurację polityk dostępu do funkcji AI
- Monitorowanie użycia Copilot za pomocą nowych raportów
- Zarządzanie rozszerzeniami i konektorami Copilot
Migracja z klasycznego Outlooka na nowy Outlook
Microsoft oficjalnie ogłosił, że od kwietnia 2026 roku rozpocznie automatyczną migrację użytkowników Microsoft 365 Enterprise z klasycznego Outlooka na nowy Outlook dla Windows. Dobra wiadomość — to nie będzie nagłe wyłączenie starego klienta. Proces jest rozłożony w czasie, a użytkownicy będą mogli wrócić do klasycznej wersji. Wsparcie dla klasycznego Outlooka potrwa co najmniej do 2029 roku.
Ale uwaga — już teraz helpdesk powinien się przygotować na falę zgłoszeń. I to nie małą:
- Makra i dodatki COM nie działają w nowym Outlooku
- Pliki PST nie są natywnie obsługiwane w nowej wersji
- Niektóre reguły skrzynki odbiorczej mogą wymagać ponownej konfiguracji
- Integracje z systemami zewnętrznymi (CRM, ERP) mogą nie działać poprawnie
Jak sprawdzić, które dodatki w organizacji będą dotknięte migracją:
# Lista dodatków COM zainstalowanych w klasycznym Outlooku (uruchom na stacji użytkownika)
Get-ItemProperty "HKCU:\Software\Microsoft\Office\Outlook\Addins\*" -ErrorAction SilentlyContinue |
Select-Object PSChildName, FriendlyName, LoadBehavior |
Format-Table -AutoSize
# Sprawdź dodatki na poziomie maszyny
Get-ItemProperty "HKLM:\Software\Microsoft\Office\Outlook\Addins\*" -ErrorAction SilentlyContinue |
Select-Object PSChildName, FriendlyName, LoadBehavior |
Format-Table -AutoSize
Najczęstsze problemy z Outlookiem i Exchange Online w 2026 roku
Zawieszanie się klasycznego Outlooka po aktualizacji ze stycznia 2026
Jeden z największych problemów, który generował ogromną liczbę zgłoszeń na początku roku. Po zainstalowaniu aktualizacji zabezpieczeń z 14 stycznia 2026 klasyczny Outlook zaczął się zawieszać, przestawał odpowiadać lub nie otwierał się ponownie po zamknięciu. Problem dotyczył szczególnie użytkowników z kontami POP oraz osób przechowujących pliki PST w OneDrive (co samo w sobie nie jest najlepszym pomysłem, ale to temat na inną dyskusję).
Rozwiązanie: Microsoft wydał aktualizację poza cyklem (out-of-band) — KB5078127 z 24 stycznia 2026. Jeśli aktualizacja nie zainstalowała się automatycznie:
# Sprawdź, czy KB5078127 jest zainstalowany
Get-HotFix -Id KB5078127 -ErrorAction SilentlyContinue
# Jeśli nie — wymuś sprawdzenie aktualizacji
UsoClient.exe StartInteractiveScan
Jako tymczasowe obejście — przed zainstalowaniem poprawki — można uruchomić Outlooka w trybie awaryjnym:
outlook.exe /safe
Wielka awaria Microsoft 365 z 22 stycznia 2026
22 stycznia 2026 roku, około godziny 20:37 czasu polskiego, Microsoft 365 doświadczył masowej awarii, która dotknęła Outlooka, Exchange Online, centrum administracyjnego i inne usługi w Ameryce Północnej i Europie. Użytkownicy nie mogli wysyłać ani odbierać poczty, a Outlook wyświetlał błąd „451 4.3.2 temporary server issue". Przywracanie usług trwało do 23 stycznia.
Szczerze mówiąc, tego typu awarie zdarzają się częściej, niż Microsoft by chciał. Przyczyną tym razem były problemy z infrastrukturą serwisową, które powodowały nieprawidłowe przetwarzanie ruchu sieciowego. Naprawa polegała na ponownym zbalansowaniu ruchu i odtworzeniu usług.
Co powinien zrobić helpdesk podczas awarii M365?
- Sprawdź status usług w centrum administracyjnym (jeśli masz do niego dostęp) lub na stronie
status.office365.com. - Użyj konta na Twitterze/X @MSFT365Status jako alternatywnego źródła informacji.
- Poinformuj użytkowników o awarii — masowo, nie ticket po tickecie.
- Dokumentuj wpływ na organizację (które usługi, ilu użytkowników, jak długo).
- Po przywróceniu usług — sprawdź, czy kolejki pocztowe się rozładowały.
# Sprawdź Service Health z poziomu PowerShell (wymaga modułu Microsoft.Graph)
Connect-MgGraph -Scopes "ServiceHealth.Read.All"
Get-MgServiceAnnouncementHealthOverview |
Where-Object { $_.Status -ne "ServiceOperational" } |
Select-Object Service, Status | Format-Table -AutoSize
# Pobierz aktywne incydenty
Get-MgServiceAnnouncementIssue |
Where-Object { $_.IsResolved -eq $false } |
Select-Object Title, Classification, StartDateTime |
Format-Table -AutoSize -Wrap
Problemy z pocztą po aktualizacji Outlooka z 1 lutego 2026
Po aktualizacji MSN/Outlook 365 z 1 lutego 2026 roku użytkownicy zaczęli zgłaszać problemy z dostarczaniem wiadomości — e-maile „znikały" po wysłaniu lub nie docierały do adresatów. Problem dotyczył głównie konfiguracji z wieloma kontami pocztowymi.
Diagnostyka z poziomu Exchange Online PowerShell:
# Połącz się z Exchange Online
Connect-ExchangeOnline -UserPrincipalName [email protected]
# Sprawdź ślad wiadomości z ostatnich 48 godzin
$startDate = (Get-Date).AddHours(-48)
$endDate = Get-Date
Get-MessageTrace -SenderAddress "[email protected]" -StartDate $startDate -EndDate $endDate |
Select-Object Received, SenderAddress, RecipientAddress, Subject, Status, MessageId |
Format-Table -AutoSize -Wrap
# Sprawdź szczegóły konkretnej wiadomości
Get-MessageTraceDetail -MessageTraceId "identyfikator-z-powyższego" -RecipientAddress "[email protected]" |
Select-Object Date, Event, Action, Detail | Format-Table -AutoSize -Wrap
Zarządzanie tożsamością w Microsoft Entra ID
Najczęstsze problemy z logowaniem
Problemy z logowaniem to chyba najbardziej przewidywalny typ zgłoszeń na helpdesku IT. W ekosystemie Microsoft 365 wszystko opiera się na tożsamości w Microsoft Entra ID (dawniej Azure AD), więc każdy problem z logowaniem blokuje użytkownika kompletnie — brak dostępu do poczty, Teams, SharePoint, OneDrive i wszystkiego innego. Frustracja gwarantowana.
Typowe scenariusze i diagnostyka:
1. Zablokowane konto (Account Locked Out)
Najczęstsza przyczyna: zbyt wiele nieudanych prób logowania. W środowisku hybrydowym (on-premises AD + Entra ID) blokada może pochodzić z lokalnego AD i być synchronizowana do chmury.
# Sprawdź status konta w Entra ID
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"
$user = Get-MgUser -UserId "[email protected]" -Property DisplayName,AccountEnabled,SignInActivity
$user | Select-Object DisplayName, AccountEnabled,
@{N='OstatnieLogowanie';E={$_.SignInActivity.LastSignInDateTime}}
# Sprawdź nieudane logowania w ostatnich 24 godzinach
Get-MgAuditLogSignIn -Filter "userPrincipalName eq '[email protected]' and status/errorCode ne 0" -Top 20 |
Select-Object CreatedDateTime, AppDisplayName,
@{N='Błąd';E={$_.Status.ErrorCode}},
@{N='Opis';E={$_.Status.FailureReason}},
IpAddress | Format-Table -AutoSize -Wrap
2. Wygasłe hasło
W wielu organizacjach nadal obowiązują polityki wymuszające zmianę hasła co 60-90 dni (choć coraz więcej ekspertów kwestionuje sens tego podejścia). Użytkownik dowiaduje się o tym zazwyczaj w najgorszym możliwym momencie — np. rano, gdy próbuje zalogować się do Teams na spotkanie, które zaczyna się za 2 minuty.
# Sprawdź datę ostatniej zmiany hasła i politykę wygasania
Get-MgUser -UserId "[email protected]" -Property DisplayName,LastPasswordChangeDateTime,PasswordPolicies |
Select-Object DisplayName, LastPasswordChangeDateTime, PasswordPolicies
# Resetuj hasło użytkownika (wymaga uprawnień)
$params = @{
PasswordProfile = @{
Password = "TymczasoweHaslo123!"
ForceChangePasswordNextSignIn = $true
}
}
Update-MgUser -UserId "[email protected]" -BodyParameter $params
3. Problemy z dostępem warunkowym (Conditional Access)
Polityki warunkowego dostępu potrafią blokować logowanie z nieoczekiwanych powodów — np. użytkownik próbuje zalogować się z nowego urządzenia, z innej lokalizacji geograficznej lub używając nieobsługiwanego systemu operacyjnego. To potrafi być naprawdę frustrujące do debugowania.
# Sprawdź polityki warunkowego dostępu, które zablokowały logowanie
Get-MgAuditLogSignIn -Filter "userPrincipalName eq '[email protected]' and conditionalAccessStatus eq 'failure'" -Top 5 |
Select-Object CreatedDateTime, AppDisplayName,
@{N='Polityka';E={($_.AppliedConditionalAccessPolicies | Where-Object {$_.Result -eq 'failure'}).DisplayName}},
@{N='Przyczyna';E={$_.Status.FailureReason}} |
Format-Table -AutoSize -Wrap
Zmiana przycisku „Odwołaj sesje MFA" w Entra ID
Ważna zmiana, która weszła w lutym 2026: Microsoft zastąpił przycisk „Odwołaj sesje uwierzytelniania wieloskładnikowego" przyciskiem „Odwołaj sesje". Nowy przycisk unieważnia wszystkie sesje użytkownika, nie tylko te związane z MFA. To ważna różnica — kliknięcie tego przycisku wyloguje użytkownika z każdego urządzenia i każdej aplikacji.
Używaj świadomie. Serio.
Diagnostyka Exchange Online za pomocą PowerShell
Podłączenie do Exchange Online PowerShell
Moduł Exchange Online PowerShell V3+ to podstawowe narzędzie każdego administratora M365. W 2026 roku Microsoft stopniowo wycofuje stare metody połączenia — upewnij się, że używasz aktualnego modułu.
# Zainstaluj lub zaktualizuj moduł Exchange Online
Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber
# Połącz się z Exchange Online
Connect-ExchangeOnline -UserPrincipalName [email protected]
# Sprawdź wersję modułu
Get-Module ExchangeOnlineManagement | Select-Object Version
Diagnostyka skrzynek pocztowych
Poniżej znajdziesz zestaw komend, które przydają się praktycznie codziennie przy obsłudze zgłoszeń dotyczących skrzynek pocztowych:
# Statystyki skrzynki pocztowej — rozmiar, liczba elementów
Get-MailboxStatistics -Identity "[email protected]" |
Select-Object DisplayName,
@{N='RozmiarMB';E={[math]::Round(($_.TotalItemSize.Value.ToString() -replace '[^0-9.]') / 1MB, 2)}},
ItemCount, LastLogonTime
# Sprawdź limity skrzynki
Get-Mailbox -Identity "[email protected]" |
Select-Object DisplayName,
@{N='OstrzeżenieMB';E={$_.IssueWarningQuota}},
@{N='ZakazWysyłaniaMB';E={$_.ProhibitSendQuota}},
@{N='ZakazOdbieraniaMB';E={$_.ProhibitSendReceiveQuota}}
# Znajdź duże skrzynki w organizacji (Top 10)
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics |
Sort-Object TotalItemSize -Descending | Select-Object -First 10 |
Select-Object DisplayName,
@{N='RozmiarMB';E={[math]::Round(($_.TotalItemSize.Value.ToString() -replace '[^0-9.]') / 1MB, 2)}},
ItemCount | Format-Table -AutoSize
Śledzenie wiadomości (Message Trace)
Gdy użytkownik mówi „mój e-mail nie dotarł" — a powiedzmy sobie, że to jedno z najczęstszych zdań, jakie usłyszysz na helpdesku — śledzenie wiadomości to Twoja pierwsza linia obrony. Pozwala prześledzić drogę wiadomości przez infrastrukturę Exchange Online i zidentyfikować, gdzie się zatrzymała.
# Szybkie śledzenie — ostatnie 48 godzin
Get-MessageTrace -SenderAddress "[email protected]" -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date) |
Select-Object Received, SenderAddress, RecipientAddress, Subject, Status |
Format-Table -AutoSize -Wrap
# Wyszukaj wiadomości zablokowane przez filtry antyspamowe
Get-MessageTrace -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) |
Where-Object { $_.Status -eq "FilteredAsSpam" -or $_.Status -eq "Quarantined" } |
Select-Object Received, SenderAddress, RecipientAddress, Subject, Status |
Format-Table -AutoSize -Wrap
# Sprawdź reguly transportu (transport rules), które mogły wpłynąć na wiadomość
Get-TransportRule | Where-Object { $_.State -eq "Enabled" } |
Select-Object Name, Priority, State,
@{N='Warunki';E={$_.Conditions | Out-String}} |
Format-Table -AutoSize -Wrap
Zarządzanie skrzynkami współdzielonymi
Skrzynki współdzielone (Shared Mailbox) to stały element firmowej infrastruktury pocztowej — info@, biuro@, zamówienia@ itd. Generują sporo zgłoszeń, najczęściej typu „nie mogę wysyłać z tej skrzynki" lub „zniknęła mi skrzynka współdzielona".
# Sprawdź uprawnienia do skrzynki współdzielonej
Get-MailboxPermission -Identity "[email protected]" |
Where-Object { $_.User -notlike "NT AUTHORITY\*" } |
Select-Object User, AccessRights | Format-Table -AutoSize
# Sprawdź uprawnienia Send As (Wyślij jako)
Get-RecipientPermission -Identity "[email protected]" |
Select-Object Trustee, AccessRights | Format-Table -AutoSize
# Sprawdź uprawnienia Send on Behalf (Wyślij w imieniu)
Get-Mailbox -Identity "[email protected]" |
Select-Object GrantSendOnBehalfTo
# Nadaj pełny dostęp + Send As
Add-MailboxPermission -Identity "[email protected]" -User "[email protected]" -AccessRights FullAccess -InheritanceType All
Add-RecipientPermission -Identity "[email protected]" -Trustee "[email protected]" -AccessRights SendAs -Confirm:$false
Rozwiązywanie problemów z Microsoft 365 Copilot
Wyciek danych wrażliwych przez Copilot — błąd DLP
Na początku 2026 roku ujawniono poważny błąd w politykach DLP (Data Loss Prevention) dotyczących Copilot Chat. I to nie byle jaki. Okazało się, że polityki DLP skonstruowane tak, aby uniemożliwić Copilotowi przetwarzanie e-maili i plików oznaczonych etykietami poufności, nie działały prawidłowo dla elementów w folderach Elementy wysłane i Wersje robocze. Copilot nadal zwracał zawartość oznaczoną jako poufna, mimo ustawionych blokad.
Problem został zgłoszony po raz pierwszy 21 stycznia 2026 roku, a Microsoft rozpoczął wdrażanie poprawki 10 lutego 2026.
Co powinien zrobić helpdesk:
- Sprawdź, czy Twoja organizacja korzysta z polityk DLP dla Copilot — jeśli tak, ten błąd może dotyczyć waszego środowiska.
- Poinformuj zespół bezpieczeństwa informacji o potencjalnym wycieku danych.
- Zweryfikuj, czy poprawka została zastosowana w Twoim tenancie.
- Tymczasowe obejście: ogranicz dostęp do Copilota dla użytkowników pracujących z danymi poufnymi do czasu wdrożenia poprawki.
Agent nie pojawia się w Copilot Chat w Teams
Klasyczny scenariusz: użytkownik instaluje agenta ze sklepu, a ten nie pojawia się w Copilot Chat w kliencie Microsoft Teams. To znany bug, który Microsoft dokumentuje jako „known issue". Brzmi banalnie, ale potrafi być irytujący.
Obejście:
- Przełącz się na inną rozmowę w Teams.
- Wróć do Copilot Chat.
- Agent powinien być teraz widoczny.
- Jeśli nadal nie działa — wyloguj się z Teams i zaloguj ponownie.
- W skrajnych przypadkach — wyczyść pamięć podręczną Teams.
# Czyszczenie pamięci podręcznej Teams (nowy Teams na Windows)
# Zamknij Teams, a następnie:
Remove-Item -Path "$env:LOCALAPPDATA\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams" -Recurse -Force -ErrorAction SilentlyContinue
# Dla klasycznego Teams (jeśli nadal używany):
Remove-Item -Path "$env:APPDATA\Microsoft\Teams\Cache" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:APPDATA\Microsoft\Teams\blob_storage" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:APPDATA\Microsoft\Teams\databases" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:APPDATA\Microsoft\Teams\GPUCache" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:APPDATA\Microsoft\Teams\IndexedDB" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:APPDATA\Microsoft\Teams\Local Storage" -Recurse -Force -ErrorAction SilentlyContinue
Problemy z licencjonowaniem Copilot
Copilot wymaga dedykowanej licencji Microsoft 365 Copilot. Bez niej użytkownicy nie będą mogli korzystać z funkcji AI, nawet jeśli mają licencję Microsoft 365 E3 czy E5. Co więcej, źródła wiedzy SharePoint i OneDrive wymagają aktywnej licencji Copilot dla zalogowanego użytkownika. To częsta pułapka, o której warto pamiętać przy eskalacji zgłoszeń.
# Sprawdź, czy użytkownik ma przypisaną licencję Copilot
Connect-MgGraph -Scopes "User.Read.All"
Get-MgUserLicenseDetail -UserId "[email protected]" |
Select-Object SkuPartNumber |
Where-Object { $_.SkuPartNumber -like "*COPILOT*" -or $_.SkuPartNumber -like "*copilot*" }
# Lista użytkowników z licencją Copilot
Get-MgUser -Filter "assignedLicenses/any(l:l/skuId eq 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')" -CountVariable copilotUsers -ConsistencyLevel eventual |
Select-Object DisplayName, UserPrincipalName | Format-Table -AutoSize
Zarządzanie OneDrive i SharePoint Online
Problemy z synchronizacją OneDrive
Problemy z synchronizacją OneDrive to absolutna klasyka — brakujące pliki, „ikonki-duchy", dokumenty, które nie aktualizują się w czasie rzeczywistym. Każdy technik helpdesku zna ten scenariusz aż za dobrze. Rozwiązanie najczęściej sprowadza się do odłączenia i ponownego połączenia konta OneDrive.
Procedura krok po kroku:
- Kliknij ikonę OneDrive w zasobniku systemowym.
- Wybierz Ustawienia → Konto → Odłącz ten komputer.
- Potwierdź odłączenie.
- Zaloguj się ponownie i skonfiguruj synchronizację od nowa.
Diagnostyka z wiersza poleceń:
# Sprawdź proces synchronizacji OneDrive
Get-Process OneDrive -ErrorAction SilentlyContinue |
Select-Object Name, Id, CPU, @{N='MemMB';E={[math]::Round($_.WorkingSet/1MB,1)}}
# Zresetuj OneDrive (resetuje ustawienia, nie usuwa plików)
# Dla nowego OneDrive:
& "$env:LOCALAPPDATA\Microsoft\OneDrive\onedrive.exe" /reset
# Sprawdź logi OneDrive
$logPath = "$env:LOCALAPPDATA\Microsoft\OneDrive\logs\Business1"
Get-ChildItem $logPath -Filter "*.odlgz" -ErrorAction SilentlyContinue |
Sort-Object LastWriteTime -Descending | Select-Object -First 5 |
Select-Object Name, LastWriteTime, @{N='SizeKB';E={[math]::Round($_.Length/1KB)}}
Zarządzanie uprawnieniami SharePoint Online
Problemy z uprawnieniami w SharePoint to częsty powód zgłoszeń — „nie widzę strony", „nie mogę edytować dokumentu", „nie mam dostępu do biblioteki". Diagnoza wymaga sprawdzenia uprawnień na kilku poziomach: witryny, biblioteki dokumentów i pojedynczego elementu. Brzmi prosto, ale w praktyce model uprawnień SharePoint potrafi być dość… skomplikowany.
# Połącz się z SharePoint Online
Connect-SPOService -Url "https://firma-admin.sharepoint.com"
# Sprawdź właścicieli witryny
Get-SPOSite -Identity "https://firma.sharepoint.com/sites/marketing" |
Select-Object Title, Owner, SharingCapability, StorageQuota, StorageUsageCurrent
# Sprawdź administratorów witryny
Get-SPOUser -Site "https://firma.sharepoint.com/sites/marketing" |
Where-Object { $_.IsSiteAdmin -eq $true } |
Select-Object DisplayName, LoginName | Format-Table -AutoSize
# Sprawdź ustawienia udostępniania zewnętrznego
Get-SPOSite -Identity "https://firma.sharepoint.com/sites/marketing" |
Select-Object Title, SharingCapability,
@{N='Poziom';E={
switch ($_.SharingCapability) {
'Disabled' { 'Wyłączone' }
'ExternalUserSharingOnly' { 'Tylko zaproszeni goście' }
'ExternalUserAndGuestSharing' { 'Goście i linki' }
'ExistingExternalUserSharingOnly' { 'Tylko istniejący goście' }
}
}}
Monitorowanie kondycji usług Microsoft 365
Centrum administracyjne — Service Health
Zanim zaczniesz szukać problemu na stacji użytkownika, sprawdź, czy problem nie leży po stronie Microsoftu. To rada, którą warto sobie wbić w pamięć — pozwoli zaoszczędzić mnóstwo czasu. Dashboard Service Health w centrum administracyjnym Microsoft 365 to Twoje pierwsze źródło informacji o awariach i degradacji usług.
Jak skonfigurować powiadomienia o awariach:
- Zaloguj się do centrum administracyjnego (
admin.microsoft.com). - Przejdź do Kondycja → Kondycja usługi.
- Kliknij Preferencje → E-mail.
- Włącz powiadomienia e-mail dla wybranych usług.
- Dodaj adresy e-mail zespołu helpdesku.
Automatyzacja monitorowania za pomocą PowerShell:
# Skrypt monitorujący status usług M365
Connect-MgGraph -Scopes "ServiceHealth.Read.All"
# Pobierz przegląd wszystkich usług
$health = Get-MgServiceAnnouncementHealthOverview
$issues = $health | Where-Object { $_.Status -ne "ServiceOperational" }
if ($issues) {
Write-Host "UWAGA: Wykryto problemy z usługami!" -ForegroundColor Red
$issues | ForEach-Object {
Write-Host " Usługa: $($_.Service) — Status: $($_.Status)" -ForegroundColor Yellow
}
# Pobierz szczegóły aktywnych incydentów
Get-MgServiceAnnouncementIssue |
Where-Object { $_.IsResolved -eq $false } |
Select-Object Title, Classification,
@{N='Początek';E={$_.StartDateTime}},
@{N='Usługa';E={$_.Service}} |
Format-Table -AutoSize -Wrap
} else {
Write-Host "Wszystkie usługi M365 działają prawidłowo." -ForegroundColor Green
}
Microsoft 365 Network Connectivity Test
Microsoft udostępnia narzędzie do testowania łączności sieciowej z usługami M365, dostępne pod adresem connectivity.office.com. Uruchamia serię testów sprawdzających jakość połączenia z serwerami Exchange Online, SharePoint Online i Teams.
Wyniki testu wskazują potencjalne wąskie gardła sieciowe — np. zbyt dużą latencję do serwerów front-door Microsoftu, nieoptymalne trasowanie DNS czy problemy z NAT. Naprawdę przydatne narzędzie przy diagnozowaniu skarg typu „Outlook/Teams działa wolno".
Zarządzanie licencjami Microsoft 365
Diagnostyka problemów z licencjami
„Nie mam dostępu do tej aplikacji" — ile razy to już słyszałeś? Często okazuje się, że użytkownik po prostu nie ma odpowiedniej licencji. Albo miał, ale ktoś ją przypadkowo odebrał. Albo licencja wygasła, bo karta firmowa nie przedłużyła się automatycznie. Przyczyn jest wiele, ale diagnostyka na szczęście jest dość prosta.
# Sprawdź licencje przypisane do użytkownika
Connect-MgGraph -Scopes "User.Read.All"
Get-MgUserLicenseDetail -UserId "[email protected]" |
Select-Object SkuPartNumber, SkuId |
Format-Table -AutoSize
# Sprawdź, które plany usług (service plans) są włączone/wyłączone
Get-MgUserLicenseDetail -UserId "[email protected]" |
Select-Object -ExpandProperty ServicePlans |
Where-Object { $_.ProvisioningStatus -ne "Success" } |
Select-Object ServicePlanName, ProvisioningStatus |
Format-Table -AutoSize
# Podsumowanie licencji w organizacji — ile wolnych
Get-MgSubscribedSku | Select-Object SkuPartNumber,
@{N='Zakupione';E={$_.PrepaidUnits.Enabled}},
ConsumedUnits,
@{N='Dostępne';E={$_.PrepaidUnits.Enabled - $_.ConsumedUnits}} |
Format-Table -AutoSize
Masowe przypisywanie licencji
Przy onboardingu wielu użytkowników naraz ręczne klikanie w centrum administracyjnym to strata czasu. I nerwów. PowerShell pozwala przypisać licencje hurtowo:
# Przypisz licencję Microsoft 365 E3 do listy użytkowników z pliku CSV
$skuId = (Get-MgSubscribedSku | Where-Object { $_.SkuPartNumber -eq "SPE_E3" }).SkuId
$users = Import-Csv -Path "C:\Temp\nowi_uzytkownicy.csv"
foreach ($user in $users) {
try {
Set-MgUserLicense -UserId $user.UPN -AddLicenses @(@{SkuId = $skuId}) -RemoveLicenses @()
Write-Host "OK: Licencja przypisana do $($user.UPN)" -ForegroundColor Green
} catch {
Write-Host "BŁĄD: $($user.UPN) — $($_.Exception.Message)" -ForegroundColor Red
}
}
Najlepsze praktyki helpdesku przy obsłudze zgłoszeń M365
Szybka triażacja zgłoszeń
Nie każde zgłoszenie dotyczące M365 wymaga głębokiej diagnostyki. Oto schemat szybkiej triażacji, który naprawdę pozwoli Ci zaoszczędzić czas:
- Czy problem dotyczy jednego użytkownika czy wielu? Jeśli wielu — sprawdź Service Health. To prawdopodobnie awaria po stronie Microsoftu.
- Czy problem pojawił się po aktualizacji? Jeśli tak — sprawdź historię aktualizacji Windows i Office. Poszukaj znanych problemów (Known Issues).
- Czy problem dotyczy jednej aplikacji czy wszystkich? Jedna aplikacja = problem z licencją lub konfiguracją. Wszystkie = problem z kontem lub siecią.
- Czy problem występuje w przeglądarce? Jeśli tak — wyklucza to problemy z klientem desktopowym. Jeśli nie — problem jest po stronie klienta.
- Czy problem jest powtarzalny? Poproś użytkownika o dokładne kroki reprodukcji.
Dokumentowanie rozwiązań w bazie wiedzy
Każde rozwiązane zgłoszenie dotyczące M365 powinno zasilać wewnętrzną bazę wiedzy helpdesku. Wiem, brzmi to jak nudna rada z podręcznika — ale naprawdę działa. Struktura dokumentacji powinna zawierać:
- Objaw — co użytkownik zgłasza (np. „Outlook nie otwiera się")
- Przyczyna — co powoduje problem (np. „Aktualizacja KB5078127 nie jest zainstalowana")
- Rozwiązanie — krok po kroku (np. „Zainstaluj aktualizację KB5078127")
- Obejście — tymczasowe rozwiązanie, jeśli główne nie jest od razu dostępne
- Dotyczy — wersja systemu, wersja Office, typ konta
- Data — kiedy problem został zidentyfikowany i rozwiązany
Automatyzacja powtarzalnych zadań
Wiele zadań helpdesku związanych z M365 można (i warto) zautomatyzować. Oto przykład skryptu do codziennego raportu:
# Skrypt do codziennego raportu kondycji M365
# Zapisz jako scheduled task i uruchamiaj codziennie rano
$reportDate = Get-Date -Format "yyyy-MM-dd"
$reportPath = "C:\Reports\M365Health_$reportDate.html"
Connect-MgGraph -Scopes "ServiceHealth.Read.All","User.Read.All"
$html = @"
<html>
<head><title>Raport M365 — $reportDate</title>
<style>
body { font-family: Segoe UI, sans-serif; margin: 20px; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
th { background-color: #0078d4; color: white; }
.ok { color: green; } .issue { color: red; }
</style></head>
<body>
<h1>Raport kondycji Microsoft 365 — $reportDate</h1>
"@
# Status usług
$health = Get-MgServiceAnnouncementHealthOverview
$html += "<h2>Status usług</h2><table><tr><th>Usługa</th><th>Status</th></tr>"
foreach ($svc in $health) {
$class = if ($svc.Status -eq "ServiceOperational") { "ok" } else { "issue" }
$html += "<tr><td>$($svc.Service)</td><td class='$class'>$($svc.Status)</td></tr>"
}
$html += "</table></body></html>"
$html | Out-File -FilePath $reportPath -Encoding UTF8
Write-Host "Raport zapisany: $reportPath"
Podsumowanie — kluczowe wnioski dla helpdesku IT
Administracja Microsoft 365 w 2026 roku to dynamiczne środowisko, w którym zmiany zachodzą niemal co tydzień. Oto najważniejsze punkty do zapamiętania:
- MFA jest teraz obowiązkowe — upewnij się, że wszyscy administratorzy mają skonfigurowane uwierzytelnianie wieloskładnikowe. Przygotuj procedury awaryjne (Emergency Access Accounts).
- Śledź znane problemy — po każdym Patch Tuesday sprawdzaj listę Known Issues. Proaktywna komunikacja z użytkownikami oszczędza mnóstwo czasu.
- Inwestuj w PowerShell — automatyzacja powtarzalnych zadań to klucz do efektywności. Exchange Online PowerShell i Microsoft Graph PowerShell to Twoi najlepsi przyjaciele.
- Przygotuj się na migrację Outlooka — od kwietnia 2026 rusza automatyczna migracja do nowego klienta. Inwentaryzuj dodatki COM i pliki PST już teraz.
- Monitoruj Copilot — nowe funkcje AI generują nowe typy zgłoszeń. Zadbaj o prawidłową konfigurację DLP i uprawnień.
- Buduj bazę wiedzy — dokumentuj każde rozwiązane zgłoszenie. To, co rozwiązujesz dziś, Twój kolega może napotkać jutro.
Microsoft 365 to nie jest system, który „raz skonfigurujesz i działa". To żywy organizm, który wymaga ciągłej uwagi, aktualizacji wiedzy i gotowości na niespodzianki. Ale z odpowiednimi narzędziami, procedurami i odrobiną PowerShella — da się nad tym zapanować.
Powodzenia na helpdesku!