Ongebruikte Lokale Accounts op Windows-systemen Identificeren en Beheren

Als u een IT-professional of een Managed Service Provider (MSP) bent, zou het concept van ongebruikte lokale accounts een belletje moeten doen rinkelen. Simpel gezegd zijn ongebruikte lokale accounts accounts die gedurende een bepaalde tijd niet zijn gebruikt (vaak gedefinieerd door het beleid van uw organisatie). Deze ogenschijnlijk onschuldige accounts kunnen in feite een aanzienlijk beveiligingsrisico vormen en dienen als een achterdeur voor aanvallers om ongeautoriseerde toegang tot een systeem te krijgen. Vandaag verkennen we een PowerShell-script dat is ontworpen om deze potentiële beveiligingsleemten te identificeren en te beheren.

Het script: Een gedetailleerd onderzoek

Het script Test-UnusedLocalAccounts.ps1 werkt onder PowerShell 5.1 en biedt een gestroomlijnde aanpak voor het beheren van slapende accounts. Het begint met controleren of het commando Get-LocalUser beschikbaar is op uw systeem. Dit is cruciaal omdat de hele functionaliteit op dit commando is gebouwd. Eenmaal bevestigd, doorloopt het script alle lokale accounts om de accounts te identificeren die een bepaald aantal dagen (standaard 30 dagen) geen activiteit hebben gezien. De kers op de taart? Het script stuurt een overzichtelijke lijst van deze inactieve accounts rechtstreeks naar uw console.

Het Script: Conditioneringsscript voor Ongebruikte Lokale Accounts op Windows

#Requires -Version 5.1

<#
.SYNOPSIS
    Condition script for unused local account on windows
.DESCRIPTION
    Condition script for unused local account on windows
.EXAMPLE
     -Days 30
    Checks for accounts that have not logged in for more than 30 days
.EXAMPLE
    PS C:> Test-UnusedLocalAccounts.ps1 -Days 30
    Checks for accounts that have not logged in for more than 30 days
.OUTPUTS
    None
.NOTES
    Minimum supported OS: Windows 10, Server 2016
    Release Notes:
    Initial release
By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use.
    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
    Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
#>

[CmdletBinding()]
param (
    [Parameter()]
    [int]
    $Days = 30
)

begin {
    function Test-StringEmpty {
        param([string]$Text)
        # Returns true if string is empty, null, or whitespace
        process { [string]::IsNullOrEmpty($Text) -or [string]::IsNullOrWhiteSpace($Text) }
    }
    if (-not $(Test-StringEmpty -Text $env:Days)) {
        $Days = $env:Days
    }
}
process {
    # Check if Get-LocalUser is available on this system
    if (-not $(Get-Command -Name "Get-LocalUser" -ErrorAction SilentlyContinue)) {
        Write-Error "The command Get-LocalUser is not available on this system."
        exit 2
    }

    $UnusedAccounts = Get-LocalUser |
        Where-Object {
            ($(Test-StringEmpty -Text $_.LastLogon) -or $_.LastLogon -le (Get-Date).AddDays(-$Days)) -and
            $_.Enabled
        } |
        Select-Object Name, LastLogon |
        ForEach-Object {
            [PSCustomObject]@{
                Name      = $_.Name
                LastLogon = $_.LastLogon
            }
        }
    if ($UnusedAccounts) {
        Write-Host "Accounts that have not logged in for the past $Days days:"
        $UnusedAccounts | ForEach-Object {
            Write-Host "$($_.Name): $($_.LastLogon)"
        }
        exit 1
    }
    exit 0
}
end {
    $ScriptVariables = @(
        [PSCustomObject]@{
            name           = "Days"
            calculatedName = "days"
            required       = $false
            defaultValue   = [PSCustomObject]@{
                type  = "TEXT"
                value = "30"
            }
            valueType      = "TEXT"
            valueList      = $null
            description    = "Accounts older than this number in days."
        }
    )
}

 

Toegang tot meer dan 300 scripts in de NinjaOne Dojo

Toegang Krijgen

Belangrijkste Voordelen: Verder dan de Basis

Beveiligingen

Zoals eerder vermeld, worden ongebruikte lokale accounts vaak niet bewaakt, waardoor ze potentiële toegangspunten worden voor cybercriminelen. Dit script helpt bij het proactief identificeren van deze accounts.

Efficiëntie

Wat uren handmatig werk kan kosten, kost minuten met dit script. Vooral voor MSP’s die meerdere klantaccounts beheren, is efficiĂ«ntie essentieel.

Flexibiliteit

U zit niet vast aan een periode van 30 dagen. U kunt het tijdsbestek aanpassen aan het beleid van uw organisatie.

Uitgebreide Functies

Het identificeren van ongebruikte accounts is belangrijk, maar het is net zo belangrijk om op basis van deze informatie actie te ondernemen. Het script kan ook worden geconfigureerd om de resultaten naar een bestand te exporteren of een e-mailmelding te sturen wanneer ongebruikte accounts worden ontdekt. Dit verbetert uw vermogen om deze accounts effectief bij te houden en te beheren.

Hoe te Gebruiken

Voer het volgende commando in om het script te implementeren:

Misschien bent u ook geĂŻnteresseerd in ons blogartikel over het uitschakelen van een lokale account in Windows met PowerShell.

NinjaOne. Uw Arsenaal Uitbreiden

Hoewel ons besproken PowerShell-script een hulpmiddel van onschatbare waarde is, is het slechts Ă©Ă©n stukje van de puzzel. Platformen zoals NinjaOne bieden een uitgebreidere aanpak, waarmee u niet alleen ongebruikte lokale accounts kunt beheren, maar uw hele IT-ecosysteem. NinjaOne kan zelfs scripts zoals Test-UnusedLocalAccounts.ps1 op meerdere systemen tegelijk uitvoeren.

Slotopmerkingen

In het grote geheel van cyberbeveiliging telt elk klein beetje. Ongebruikte lokale accounts op Windows-systemen lijken triviaal, maar kunnen uw achilleshiel worden als u er niets aan doet. Het script Test-UnusedLocalAccounts.ps1 is een robuuste, geautomatiseerde oplossing voor dit vaak over het hoofd geziene aspect van systeembeheer. En in combinatie met platforms als NinjaOne en andere tools beschikken IT-professionals en MSP’s over een uitgebreide toolkit om ervoor te zorgen dat hun netwerken ongecompromitteerd blijven.

Dus, daar hebt u het. Rust uzelf uit met de juiste tools en kennis om uw IT-omgeving effectief te beveiligen. Blijf deze pagina volgen voor meer IT-oplossingen voor bedrijven.

Next Steps

Building an efficient and effective IT team requires a centralized solution that acts as your core service deliver tool. NinjaOne enables IT teams to monitor, manage, secure, and support all their devices, wherever they are, without the need for complex on-premises infrastructure.

Learn more about NinjaOne Remote Script Deployment, check out a live tour, or start your free trial of the NinjaOne platform.

Categorieën:

Dit vindt u misschien ook leuk

Ă—

Zie NinjaOne in actie!

Door dit formulier in te dienen geef ik aan akkoord te gaan met het privacybeleid van NinjaOne.

NinjaOne Algemene Voorwaarden

Door op de knop “Ik accepteer” hieronder te klikken, geeft u aan dat u de volgende wettelijke voorwaarden en onze Gebruiksvoorwaarden accepteert:

  • Eigendomsrechten: NinjaOne bezit en blijft eigenaar van alle rechten, aanspraken en belangen in en op het script (inclusief het auteursrecht). NinjaOne geeft u een beperkte licentie om het script te gebruiken in overeenstemming met deze wettelijke voorwaarden.
  • Gebruiksbeperking: U mag het script alleen gebruiken voor uw legitieme persoonlijke of interne bedrijfsdoeleinden en u mag het script niet delen met derden.
  • Republicatieverbod: Het is onder geen beding toegestaan om het script opnieuw te publiceren in een scriptbibliotheek die toebehoort aan of onder controle staat van een andere softwareleverancier.
  • Garantie disclaimer: Het script wordt geleverd “zoals het is” en “zoals het beschikbaar is”, zonder enige vorm van garantie. NinjaOne belooft of garandeert niet dat het script vrij van gebreken zal zijn of dat het aan uw specifieke behoeften of verwachtingen zal voldoen.
  • Risicoaanvaarding: Het gebruik van het script is op eigen risico. U erkent dat het gebruik van het script bepaalde inherente risico’s met zich meebrengt en u begrijpt en aanvaardt elk van deze risico’s.
  • Verklaring van afstand en vrijwaring: U zult NinjaOne niet verantwoordelijk houden voor enige nadelige of onbedoelde gevolgen die voortvloeien uit uw gebruik van het script en u doet afstand van alle wettelijke of billijke rechten of rechtsmiddelen die u tegen NinjaOne kunt hebben met betrekking tot uw gebruik van het script.
  • EULA: Als u een NinjaOne-klant bent, is uw gebruik van het script onderworpen aan de licentieovereenkomst voor eindgebruikers die op u van toepassing is (EULA).