Hitta spökkonton i Microsoft Entra ID
Ghostbuster för Entra ID är ett gratis skript som hittar konton som ingen använder, personer som har slutat men fortfarande kan logga in, administratörer utan MFA och betalda licenser på spökkonton. Det körs på din egen dator och ändrar ingenting.
Version 0.1.0 · Python 3.8+ · Windows, macOS och Linux · MIT-licens
Vad det kontrollerar
Ghostbuster läser er tenant via Microsoft Graph med behörigheter som bara läser.
Konton som ingen använder
Medlemmar som inte har loggat in på 90 dagar eller aldrig har gjort det. Lägg till en lista från HR så hittar det även personer som har slutat men fortfarande kan logga in.
Gäster
Gäster som aldrig accepterade sin inbjudan eller inte har loggat in på månader, och gäster med adminroller.
Adminroller
Alla med en adminroll, även roller via grupper och PIM. För många globala administratörer, inaktiva administratörer och adminkonton som synkas från Active Directory.
Inloggningssäkerhet
Om MFA krävs via säkerhetsstandarder eller villkorsstyrd åtkomst, och vilka konton som inte har registrerat MFA.
Licenser
Betalda licenser på inaktiva och inaktiverade konton, och licenser ni betalar för men inte har tilldelat. Lägg till era priser för att se kostnaden per år.
Appar och hemligheter
Appar som kan läsa alla brevlådor eller ändra katalogen, och apphemligheter som har gått ut eller snart gör det.
Det här får du
När skanningen är klar öppnas rapporten i din webbläsare.
- En sammanfattning med rekommenderade åtgärder, det mest brådskande först
- Möjliga spökkonton, gäster, adminroller, MFA, licenser och appar, konto för konto
- Spara som PDF för att dela med teamet eller ledningen
- Kalkylblad och färdiga PowerShell-kommandon för att åtgärda varje fynd. Alla är bortkommenterade tills du har granskat dem

Det här behöver du
De flesta IT-administratörer har redan allt. Det enda extra steget är ett engångsgodkännande från en administratör.
En dator med Python 3.8 eller senare
Windows, macOS eller Linux. Mac och de flesta Linux-datorer har redan Python. På Windows kör du winget install Python.Python.3.12 eller hämtar det från python.org. Inget annat behöver installeras.
Ett konto som kan läsa katalogen
Global läsare (Global Reader) räcker, och den rollen kan inte ändra något. Om er tenant saknar Entra ID P1 behöver kontot även rollen Rapportläsare (Reports Reader), så att Ghostbuster kan läsa Microsoft 365-användningen per person.
Ett engångsgodkännande av en administratör
Första gången godkänner en global administratör, administratör för privilegierade roller eller administratör för molnprogram läsbehörigheterna nedan för hela organisationen. Därefter kan alla med rollen Global läsare köra det.
Entra ID P1 eller P2 för hela bilden
Inloggningsaktivitet och MFA-registrering kräver Entra ID P1 eller P2, som ingår i Microsoft 365 Business Premium, E3 och E5. Utan dem använder Ghostbuster Microsoft 365-användning i stället och hoppar över MFA-kontrollen.
Läsbehörigheterna som skriptet ber om
| Directory.Read.All | Användare, gäster, grupper, adminroller, appar och licenser |
| AuditLog.Read.All | Senaste inloggning och MFA-registrering |
| Reports.Read.All | Microsoft 365-användning, när inloggningsaktivitet saknas |
| Policy.Read.All | Säkerhetsstandarder och principer för villkorsstyrd åtkomst |
| RoleManagement.Read.Directory | Tilldelade adminroller, även behöriga roller i PIM |
Alla är läsbehörigheter. Ingen av dem låter Ghostbuster ändra något.
Så kör du det
- 1
Ladda ner och kör skriptet
Öppna en terminal (PowerShell på Windows, Terminal på Mac) och kör:
irm https://adcyma.com/tools/ghostbuster-entra.py -OutFile ghostbuster-entra.py python ghostbuster-entra.py - 2
Logga in med Microsoft
Ett webbläsarfönster öppnas med Microsofts vanliga inloggning. Appen som ber om åtkomst heter Microsoft Graph Command Line Tools, samma app som Microsofts egen Graph PowerShell använder. Första gången ser en administratör listan med läsbehörigheter: kryssa i Godkänn för organisationens räkning och acceptera.
- 3
Vänta på skanningen
Skriptet läser användare, roller, licenser, principer och appar. De flesta tenants tar under en minut. Tenants med tiotusentals användare tar några minuter, eftersom Microsoft begränsar hur snabbt inloggningsdata kan läsas.
- 4
Läs rapporten
Rapporten öppnas i din webbläsare. Välj Spara som PDF för att spara en kopia eller dela den med din chef. Bredvid finns kalkylblad och en fil med föreslagna åtgärder, alla bortkommenterade tills du har granskat dem.
- 5
Valfritt: jämför med HR och sätt pris på licenserna
Fyll i employment_status (active, left eller service) i people.csv och kör igen med --mapping people.csv för att hitta personer som har slutat men fortfarande kan logga in. Lägg till --prices prices.csv med era licenspriser för att se vad oanvända licenser kostar per år.
Användbara flaggor
| --tenant contoso.com | Skanna en viss tenant, till exempel om du administrerar flera. |
| --days 180 | Ändra aktivitetsfönstret. Standard är 90 dagar. |
| --mapping people.csv | Jämför kontona med en lista från HR: kolumnerna user_principal_name och employment_status. |
| --prices prices.csv | Sätt pris på oanvända licenser: kolumnerna sku, monthly_price och currency. |
| --device-code | Logga in med en kod från en annan enhet, för servrar utan webbläsare. Säkerhetsstandarder och många principer för villkorsstyrd åtkomst blockerar det, så använd webbläsaren om du kan. |
| --client-id <app-id> | Logga in med er egen appregistrering i stället för Microsofts. Den behöver omdirigerings-URI:n http://localhost. |
Kontrollera filen
SHA-256-summan för den aktuella versionen:
26489102fbc55282daec1878a7d1d9e9e0d5a5e03522dc2819b6fda589b63711Jämför med shasum -a 256 ghostbuster-entra.py på macOS och Linux, eller Get-FileHash ghostbuster-entra.py på Windows.
Privat från början
Bara läsning
Det ber bara om läsbehörigheter och ändrar aldrig något i Entra ID. Åtgärder skrivs som kommandon som du själv granskar och kör.
Pratar bara med Microsoft
Skriptet loggar in hos Microsoft och läser via Microsoft Graph. Resultatet sparas i en mapp på din dator. Ingenting skickas till Adcyma.
Källkod du kan läsa
En enda Python-fil utan extra paket. Öppna den i valfri editor och läs vad den gör innan du kör den.
Visa källkodenFritt att använda och ändra
Ghostbuster för Entra ID skapades av Jens Naterman på Adcyma och delas under MIT-licensen. Använd det, kopiera det, ändra det och dela det, även internt på ert företag eller i kommersiellt arbete. Det enda villkoret: behåll copyright-texten som nämner den ursprungliga upphovspersonen. Hela licensen finns överst i skriptet.
Läs MIT-licensenSkannar ni även GitHub? Ghostbuster för GitHub gör samma sak för era repositories.
Vanliga frågor
Nej. Det ber bara om läsbehörigheter. Föreslagna åtgärder skrivs till en fil som bortkommenterade PowerShell-kommandon, så inget ändras förrän du har granskat och kört dem själv.
Att läsa hela katalogen, inloggningsaktivitet och principer kräver behörigheter som Microsoft bara låter en administratör godkänna för organisationen. Godkännandet gäller läsbehörigheter och behövs bara en gång.
Nej, men ni får ut mer med det. P1 eller P2, som ingår i Microsoft 365 Business Premium, E3 och E5, ger senaste inloggning och MFA-registrering för varje konto. Utan det använder Ghostbuster Microsoft 365-användning, som bara täcker licensierade användare.
Nej. Skriptet pratar bara med Microsofts inloggningstjänst och Microsoft Graph, och sparar resultatet på din dator. Adcyma ser det aldrig.
Det är appen som Microsofts egen Graph PowerShell använder. Ghostbuster loggar in via den så att du inte behöver registrera något. Vill du hellre använda en egen appregistrering anger du dess ID med --client-id.
Ja. Det är MIT-licensierat, så ni kan ändra det, köra det på ert företag eller bygga vidare på det. Behåll copyright-texten som nämner Jens Naterman på Adcyma.
Vill du automatisera det här, och mer?
Ghostbuster är en engångskontroll. Adcyma kör de här kontrollerna varje dag för Entra ID och Active Directory, och sköter onboarding, offboarding och åtkomstgranskningar så att spökkonton inte samlas på hög.