Ändern von Anmeldemeldungen unter Windows mit PowerShell

Wichtigste Erkenntnisse

  • Die Anpassung von Windows-Anmeldemeldungen verbessert die Sicherheit und die Benutzerfreundlichkeit.
  • Das bereitgestellte PowerShell-Skript bietet eine schnelle Methode zum Aktualisieren von Anmeldetiteln und -meldungen.
  • Aufgrund von Änderungen in der Systemregistrierung sind Admin-Rechte erforderlich.
  • Das Skript ist kompatibel mit Windows 10 und Windows Server 2016 oder aufwärts.
  • Obwohl Gruppenrichtlinienobjekte ähnliche Aufgaben erfüllen können, bietet dieses Skript schnellere und flexiblere Anpassungen.
  • Missbrauch, wie die Weitergabe sensibler Informationen über Login-Nachrichten, kann ein Sicherheitsrisiko darstellen.
  • Testen Sie das Skript immer in einer abgeschotteten Umgebung, bevor Sie es weitreichend implementieren.
  • Plattformen wie NinjaOne erleichtern zudem die Verwaltung und den Einsatz solcher Skripte in großen Netzen.

Angesichts der sich ständig weiterentwickelnden Sicherheitsanforderungen und der Verbesserung der Benutzerfreundlichkeit sind IT-Administratoren auf der Suche nach immer raffinierteren Tools für eine effektive Systemverwaltung. Ein oft übersehener, aber wichtiger Bereich ist die Anpassung der Anmeldemeldungen unter Windows. Die Möglichkeit, Anmeldemeldungen in Windows zu ändern, ist von entscheidender Bedeutung, da sie den Benutzer:innen die notwendigen Informationen vermitteln, die Sicherheit erhöhen und eine Ebene der Personalisierung in einer Unternehmensumgebung bieten kann.

Hintergrund

Im Mittelpunkt der heutigen Diskussion steht ein PowerShell-Skript, mit dem die Anmeldemeldung auf Windows-Systemen aktualisiert werden kann. Dieses kleine, aber leistungsstarke Skript unterstreicht eine Mischung aus Sicherheit und Verbesserung der Benutzerfreundlichkeit. Durch die Kontrolle des Titels und der Nachricht, die die Benutzer:innen bei der Anmeldung sehen, können IT-Experten und Managed Service Provider (MSPs) wichtige Updates und Warnungen weitergeben oder einfach nur eine einheitliche Marke für die Rechnerflotte schaffen.

Das Skript

#Requires -Version 5.1

<#
.SYNOPSIS
    Changes the logon title and message.
.DESCRIPTION
    Changes the logon title and message.
.EXAMPLE
     -Title "My Title" -Message "My Logon Message"
    Set the title and message.
.EXAMPLE
    PS C:> Set-LogonMessage.ps1 -Title "My Title" -Message "My Logon Message"
    Set the title and message.
.OUTPUTS
    None
.NOTES
    Minimum OS Architecture Supported: Windows 10, Windows Server 2016
    Release Notes: Renamed script and added Script Variable support, updated Set-ItemProp
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).
.COMPONENT
    OSSecurity
#>

[CmdletBinding()]
param (
    [Parameter()]
    [String]$Title,
    [Parameter()]
    [String]$Message
)

begin {
    if ($env:title -and $env:title -notlike "null") {
        $Title = $env:title
    }

    if ($env:message -and $env:message -notlike "null") {
        $Message = $env:Message
    }
    function Test-IsElevated {
        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
        $p = New-Object System.Security.Principal.WindowsPrincipal($id)
        if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))
        { Write-Output $true }
        else
        { Write-Output $false }
    }
    function Set-ItemProp {
        param (
            $Path,
            $Name,
            $Value,
            [ValidateSet("DWord", "QWord", "String", "ExpandedString", "Binary", "MultiString", "Unknown")]
            $PropertyType = "DWord"
        )
        # Do not output errors and continue
        $ErrorActionPreference = [System.Management.Automation.ActionPreference]::SilentlyContinue
        if (-not $(Test-Path -Path $Path)) {
            # Check if path does not exist and create the path
            New-Item -Path $Path -Force | Out-Null
        }
        if ((Get-ItemProperty -Path $Path -Name $Name)) {
        # Update property and print out what it was changed from and changed to
            $CurrentValue = Get-ItemProperty -Path $Path -Name $Name
            try {
                Set-ItemProperty -Path $Path -Name $Name -Value $Value -Force -Confirm:$false -ErrorAction Stop | Out-Null
            }
            catch {
                Write-Error $_
            }
            Write-Host "$Path$Name changed from $CurrentValue to $(Get-ItemProperty -Path $Path -Name $Name)"
        }
        else {
            # Create property with value
            try {
                New-ItemProperty -Path $Path -Name $Name -Value $Value -PropertyType $PropertyType -Force -Confirm:$false -ErrorAction Stop | Out-Null
            }
            catch {
                Write-Error $_
            }
            Write-Host "Set $Path$Name to $(Get-ItemProperty -Path $Path -Name $Name)"
        }
        $ErrorActionPreference = [System.Management.Automation.ActionPreference]::Continue
    }
}
process {
    if (-not (Test-IsElevated)) {
        Write-Error -Message "Access Denied. Please run with Administrator privileges."
        exit 1
    }
    try {
        Set-ItemProp -Path "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" -Name "legalnoticecaption" -Value $Title -PropertyType String
        Set-ItemProp -Path "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" -Name "legalnoticetext" -Value $Message -PropertyType String
    }
    catch {
        Write-Error $_
        exit 1
    }
}
end {
    
    
    
}

 

Zugriff auf über 300 Skripte im NinjaOne Dojo

Zugang erhalten

Detailansicht

Lassen Sie uns die Mechanik des Skripts näher betrachten:

  • Cmdlet-Bindung und Parameter: Das Skript ist als PowerShell-Funktion unter Verwendung des CmdletBinding-Attributs konzipiert. Das bedeutet, dass das Skript als wiederverwendbare Funktion verwendet werden kann und Parameter, insbesondere den Titel und die Nachricht für die Anmeldeaufforderung, akzeptieren kann.
  • Administrator-Check: Es werden zwei eingebettete Funktionen verwendet, Test-IsElevated und Set-ItemProp. Ersteres prüft, ob das Skript mit Administratorrechten ausgeführt wird, was wichtig ist, da für die Änderung von Registrierungsschlüsseln (die das Skript vornimmt) erhöhte Berechtigungen erforderlich sind.
  • Änderungen in der Registrierung: Mit der Funktion Set-ItemProp werden entweder vorhandene Registrierungswerte geändert oder neue Werte erstellt. Das Skript zielt auf zwei Primärschlüssel, legalnoticecaption (für den Titel) und legalnoticetext (für die Nachricht), die die Anmeldemeldung unter Windows bestimmen.

Potenzielle Anwendungsfälle

Stellen Sie sich vor, ein IT-Administrator eines weltweit tätigen Unternehmens möchte alle Benutzer:innen über anstehende Serverwartungen informieren. Anstatt sich auf E-Mails zu verlassen, die möglicherweise ignoriert werden, wird dieses Skript auf allen Arbeitsplätzen eingesetzt. Wenn sich die Mitarbeiter am nächsten Tag einloggen, werden sie mit der Benachrichtigung begrüßt, was eine maximale Sichtbarkeit gewährleistet.

Vergleiche

Zwar können auch Gruppenrichtlinienobjekte (GPO ) zum Festlegen von Anmeldemeldungen verwendet werden, dieses Skript bietet jedoch einen flexibleren Ansatz. GPOs brauchen unter Umständen eine gewisse Zeit, um sich zu verbreiten, und eignen sich nicht unbedingt für schnelle Änderungen. Das PowerShell-Skript hingegen kann schnell und maschinenweise ausgeführt oder über ein Systemverwaltungstool in großem Umfang bereitgestellt werden.

FAQs

  • Kann dieses Skript auf jedem Windows-Rechner ausgeführt werden? 
    Es ist für Windows 10 und Windows Server 2016 und höher konzipiert. Frühere Versionen unterstützen die betreffenden Cmdlets möglicherweise nicht.
  • Ist es notwendig, das Skript mit Administratorrechten auszuführen? 
    Ja, da es die Systemregistrierung ändert, sind erhöhte Berechtigungen erforderlich.

Auswirkungen

Während das Skript die Kommunikation und das Branding unterstützt, kann ein Missbrauch zu Verwirrung oder sogar zu potenziellen Sicherheitsproblemen führen. Es ist nicht ratsam, sensible Informationen in einer Login-Nachricht zu verbreiten. Außerdem können häufige Änderungen dazu führen, dass die Benutzer:innen gegenüber diesen Botschaften desensibilisiert werden, was ihre Wirkung abschwächen kann.

Empfehlungen

  • Achten Sie auf Klarheit und Kürze in Ihren Login-Nachrichten.
  • Testen Sie das Skript in einer kontrollierten Umgebung, bevor Sie es breit einsetzen.
  • Führen Sie regelmäßig Sicherungskopien Ihrer Systemregistrierung durch.

Abschließende Überlegungen

Die Verwendung von Tools wie diesem Skript ist nur ein Teil des umfassenden IT-Management-Toolsets. Plattformen wie NinjaOne unterstützen diese Bemühungen, indem sie eine integrierte Umgebung für den Einsatz, die Verwaltung und die Überwachung solcher Skripte in großen Netzwerken bereitstellen und so Konsistenz, Sicherheit und eine verbesserte Benutzerfreundlichkeit gewährleisten.

 

Nächste Schritte

Der Aufbau eines effizienten und effektiven IT-Teams erfordert eine zentralisierte Lösung, die als einheitliches Tool zur Bereitstellung von IT-Dienstleistungen fungiert. NinjaOne ermöglicht es IT-Teams, alle Geräte zu überwachen, zu verwalten, zu sichern und zu unterstützen, unabhängig vom Standort, ohne dass eine komplexe Infrastruktur vor Ort erforderlich ist.

Erfahren Sie mehr über NinjaOne Remote Script Deployment, sehen Sie sich eine Live-Tour an oder starten Sie Ihre kostenlose Testversion unserer NinjaOne Plattform.

Kategorien:

Das könnte Sie auch interessieren

×

Sehen Sie NinjaOne in Aktion!

Mit dem Absenden dieses Formulars akzeptiere ich die Datenschutzerklärung von NinjaOne.

NinjaOne Allgemeine Geschäftsbedingungen für Skripte

Indem Sie unten auf die Schaltfläche “Ich akzeptiere” klicken, erklären Sie Ihr Einverständnis mit den folgenden rechtlichen Bedingungen sowie mit unseren Nutzungsbedingungen:

  • Eigentumsrechte: NinjaOne besitzt und wird weiterhin alle Rechte, Titel und Interessen an dem Skript (einschließlich des Urheberrechts) behalten. NinjaOne gewährt Ihnen eine eingeschränkte Lizenz zur Nutzung des Skripts in Übereinstimmung mit diesen rechtlichen Bedingungen.
  • Einschränkung der Nutzung: Sie dürfen das Skript nur für Ihre legitimen persönlichen oder internen Geschäftszwecke verwenden und es nicht an Dritte weitergeben.
  • Verbot der Wiederveröffentlichung: Sie sind unter keinen Umständen berechtigt, das Skript in einer Skriptbibliothek, die einem anderen Softwareanbieter gehört oder von diesem kontrolliert wird, erneut zu veröffentlichen.
  • Gewährleistungsausschluss: Das Skript wird “wie gesehen” und “wie verfügbar” bereitgestellt, ohne jegliche Garantie. NinjaOne gibt keine Versprechen oder Garantien, dass das Skript frei von Fehlern ist oder dass es Ihre speziellen Bedürfnisse oder Erwartungen erfüllt.
  • Risikoübernahme: Die Verwendung des Skripts erfolgt auf eigene Gefahr. Sie erkennen an, dass die Nutzung des Skripts mit bestimmten Risiken verbunden ist, und Sie verstehen und übernehmen jedes dieser Risiken.
  • Verzicht und Freigabe: Sie machen NinjaOne nicht für nachteilige oder unbeabsichtigte Folgen verantwortlich, die sich aus Ihrer Nutzung des Skripts ergeben, und Sie verzichten auf alle gesetzlichen oder billigkeitsrechtlichen Rechte oder Rechtsmittel, die Sie gegen NinjaOne im Zusammenhang mit Ihrer Nutzung des Skripts haben könnten.
  • EULA: Wenn Sie ein NinjaOne-Kunde sind, unterliegt Ihre Nutzung des Skripts dem für Sie geltenden Endbenutzer-Lizenzvertrag (EULA).