Gebruikers beheren vanuit PowerShell: een complete handleiding

  • Automatiseer de volledige levenscyclus van lokale of domeingebruikers- en groepsaccounts met PowerShell.
  • Profiteer van geavanceerde machtigingen, wachtwoordbeheer en auditing in Active Directory en Microsoft 365.
  • Verhoog de efficiëntie met scripts en CSV-bestanden voor bulkbeheer en rapportage.

gebruikers beheren vanuit PowerShell

Het beheren van gebruikers op Windows-systemen is een van de meest voorkomende – en tegelijkertijd cruciale – taken voor elke IT-beheerder. Hoewel de grafische interface bepaalde handelingen eenvoudiger maakt, kan dit via Met PowerShell bespaart u tijd, verbetert u de controle en automatiseert u complexe workflows.U denkt misschien dat dit alleen is weggelegd voor experts, maar in werkelijkheid is het gebruik van PowerShell een essentiële vaardigheid geworden voor modern systeembeheer, zowel in on-premises-, domein- als cloudomgevingen.

Dit artikel is bedoeld voor degenen die dieper in de materie willen duiken. Efficiënt beheer van gebruikersaccounts met PowerShell, voor zowel alledaagse taken als geavanceerde scenario's, van headless servers tot Microsoft 365- en SharePoint Online-omgevingen. Ik leg stap voor stap uit hoe je gebruikers en groepen kunt aanmaken, wijzigen, verwijderen, controleren en beheren, en behandel alles van eenvoudige cmdlets tot automatiseringsscripts. Laten we beginnen!

Wat zijn PowerShell-cmdlets en -modules?

Geavanceerd Windows-beheer via de opdrachtregel wordt ondersteund door cmdlets, kleine hulpprogramma's die de werkwoord-zelfstandige naamwoord-syntaxis volgen en waarmee u acties op systeemobjecten kunt uitvoeren. Om bijvoorbeeld een nieuwe lokale gebruiker aan te maken, gebruiken we Nieuwe lokale gebruiker; om gebruikers in Active Directory te bevragen, Get-ADUserElke cmdlet kan argumenten ontvangen om het gedrag aan te passen.

Leer hoe u Windows kunt repareren als er iets misgaat
Gerelateerd artikel:
Stap voor stap automatisch incrementele back-ups maken in Windows

Cmdlets zijn georganiseerd in modules, die gerelateerde opdrachten groeperen. Een van de sleutelmodules om lokale accounts te beheren is Microsoft.PowerShell.LocalAccounts, die u moet hebben geïnstalleerd (oudere versies van Windows Server vereisen mogelijk de installatie van het Windows Management Framework). Om met domeingebruikers te kunnen werken, hebt u de module ActieveDirectory, die in Windows Server meestal beschikbaar is nadat u de overeenkomstige functie hebt toegevoegd.

  • Om een ​​lijst te maken van geïnstalleerde modules runs Get-Module -ListAvailable.
  • Bekijk de cmdlets die beschikbaar zijn in een module: Get-Command -Module Microsoft.PowerShell.LocalAccounts o Get-Command -Module ActiveDirectory

Werkt de help bij en lokaliseert de benodigde opdrachten

gebruikers beheren vanuit PowerShell

Voordat u begint is het raadzaam de helpdatabase bijwerken om toegang te krijgen tot de nieuwste cmdlet-documentatie. Uitvoeren Update-Help om alles up-to-date te houden. Als je de weg kwijt bent en niet weet welke opdracht je moet gebruiken, kun je in de Help zoeken door Get-Help *usuario* of filter op trefwoorden in de lijst met opdrachten.

Dankzij de modulaire structuur van PowerShell vindt u eenvoudig wat u nodig hebt. Om bijvoorbeeld alle cmdlets te vinden die 'Gebruiker' bevatten: Get-Command *User*.

Lokale gebruikers beheren: aanmaken, wijzigen en verwijderen

Laten we de handigste opdrachten voor het beheren van accounts op computers die geen deel uitmaken van een domein, eens bekijken:

  • Bestaande lokale gebruikers bekijken: Get-LocalUser
  • Controleer een specifieke rekening: Get-LocalUser -Name "Administrador"
  • Gebruiker aanmaken zonder wachtwoord: New-LocalUser -Name "usuario1" -FullName "Nombre completo" -Description "Sin contraseña" -NoPassword
  • Maak een gebruiker aan met het wachtwoord dat in de regel wordt gevraagd:
    $password = Read-Host -AsSecureString
    New-LocalUser "usuario2" -Password $password -FullName "Usuario 2" -Description "Cuenta curso"
  • Account uitschakelen: Disable-LocalUser -Name "usuario2"
  • Gebruiker verwijderen: Remove-LocalUser -Name "usuario1"
  • Attributen wijzigen: Set-LocalUser -Name "usuario2" -Description "Nuevo rol"

Wachtwoorden en kenmerken beheren in lokale accounts

Met PowerShell kunt u wachtwoorden interactief en in bulk wijzigen:

  • Het wachtwoord van een gebruiker wijzigen:
    $password = Read-Host -AsSecureString
    Set-LocalUser -Name "usuario2" -Password $password
  • Stel in dat het wachtwoord niet verloopt: Set-LocalUser -Name "usuario2" –PasswordNeverExpires $true
  • Lokale gebruiker hernoemen: Rename-LocalUser -Name "usuario2" -NewName "nuevo.nombre"

Lokaal groepsmanagement

Met groepen kunt u collectieve rechten beheren. U kunt dit als volgt doen:

  • Raadpleeg groepen: Get-LocalGroup
  • Leden van een groep bekijken: Get-LocalGroupMember -Name "Empleados"
  • Groep aanmaken: New-LocalGroup -Name "Empleados" -Description "Grupo de empleados"
  • Gebruiker toevoegen aan groep: Add-LocalGroupMember -Group "Empleados" -Member "usuario2"
  • Gebruiker uit groep verwijderen: Remove-LocalGroupMember -Group "Empleados" -Member "usuario2"
  • Groep verwijderen: Remove-LocalGroup -Name "Empleados"

Gebruikers in domeinen beheren (AD DS) met PowerShell

In bedrijven en netwerkomgevingen is het gebruikelijk dat accounts worden beheerd vanuit een Actieve DirectoryHier wordt het beheer gedaan via de module ActieveDirectory en cmdlets beginnen meestal met "AD". Vergeet niet PowerShell als beheerder uit te voeren en de module indien nodig te importeren met Import-Module ActiveDirectory.

Basisvragen over de AD-omgeving

  • Bosinformatie: Get-ADForest
  • Domeininformatie: Get-ADDomain
  • Query-domeincontrollers: Get-ADDomainController

Gebruikersinformatie verkrijgen en controleren

  • Domeingebruikers bekijken: Get-ADUser -Filter *
  • Bekijk extra eigenschappen: Get-ADUser usuario -Properties *
  • Filter gebruikers op naam: Get-ADUser -Filter 'Name -like "jio*"' | Select Name

Gebruikers in Active Directory maken, wijzigen en verwijderen

  • Eenvoudige gebruiker aanmaken: New-ADUser -Name "Victor"
  • Maak een gebruiker met kenmerken: New-ADUser -Name "Victor" -GivenName "Victor" -Surname "Genovés" -Path "CN=Users,DC=empresa,DC=local"
  • Wachtwoord toewijzen (er moet een variabele van het type SecureString worden gebruikt):
    $userpassword=ConvertTo-SecureString -AsPlainText -Force -String "clave123"
    New-ADUser -Name "Victor" -AccountPassword $userpassword -Enabled $true
  • Gebruiker verwijderen: Remove-ADUser -Identity "CN=Victor,CN=Users,DC=empresa,DC=local"

Automatisering: bulkupload en verwijder gebruikers via CSV

Wanneer u tientallen (of honderden) accounts moet aanmaken of verwijderen, kunt u het beste een CSV-bestand voorbereiden en een lus in PowerShell gebruiken:

  • Voorbeeld van massacreatie:
    $users = Import-Csv -Path "usuarios.csv"
    foreach ($i in $users) {
    $userpassword=ConvertTo-SecureString $i.password -AsPlainText -Force
    New-ADUser -Name $i.user -AccountPassword $userpassword
    }
  • Massale verwijdering met CSV:
    $users = Import-Csv -Path "borradousuarios.csv"
    foreach ($i in $users) { Remove-ADUser -Identity $i.user }

Geavanceerde bewerkingen: lidmaatschappen, kenmerken en beveiliging

Naast basisbeheer biedt PowerShell geavanceerde mogelijkheden, zoals:

  • Gebruiker toevoegen aan AD-groep: Add-ADGroupMember "GrupoPrueba" usuario1,usuario2
  • Controleer gebruikerslidmaatschap: Get-ADUser usuario1 -Properties MemberOf
  • Aangepaste kenmerken wijzigen: Set-ADUser usuario1 -Description "Usuario de soporte"
  • Controle over inloguren (logonhours):
    Definieer eerst de byte-array die de toegestane uren weergeeft en pas vervolgens het volgende toe:
    Get-ADUser usuario1 | Set-ADUser -replace @{logonhours = $horario}

Wachtwoordbeheer en accountontgrendeling in Active Directory

  • Wachtwoord wijzigen of resetten (bekend): Set-ADAccountPassword usuario1
  • Resetten zonder de vorige te kennen: Set-ADAccountPassword usuario1 -Reset
  • Account ontgrendelen: Unlock-ADAccount usuario1 -Verbose

Groepen en lidmaatschappen beheren in Active Directory

  • Bekijk informatie over groepen: Get-ADGroup "Grupo"
  • Groepsleden bekijken: Get-ADGroupMember "Grupo"
  • Gebruiker toevoegen aan groep: Add-ADGroupMember "Grupo" usuario1
Vrouw kijkt door haar laptop
Gerelateerd artikel:
AccessChk gebruiken in Windows

Gebruikers en groepen beheren in Microsoft 365 en SharePoint Online

PowerShell is niet alleen voor on-premises omgevingen. Beheerders van Microsoft 365 en SharePoint Online kunnen account-, groeps-, machtigings- en sitebeheer automatiseren met specifieke cmdlets. Het is essentieel om eerst verbinding te maken met de omgeving (bijvoorbeeld via Connect-SPOService).

  • Lijst van sites: Get-SPOSite
  • Groepen van een site weergeven: Get-SPOSite | ForEach {Get-SPOSiteGroup -Site $_.Url}
  • Gebruikers van een site weergeven: Get-SPOSite | ForEach {Get-SPOUser -Site $_.Url}
  • Gebruiker toevoegen als beheerder van de siteverzameling:
    $tenant = "contoso"
    $site = "contosotest"
    $user = "opalc"
    Set-SPOUser -Site https://$tenant.sharepoint.com/sites/$site -LoginName $user@$tenant.com -IsSiteCollectionAdmin $true
  • Gebruiker toevoegen aan SharePoint-groep:
    Add-SPOUser -Group $group -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site
  • Gebruiker uit groep verwijderen: Remove-SPOUser -LoginName $user@$tenant.com -Site https://$tenant.sharepoint.com/sites/$site -Group $group

Geavanceerde automatisering met CSV in Microsoft 365

Om meerdere gebruikers en rechten toe te voegen of te verwijderen, is het het meest effectief om gestructureerde CSV-bestanden te maken en geautomatiseerde scripts te gebruiken. Bijvoorbeeld:

  • Groepen maken vanuit CSV:
    Import-Csv C:\O365Admin\GroupsAndPermissions.csv | ForEach {New-SPOSiteGroup -Group $_.Group -PermissionLevels $_.PermissionLevels -Site $_.Site}
  • Gebruikers toevoegen aan groepen vanuit CSV:
    Import-Csv C:\O365Admin\Users.csv | ForEach {Add-SPOUser -Group $_.Group –LoginName $_.LoginName -Site $_.Site}

Hoe genereer ik gebruikersrapporten en audits?

Een van de sterke punten van PowerShell is de mogelijkheid om informatie te exporteren en rapporten over accounts en machtigingen te maken:

  • Gebruikers van een site in SharePoint Online:
    Get-SPOUser -Site https://contoso.sharepoint.com/sites/contosotest | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append
  • Voor meerdere sites:
    Get-SPOSite | ForEach {Get-SPOUser –Site $_.Url} | Format-Table -Wrap -AutoSize | Out-File c:\UsersReport.txt -Force -Width 360 -Append

Aanbevelingen en praktische overwegingen

Voordat u grootschalige bewerkingen uitvoert, dient u altijd eerst in een laboratoriumomgeving te testen. of "mockups" om fouten te voorkomen die van invloed zijn op productiesystemen. Het is essentieel om de gewoonte aan te leren om scripts te documenteren en op te slaan, en om de toewijzing van bevoegdheden te controleren.

PowerShell is veel meer dan een opdrachtregel: het werkt met objecten, stelt je in staat om uitvoer te filteren, informatie om te leiden en dingen te automatiseren die met de grafische interface onmogelijk zouden zijn. Neem de tijd om de details van elke cmdlet te leren kennen. Get-Help en experimenteer met voorbeelden die zijn aangepast aan uw omgeving.

Hoe u de foutmelding 'BOOTMGR ontbreekt' in Windows 11 kunt oplossen
Gerelateerd artikel:
Trucs om het Windows 11-register te bewerken en verborgen functies te ontgrendelen

Door het domein te gebruiken, krijgt u meer controle, snelheid en veiligheid bij het beheren van gebruikers en groepen, zowel op lokale als cloudservers. Hierdoor worden repetitieve taken eenvoudiger en verbetert het algehele beheer van uw systemen. Deel de gids zodat andere gebruikers meer over dit onderwerp kunnen leren..