Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

MS14-025: Sicherheitsrisiko in Gruppenrichtlinieneinstellungen könnte Rechteerweiterungen ermöglichen: 13. Mai 2014

EINFÜHRUNG
Microsoft hat das Sicherheitsbulletin MS14-025 veröffentlicht. Hier finden Sie weitere Informationen zu diesem Sicherheitsbulletin:

So erhalten Sie Hilfe und Support zu diesem Sicherheitsupdate

Hilfe bei der Installation des Updates:Support für Microsoft Update

Sicherheitslösungen für IT-Profis:TechNet Security – Problembehandlung und Support

Schützen Sie Ihren Windows-basierten Computer vor Viren und Schadsoftware:Safety and Security Center

Lokaler Support entsprechend Ihrem Land:Internationaler Support

Weitere Informationen

Bekannte Probleme und weitere Informationen zu diesem Update

Die folgenden Artikel enthalten weitere Informationen zu diesem Sicherheitsupdate hinsichtlich der einzelnen Produktversionen. Die Artikel können Informationen zu bekannten Problemen enthalten. Wenn dies der Fall ist, wird das bekannte Problem unter dem entsprechenden Artikellink aufgelistet.
  • 2928120 MS14-025: Beschreibung des Sicherheitsupdates für Windows Remoteserver-Verwaltungstools für Systeme, auf denen Update 2919355 installiert worden ist: 13. Mai 2014
  • 2961899 MS14-025: Beschreibung des Sicherheitsupdates für Windows Remoteserver-Verwaltungstools für Systeme, auf denen Update 2919355 nicht installiert worden ist: 13. Mai 2014
Gruppenrichtlinieneinstellungen

Überblick

In einigen Gruppenrichtlinieneinstellungen kann ein Kennwort gespeichert werden. Diese Funktionalität wird entfernt, weil das Kennwort nicht sicher gespeichert wurde. In diesem Artikel werden die Benutzeroberflächenänderungen und die ggf. verfügbaren Problemumgehungen beschrieben.

In den folgenden Gruppenrichtlinieneinstellungen können keine Benutzernamen und Kennwörter mehr gespeichert werden:
  • Laufwerkzuordnungen
  • Lokale Benutzer und Gruppen
  • Geplante Aufgaben
  • Dienste
  • Datenquellen
Dies wirkt sich auf das Verhalten aller vorhandenen Gruppenrichtlinienobjekte in Ihrer Umgebung aus, die sich auf Kennwörter stützen, die in diesen Einstellungen enthalten sind. Damit wird auch das Erstellen neuer Gruppenrichtlinieneinstellungen unter Verwendung dieser Funktionalität verhindert.

Für Laufwerkzuordnungen, lokale Benutzer und Gruppen und Dienste können Sie u. U. ähnliche Ziele durch andere sicherere Funktionen in Windows erreichen.

Für geplante Aufgaben und Datenquellen können Sie nicht die gleichen Ziele erreichen wie mit der unsicheren Funktionalität der in Gruppenrichtlinieneinstellungen enthaltenen Kennwörter.
Szenarien
Diese Änderung wirkt sich auf die folgenden Gruppenrichtlinieneinstellungen aus. Jede Einstellung wird zunächst kurz und dann ausführlicher behandelt. Zudem werden Umgehungsmöglichkeiten angegeben, mit denen Sie die gleichen Aufgaben ausführen können.
Betroffene Einstellung Betrifft BenutzerBetrifft Computer
Verwaltung lokaler BenutzerJaJa
Zugeordnete LaufwerkeJa
Nein
Dienste
Nein
Ja
Geplante Aufgaben (höhere Ebene)JaJa
Geplante Aufgaben (untergeordnete Ebenen)JaJa
Sofortige Aufgaben (höhere Ebene)JaJa
Sofortige Aufgaben (untergeordnete Ebenen)JaJa
DatenquellenJaJa

Zusammenfassung der Änderungen

  • Die Kennwortfelder in allen betroffenen Einstellungen werden deaktiviert. Administratoren können keine neuen Einstellungen unter Verwendung dieser Kennwortfelder erstellen.
  • Das Feld für den Benutzernamen wird in einigen Einstellungen deaktiviert.
  • Vorhandene Einstellungen, die ein Kennwort enthalten, können nicht aktualisiert werden. Sie können, je nach der betreffenden Einstellung, nur gelöscht oder deaktiviert werden.
  • Das Verhalten der Aktionen "Löschen" und "Deaktivieren" wurde für die Einstellungen nicht geändert.
  • Wenn ein Administrator eine Einstellung öffnet, die das CPassword-Attribut enthält, wird das folgende Dialogfeld angezeigt, um den Administrator über die kürzliche Änderung zu informieren. Beim Versuch, Änderungen von neuen oder vorhandenen Einstellungen, die das CPassword-Attribut erfordern, zu speichern, wird das gleiche Dialogfeld angezeigt. Nur die Aktionen "Löschen" und "Deaktivieren" bewirken keine Anzeige von Dialogfeldern mit Warnungen.





Szenario 1: Verwaltung lokaler Benutzer

Die Einstellung "Verwaltung lokaler Benutzer" wird häufig zum Erstellen lokaler Administratoren verwendet, die über ein bekanntes Kennwort auf dem Computer verfügen. Dieses Feature ist wegen der Art und Weise, wie in Gruppenrichtlinieneinstellungen Kennwörter gespeichert werden, nicht sicher. Daher ist diese Funktion nicht mehr verfügbar. Die folgenden Einstellungen sind betroffen:
  • Computerkonfiguration -> Systemsteuerungseinstellungen -> Lokale Benutzer und Gruppen -> Neu -> Lokaler Benutzer
  • Benutzerkonfiguration -> Systemsteuerungseinstellungen -> Lokale Benutzer und Gruppen -> Neu -> Lokaler Benutzer

Wichtige Änderungen

Aktion: Erstellen oder Ersetzen
  • Die Felder Benutzername, Kennwort und Kennwort bestätigen sind deaktiviert.
  • Das Warndialogfeld wird angezeigt, wenn der Administrator eine vorhandene Einstellung, die ein Kennwort enthält, öffnet oder Änderungen daran vornimmt und zu speichern versucht.




Aktion: Aktualisieren
  • Die Felder Kennwort und Kennwort bestätigen sind deaktiviert.
  • Das Warndialogfeld wird angezeigt, wenn der Administrator eine vorhandene Einstellung, die ein Kennwort enthält, öffnet oder Änderungen daran vornimmt und zu speichern versucht.




Aktion: Löschen
  • Keine Änderung im Verhalten

Problemumgehungen

Für alle, die früher die Kennwörter für lokale Administratoren über Gruppenrichtlinieneinstellungen festgelegt haben, wird das folgende Skript als Alternative zu CPassword bereitgestellt. Kopieren Sie den Inhalt, und speichern Sie ihn in einer neuen Windows PowerShell-Datei. Führen Sie das Skript dann wie im Skript im Abschnitt .EXAMPLE angegeben aus.

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. In diesem Artikel wird vorausgesetzt, dass Sie mit der in den Beispielen verwendeten Programmiersprache und mit den zum Erstellen und Debuggen von Prozeduren verwendeten Tools vertraut sind. Die Mitarbeiter der Microsoft Product Support Services erklären Ihnen gerne die Funktionsweise einer bestimmten Prozedur. Die Mitarbeiter werden diese Beispiele jedoch weder modifizieren, um zusätzliche Funktionalität zu schaffen, noch Prozeduren entwickeln, die auf Ihre spezifischen Bedürfnisse zugeschnitten sind.

 function Invoke-PasswordRoll{<#.ZUSAMMENFASSUNGDieses Skript kann verwendet werden, um die Kennwörter lokaler Konten auf Remotecomputern auf zufällig gewählte Kennwörter festzulegen. Die Benutzername/Kennwort/Server-Kombination wird in einer CSV-Datei gespeichert.Die in der CSV-Datei gespeicherten Kontokennwörter können mit einem vom Administrator gewählten Kennwort verschlüsselt werden, um sicherzustellen, dass die Kontokennwörter nicht als Klartextdaten auf den Datenträger geschrieben werden.Die verschlüsselten Kennwörter können mit einer anderen Funktion dieser Datei entschlüsselt werden: ConvertTo-CleartextPasswordFunktion: Invoke-PasswordRollAutor: MicrosoftVersion: 1.0.BESCHREIBUNGDieses Skript kann verwendet werden, um die Kennwörter lokaler Konten auf Remotecomputern auf zufällig gewählte Kennwörter festzulegen. Die Benutzername/Kennwort/Server-Kombination wird in einer CSV-Datei gespeichert.Die in der CSV-Datei gespeicherten Kontokennwörter können mit einem vom Administrator gewählten Kennwort verschlüsselt werden, um sicherzustellen, dass die Kontokennwörter nicht als Klartextdaten auf den Datenträger geschrieben werden.Die verschlüsselten Kennwörter können mit einer anderen Funktion dieser Datei entschlüsselt werden: ConvertTo-CleartextPassword.PARAMETER ComputerNameEin Array von Computern, auf denen das Skript mit PowerShell-Remoting ausgeführt werden soll..PARAMETER LocalAccountsEin Array von lokalen Konten, deren Kennwort geändert werden soll..PARAMETER TsvFileNameDie Datei, in die die Benutzername/Kennwort/Server-Kombinationen ausgegeben werden..PARAMETER EncryptionKeyEin Kennwort zum Verschlüsseln der TSV-Datei. Verwendet AES-Verschlüsselung Nur die in der TSV-Datei gespeicherten Kennwörter werden verschlüsselt, Benutzername und Servername bleiben Klartextdaten..PARAMETER PasswordLengthDie Länge der Kennwörter, die zufällig für lokale Konten generiert werden..PARAMETER NoEncryptionDie in der TSV-Datei gespeicherten Kontokennwörter werden nicht verschlüsselt. Dadurch werden Klartext-Kennwörter auf den Datenträger geschrieben.	.BEISPIEL. .\Invoke-PasswordRoll.ps1    #Lädt die Funktionen in dieser SkriptdateiInvoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator","CustomLocalAdmin") -TsvFileName "LocalAdminCredentials.tsv" -EncryptionKey "Password1"Stellt Verbindungen mit allen in der Datei "computerlist.txt" gespeicherten Computern her. Wenn das lokale Konto "Administrator" und/oder das Konto "CustomLocalAdmin" auf dem System vorhanden sind, wird deren Kennwortin ein zufällig generiertes, 20 Zeichen (Standard) langes Kennwort geändert. Die Benutzername/Kennwort/Server-Kombinationen werden in der Datei "LocalAdminCredentials.tsv" gespeichert, und die Kontokennwörter werden mit der AES-Verschlüsselung unter Verwendung des Kennworts "Password1" verschlüsselt..BEISPIEL. .\Invoke-PasswordRoll.ps1    #Lädt die Funktionen in dieser SkriptdateiInvoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator") -TsvFileName "LocalAdminCredentials.tsv" -NoEncryption -PasswordLength 40Stellt Verbindungen mit allen in der Datei "computerlist.txt" gespeicherten Computern her. Wenn das lokale Konto "Administrator" auf dem System vorhanden ist, wird dessen Kennwort in ein zufällig generiertes,40 Zeichen langes Kennwort geändert. Die Benutzername/Kennwort/Server-Kombinationen werden in der Datei "LocalAdminCredentials.tsv" unverschlüsselt gespeichert..HINWEISEVoraussetzungen: -PowerShellv2 oder höher müssen installiert sein.-PowerShell-Remoting muss auf allen Systemen, für die das Skript ausgeführt wird, aktiviert sein.Skriptverhalten:-Wenn auf dem System ein lokales Konto vorhanden, aber nicht im LocalAccounts-Parameter angegeben worden ist, dann gibt das Skript eine Warnung auf dem Bildschirm aus, um Sie auf dieses lokale Konto aufmerksam zu machen. Das Skript wird in diesem Fall weiter ausgeführt.-Wenn im LocalAccounts-Parameter ein lokales Konto angegeben wurde, das Konto aber nicht auf dem Computer vorhanden ist, dann geschieht nichts (es wird KEIN Konto erstellt).-MIt der in dieser Datei enthaltenen Funktion ConvertTo-CleartextPassword können die Kennwörter, die verschlüsselt in der TSV-Datei gespeichert werden, entschlüsselt werden.-Wenn mit einem in ComputerName angegebenen Computer keine Verbindung hergestellt werden kann, gibt PowerShell eine Fehlermeldung aus.-Microsoft empfiehlt Firmen, die Kennwörter für alle lokalen Konten und Domänenkonten regelmäßig zu ändern.#>    [CmdletBinding(DefaultParameterSetName="Encryption")]    Param(        [Parameter(Mandatory=$true)]        [String[]]        $ComputerName,        [Parameter(Mandatory=$true)]        [String[]]        $LocalAccounts,        [Parameter(Mandatory=$true)]        [String]        $TsvFileName,        [Parameter(ParameterSetName="Encryption", Mandatory=$true)]        [String]        $EncryptionKey,        [Parameter()]        [ValidateRange(20,120)]        [Int]        $PasswordLength = 20,        [Parameter(ParameterSetName="NoEncryption", Mandatory=$true)]        [Switch]        $NoEncryption    )    #Alle erforderlichen .net-Klassen laden    Add-Type -AssemblyName "System.Web" -ErrorAction Stop    #Dieser Skriptblock wird auf jedem in ComputerName angegebenen Computer ausgeführt    $RemoteRollScript = {        Param(            [Parameter(Mandatory=$true, Position=1)]            [String[]]            $Passwords,            [Parameter(Mandatory=$true, Position=2)]            [String[]]            $LocalAccounts,            #Hiermit kann der Servername aufgezeichnet werden, mit dem das Skript verbunden war, damit er verfügbar ist, wenn die DNS-Einträge fehlerhaft sind.            [Parameter(Mandatory=$true, Position=3)]            [String]            $TargettedServerName        )        $LocalUsers = Get-WmiObject Win32_UserAccount -Filter "LocalAccount=true" | Foreach {$_.Name}        #Prüfen, ob auf dem Computer lokale Benutzerkonten vorhanden sind, deren Kennwörter nicht durch dieses Skript geändert werden        foreach ($User in $LocalUsers)        {            if ($LocalAccounts -inotcontains $User)            {                Write-Warning "Server: '$($TargettedServerName)' hast ein lokales Konto '$($User)' dessen Kennwort NICHT durch dieses Skript geändert wird"            }        }        #Das Kennwort für jedes angegebene lokale Konto ändern, das auf diesem Server vorhanden ist        $PasswordIndex = 0        foreach ($LocalAdmin in $LocalAccounts)        {            $Password = $Passwords[$PasswordIndex]            if ($LocalUsers -icontains $LocalAdmin)            {                try                {                    $objUser = [ADSI]"WinNT://localhost/$($LocalAdmin), user"                    $objUser.psbase.Invoke("SetPassword", $Password)                    $Properties = @{                        TargettedServerName = $TargettedServerName                        Username =  $LocalAdmin                        Password = $Password                        RealServerName = $env:computername                    }                    $ReturnData = New-Object PSObject -Property $Properties                    Write-Output $ReturnData                }                catch                {                    Write-Error "Fehler beim Ändern des Kennworts für den Benutzer:$($LocalAdmin) auf dem Server:$($TargettedServerName)"                }            }            $PasswordIndex++        }    }    #Das Kennwort auf dem Client, auf dem dieses Skript ausgeführt wird, und nicht auf dem Remotecomputer generieren System.Web.Security ist im .NET-Clientprofil nicht verfügbar. Durch diesen Aufruf    #    wird auf dem Client, auf dem das Skript ausgeführt wird, sichergestellt, dass .NET Runtime nur auf 1 Computer (statt auf allen Systemen, auf denen das Kennwort geändert wird) vollständig installiert werden muss.    function Create-RandomPassword    {        Param(            [Parameter(Mandatory=$true)]            [ValidateRange(20,120)]            [Int]            $PasswordLength        )        $Password = [System.Web.Security.Membership]::GeneratePassword($PasswordLength, $PasswordLength / 4)        #Dies sollte nie fehlschlagen, aber sicherheitshalber wird hier trotzdem eine Funktionsüberprüfung eingefügt        if ($Password.Length -ne $PasswordLength)        {            throw new Exception("Das von GeneratePassword zurückgegebene Kennwort hat nicht die erforderliche Länge. Erforderliche Länge: $($PasswordLength). Generierte Länge: $($Password.Length)")        }        return $Password    }    #Hauptfunktion - Kennwort generieren und an Computer übertragen, um das Kennwort der angegebenen lokalen Konten zu ändern    if ($PsCmdlet.ParameterSetName -ieq "Encryption")    {        try        {            $Sha256 = new-object System.Security.Cryptography.SHA256CryptoServiceProvider            $SecureStringKey = $Sha256.ComputeHash([System.Text.UnicodeEncoding]::Unicode.GetBytes($EncryptionKey))        }        catch        {            Write-Error "Fehler beim Erstellen des TSV-Verschlüsselungsschlüssel" -ErrorAction Stop        }    }    foreach ($Computer in $ComputerName)    {        #Für jedes Konto, das geändert werden kann, muss 1 Kennwort generiert werden        $Passwords = @()        for ($i = 0; $i -lt $LocalAccounts.Length; $i++)        {            $Passwords += Create-RandomPassword -PasswordLength $PasswordLength        }        Write-Output "Verbindung herstellen mit Server '$($Computer)' zum Zurücksetzen der angegebenen lokalen Administratorkennwörter"        $Result = Invoke-Command -ScriptBlock $RemoteRollScript -ArgumentList @($Passwords, $LocalAccounts, $Computer) -ComputerName $Computer        #Wenn Verschlüsselung gewünscht ist, das Kennwort mit dem vom Benutzer angegebenen Kennwort verschlüsseln, bevor es auf den Datenträger geschrieben wird        if ($Result -ne $null)        {            if ($PsCmdlet.ParameterSetName -ieq "NoEncryption")            {                $Result | Select-Object Username,Password,TargettedServerName,RealServerName | Export-Csv -Append -Path $TsvFileName -NoTypeInformation            }            else            {                #Filters out $null entries returned                $Result = $Result | Select-Object Username,Password,TargettedServerName,RealServerName                foreach ($Record in $Result)                {                    $PasswordSecureString = ConvertTo-SecureString -AsPlainText -Force -String ($Record.Password)                    $Record | Add-Member -MemberType NoteProperty -Name EncryptedPassword -Value (ConvertFrom-SecureString -Key $SecureStringKey -SecureString $PasswordSecureString)                    $Record.PSObject.Properties.Remove("Password")                    $Record | Select-Object Username,EncryptedPassword,TargettedServerName,RealServerName | Export-Csv -Append -Path $TsvFileName -NoTypeInformation                }            }        }    }}function ConvertTo-CleartextPassword{<#.ZUSAMMENFASSUNGMit dieser Funktion können Kennwörter entschlüsselt werden, die von der Funktion Invoke-PasswordRoll verschlüsselt gespeichert wurden.Funktion: ConvertTo-CleartextPasswordAutor: MicrosoftVersion: 1.0.BESCHREIBUNGMit dieser Funktion können Kennwörter entschlüsselt werden, die von der Funktion Invoke-PasswordRoll verschlüsselt gespeichert wurden..PARAMETER EncryptedPasswordDas verschlüsselte Kennwort, das in einer TSV-Datei gespeichert wurde..PARAMETER EncryptionKeyDas zum Verschlüsseln verwendete Kennwort..BEISPIEL. .\Invoke-PasswordRoll.ps1    #Lädt die Funktionen in dieser SkriptdateiConvertTo-CleartextPassword -EncryptionKey "Password1" -EncryptedPassword 76492d1116743f0423413b16050a5345MgB8AGcAZgBaAHUAaQBwADAAQgB2AGgAcABNADMASwBaAFoAQQBzADEAeABjAEEAPQA9AHwAZgBiAGYAMAA1ADYANgA2ADEANwBkADQAZgAwADMANABjAGUAZQAxAGIAMABiADkANgBiADkAMAA4ADcANwBhADMAYQA3AGYAOABkADcAMQA5ADQAMwBmAGYANQBhADEAYQBjADcANABkADIANgBhADUANwBlADgAMAAyADQANgA1ADIAOQA0AGMAZQA0ADEAMwAzADcANQAyADUANAAzADYAMAA1AGEANgAzADEAMQA5ADAAYwBmADQAZAA2AGQA"Entschlüsselt das verschlüsselte Kennwort, das in der TSV-Datei gespeichert wurde.#>    Param(        [Parameter(Mandatory=$true)]        [String]        $EncryptedPassword,        [Parameter(Mandatory=$true)]        [String]        $EncryptionKey    )    $Sha256 = new-object System.Security.Cryptography.SHA256CryptoServiceProvider    $SecureStringKey = $Sha256.ComputeHash([System.Text.UnicodeEncoding]::Unicode.GetBytes($EncryptionKey))    [SecureString]$SecureStringPassword = ConvertTo-SecureString -String $EncryptedPassword -Key $SecureStringKey    Write-Output ([System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($SecureStringPassword)))}
 Administratoren können Computern lokale Administratorkonten hinzufügen, indem Sie eine Active Directory-Gruppe erstellen und diese über "Gruppenrichtlinieneinstellungen -> Lokale Gruppe" der lokalen Gruppe "Administratoren" hinzufügen. Dabei werden keine Anmeldeinformationen zwischengespeichert. Das Dialogfeld ähnelt dem Folgenden. Diese Problemumgehung erfordert eine Verbindung mit Active Directory-Domänendienste, wenn der Benutzer mit diesen Anmeldeinformationen angemeldet ist.





Szenario 2: Zugeordnete Laufwerke

Administratoren verwenden Laufwerkszuordnungen, um Benutzern Netzwerkspeicherorte zuzuweisen. Der Kennwortschutz wird verwendet, um autorisierten Zugriff auf das Laufwerk sicherzustellen. Die folgenden Einstellungen sind betroffen:
  • Benutzerkonfiguration -> Windows-Einstellungen -> Laufwerkzuordnungen -> Neu -> Zugeordnetes Laufwerk

Wichtige Änderungen

Aktion: Erstellen, Aktualisieren oder Ersetzen
  • Die Felder Benutzername, Kennwort und Kennwort bestätigen sind deaktiviert.



Aktion: Löschen
  • Keine Änderung im Verhalten

Problemumgehungen

Statt Kennwörter zum Authentifizieren zu verwenden, können Sie mit Windows-Explorer Freigabeberechtigungen verwalten und Benutzern Rechte zuteilen. Sie können mit Active Directory-Objekten Berechtigungen für Ordner steuern.


Szenario 3: Dienste

Sie können die Diensteinstellungen über die Einstellung "Dienste" so ändern, dass die Dienste in einem anderen Kontext als ihrem ursprünglichen Sicherheitskontext ausgeführt werden. Die folgenden Einstellungen sind betroffen:
  • Computerkonfiguration -> Systemsteuerungseinstellungen -> Dienste -> Neu -> Dienst 

Wichtige Änderungen

Starten: Keine Änderung, Automatisch oder Manuell
  • Die Felder Kennwort und Kennwort bestätigen sind deaktiviert.
  • Der Administrator kann nur die integrierten Konten verwenden.



Starten: Deaktivieren
  • Keine Änderung im Verhalten
Neues Dialogfeld
  • Administratoren, die für dieses Konto nicht integrierte Benutzer verwenden möchten, erhalten die folgende Warnung:




Problemumgehungen

Dienste können noch als lokales Systemkonto ausgeführt werden. Die Dienstberechtigungen können wie im folgenden Artikel der Microsoft Knowledge Base beschrieben geändert werden:
256345 Konfigurieren von Gruppenrichtlinien zum Einrichten der Sicherheit für Systemdienste

Hinweis
 Wenn der Dienst, den Sie konfigurieren möchten, nicht vorhanden ist, müssen Sie die Einstellungen auf einem Computer konfigurieren, auf dem der Dienst ausgeführt wird.


Szenario 4: Geplante und sofortige Aufgaben (höhere Ebene)

Diese werden verwendet, um geplante Aufgaben in einem bestimmten Sicherheitskontext auszuführen. Die Fähigkeit, Anmeldeinformationen für geplante Aufgaben zu speichern, damit diese selbst dann als ein bestimmter Benutzer ausgeführt werden können, wenn dieser nicht angemeldet ist, ist nicht mehr gegeben. Die folgenden Einstellungen sind betroffen: (Beachten Sie, dass auf einigen Plattformen "mindestens Windows 7" durch "Windows Vista und höher" ersetzt wird.)
  •  Computerkonfiguration -> Systemsteuerungseinstellungen -> Geplante Aufgaben -> Neu -> Geplante Aufgabe (mindestens Windows 7)
  •  Computerkonfiguration -> Systemsteuerungseinstellungen -> Geplante Aufgaben -> Neu -> Sofortige Aufgabe (mindestens Windows 7)
  •  Benutzerkonfiguration -> Systemsteuerungseinstellungen -> Geplante Aufgaben -> Neu -> Geplante Aufgabe (mindestens Windows 7)
  •  Benutzerkonfiguration -> Systemsteuerungseinstellungen -> Geplante Aufgaben -> Neu -> Sofortige Aufgabe (mindestens Windows 7)

Wichtige Änderungen

Aktion: Erstellen, Aktualisieren oder Ersetzen
  • Wenn Sie die Option Unabhängig von der Benutzeranmeldung ausführen aktivieren, wird der Administrator nicht mehr durch ein Dialogfeld zur Eingabe von Anmeldeinformationen aufgefordert.
  • Die Option Kennwort nicht speichern ist deaktiviert. Standardmäßig ist auch diese Option aktiviert.



Aktion: Löschen

Keine Änderung im Verhalten

Problemumgehungen

Für die Aufgaben "Geplante Aufgabe (mindestens Windows 7)" und "Sofortige Aufgabe (mindestens Windows 7)" können Administratoren bestimmte Benutzerkonten verwenden, wenn der betreffende Benutzer angemeldet ist. Oder sie können als der betreffende Benutzer nur Zugriff auf lokale Ressourcen haben. Diese Aufgaben können weiterhin im Kontext des lokalen Diensts ausgeführt werden.



Szenario 5: Geplante und sofortige Aufgaben (untergeordnete Ebene)

Dies ist die für untergeordnete Ebenen geeignete Version der Einstellungen, die zum Ausführen geplanter Aufgaben in einem Sicherheitskontext verwendet werden. Die Fähigkeit, Anmeldeinformationen für geplante Aufgaben zu speichern, damit diese selbst dann als ein bestimmter Benutzer ausgeführt werden können, wenn dieser nicht angemeldet ist, ist nicht mehr gegeben. Die folgenden Einstellungen sind betroffen:
  •  Computerkonfiguration -> Systemsteuerungseinstellungen -> Geplante Aufgaben -> Neu -> Geplante Aufgabe
  •  Computerkonfiguration -> Systemsteuerungseinstellungen -> Geplante Aufgaben -> Neu -> Sofortige Aufgabe (Windows XP)
  •  Benutzerkonfiguration -> Systemsteuerungseinstellungen -> Geplante Aufgaben -> Neu -> Geplante Aufgabe
  •  Benutzerkonfiguration -> Systemsteuerungseinstellungen -> Geplante Aufgaben -> Neu -> Sofortige Aufgabe (Windows XP)

Wichtige Änderungen

Aktion: Erstellen, Aktualisieren oder Ersetzen
  • Das Kontrollkästchen Ausführen als ist deaktiviert. Daher sind die Felder Benutzername, Kennwort und Kennwort bestätigen deaktiviert.



Aktion: Löschen

Keine Änderung im Verhalten

Problemumgehungen

Für die Optionen "Geplante Aufgabe" und "Sofortige Aufgabe (Windows XP)" werden geplante Aufgaben mit den Berechtigungen ausgeführt, die derzeit für den lokalen Dienst verfügbar sind.


Szenario 6: Datenquellen

Mit der Einstellung "Datenquellen" wird eine Datenquelle mit einem Computer oder Benutzer verknüpft. Diese Funktion speichert keine Anmeldeinformationen mehr, um den Zugriff auf kennwortgeschützte Datenquellen zu ermöglichen. Die folgenden Einstellungen sind betroffen:
  • Computerkonfiguration -> Systemsteuerungseinstellungen -> Datenquellen
  • Benutzerkonfiguration -> Systemsteuerungseinstellungen -> Datenquellen

Wichtige Änderungen

Aktion: Erstellen, Aktualisieren oder Ersetzen
  • Die Felder Benutzername, Kennwort und Kennwort bestätigen sind deaktiviert:



Aktion: Löschen
  • Keine Änderung im Verhalten

Problemumgehungen

Es sind keine Problemumgehungen verfügbar. In dieser Einstellung werden keine Anmeldeinformationen mehr gespeichert, um den Zugriff auf kennwortgeschützte Datenquellen zu ermöglichen.


Abschreibung von CPassword

Entfernen von CPassword

Das Windows PowerShell-Skript, das in diesem Microsoft Knowledge Base-Artikel enthalten ist, erkennt, ob eine Domäne Gruppenrichtlinieneinstellungen enthält, die möglicherweise CPassword verwenden. Wenn CPassword-XML in der gegebenen Einstellung erkannt wird, wird es in dieser Liste angezeigt.


Erkennen von CPassword-Einstellungen

Dieses Skript muss aus einem lokalen Verzeichnis auf dem zu bereinigenden Domänencontroller heraus ausgeführt werden. Kopieren Sie den Inhalt, und speichern Sie ihn in einer neuen Windows PowerShell-Datei. Bestimmen Sie Ihr Systemlaufwerk, und führen Sie das Skript dann wie im Folgenden beschrieben aus.

 <#.ZUSAMMENFASSUNGGruppenrichtlinienobjekte in der Domäne können Einstellungen haben, in denen Kennwörter für verschiedene Aufgaben gespeichert werden, beispielsweise:    1. Datenquellen    2. Laufwerkzuordnungen    3. Lokale Benutzer    4. Geplante Aufgaben (sowohl XP als auch höhere Ebenen)    5. DiensteDiese Kennwörter werden in SYSVOL als Teil der Gruppenrichtlinieneinstellungen gespeichert und sind wegen der schwachen Verschlüsselung (32-Byte-AES) nicht sicher. Aus diesem Grund wird empfohlen, solche Einstellungen nicht in der Domänenumgebung bereitzustellen und ggf. vorhandene Einstellungen zu entfernen. Dieses Skript soll Administratoren helfen, die Gruppenrichtlinieneinstellungen, welche Kennwörter enthalten, im SYSVOL ihrer Domäne zu finden. .BESCHREIBUNGDieses Skript sollte auf einem Domänencontroller oder Clientcomputer ausgeführt werden, auf dem RSAT installiert worden ist, damit alle Einstellungen, die Kennwörter enthalten, zusammen mit anderen Informationen ausgedruckt werden können, wie Gruppenrichtlinienobjekt, Name der Einstellung, Gruppenrichtlinien-Editor-Pfad, unter dem diese Einstellung definiert ist.Sobald Sie eine Liste der betroffenen Einstellungen haben, können Sie die Einstellungen mit dem Editor in der Gruppenrichtlinien-Verwaltungskonsole entfernen. .SYNTAXGet-SettingsWithCPassword.ps1 [-Path  <String>] .BEISPIELGet-SettingsWithCPassword.ps1 -Path %WinDir%\SYSVOL\domainGet-SettingsWithCPassword.ps1 -Path  <Pfad des Sicherungsordners für Gruppenrichtlinienobjekte> .HINWEISEWenn das Gruppenrichtlinien-PS-Modul nicht gefunden wird, enthält die Ausgabe die GUIDs der Gruppenrichtlinienobjekte statt deren Namen. Sie können dieses Skript entweder auf einem Domänencontroller ausführen oder es nach der Installation von RSAT und der Aktivierung des Gruppenrichtlinienmoduls erneut auf dem Client ausführen.Stattdessen können Sie auch mit dem Cmdlet Get-GPO anhand der GUIDs der Gruppenrichtlinienobjekte deren Namen ermitteln. .LINKhttp://go.microsoft.com/fwlink/?LinkID=390507 #>#----------------------------------------------------------------------------------------------------------------# Eingabeparameter#--------------------------------------------------------------------------------------------------------------param(    [string]$Path = $(throw "-Path is required.") # Verzeichnispfad der Gruppenrichtlinieneinstellungen. )#---------------------------------------------------------------------------------------------------------------$isGPModuleAvailable = $false$impactedPrefs = { "Groups.xml", "ScheduledTasks.xml","Services.xml", "DataSources.xml", "Drives.xml" }#----------------------------------------------------------------------------------------------------------------# Gruppenrichtlinienmodul importieren, falls verfügbar#----------------------------------------------------------------------------------------------------------------if (-not (Get-Module -name "GroupPolicy")){   if (Get-Module -ListAvailable |          Where-Object { $_.Name -ieq "GroupPolicy" })    {        $isGPModuleAvailable = $true        Import-Module "GroupPolicy"    }    else    {        Write-Warning "Gruppenrichtlinienmodul kann nicht für PowerShell importiert werden. Daher werden Gruppenrichtlinienobjekt-Guids gemeldet.                        Führen Sie dieses Skript auf dem Domänencontroller aus, um die Gruppenrichtlinienobjektnamen abzurufen, oder wenden Sie das Cmdlet Get-GPO (auf dem Domänencontroller) aus, um den Gruppenrichtlinienobjektnamen für eine Gruppenrichtlinienobjekt-Guid zu ermitteln."    }}else{    $isGPModuleAvailable = $true}Function Enum-SettingsWithCpassword ( [string]$sysvolLocation ){    # GPMC tree paths    $commonPath = " -> Preferences -> Control Panel Settings -> "    $driveMapPath = " -> Preferences -> Windows Settings -> "        # Rekursiv alle XML-Dateien innerhalb des Speicherorts SYVOL abrufen    $impactedXmls = Get-ChildItem $sysvolLocation -Recurse -Filter "*.xml" | Where-Object { $impactedPrefs -cmatch $_.Name }            # Jede XML-Datei enthält mehrere Einstellungen. Überprüfen Sie die einzelnen Einstellungen daraufhin, ob sie    # das cpassword-Attribut enthalten, und das Attribut ggf. anzeigen.    foreach ( $file in $impactedXmls )    {        $fileFullPath = $file.FullName                # GPP-Kategorie festlegen. Wenn sich die Datei unter dem Ordner "Computer" im SYSVOL befindet,        # ist die Einstellung unter Computerkonfiguration definiert,         # sonst ist sie eine Benutzerkonfiguration.          if ( $fileFullPath.Contains("Machine") )        {            $category = "Computer Configuration"        }        elseif ( $fileFullPath.Contains("User") )        {            $category = "User Configuration"        }        else        {            $category = "Unknown"        }        # Dateiinhalt als XML abrufen        try        {            [xml]$xmlFile = get-content $fileFullPath -ErrorAction Continue        }        catch [Exception]{            Write-Host $_.Exception.Message        }        if ($xmlFile -eq $null)        {            continue        }        switch ( $file.BaseName )        {            Groups             {                 $gppWithCpassword = $xmlFile.SelectNodes("Groups/User") | where-Object { [String]::IsNullOrEmpty($_.Properties.cpassword) -eq $false }                $preferenceType = "Local Users"            }            ScheduledTasks            {                $gppWithCpassword  = $xmlFile.SelectNodes("ScheduledTasks/*") | where-Object { [String]::IsNullOrEmpty($_.Properties.cpassword) -eq $false }                $preferenceType = "Scheduled Tasks"            }            DataSources            {                $gppWithCpassword = $xmlFile.SelectNodes("DataSources/DataSource") | where-Object { [String]::IsNullOrEmpty($_.Properties.cpassword) -eq $false }                $preferenceType = "Data sources"            }            Drives            {                $gppWithCpassword = $xmlFile.SelectNodes("Drives/Drive") | where-Object { [String]::IsNullOrEmpty($_.Properties.cpassword) -eq $false }                $preferenceType = "Drive Maps"            }            Services            {                $gppWithCpassword = $xmlFile.SelectNodes("NTServices/NTService") | where-Object { [String]::IsNullOrEmpty($_.Properties.cpassword) -eq $false }                $preferenceType = "Services"            }            default            {   # gppWithCpassword und preferenceType für das nächste Element löschen.                try                {                    Clear-Variable -Name gppWithCpassword -ErrorAction SilentlyContinue                    Clear-Variable -Name preferenceType -ErrorAction SilentlyContinue                }                catch [Exception]{}            }        }        if ($gppWithCpassword -ne $null)        {            # Name des Gruppenrichtlinienobjekts anhand der GUID ermitteln, die aus filePath extrahiert wurde             $guidRegex = [regex]"\{(.*)\}"            $match = $guidRegex.match($fileFullPath)            if ($match.Success)            {               $gpoGuid = $match.groups[1].value               $gpoName = $gpoGuid            }            else            {               $gpoName = "Unknown"            }            if($isGPModuleAvailable -eq $true)            {                try                 {                       $gpoInfo = Get-GPO -Guid $gpoGuid -ErrorAction Continue                    $gpoName = $gpoInfo.DisplayName                }                catch [Exception] {                    Write-Host $_.Exception.Message                }            }            # Einstellungen anzeigen, die cpassword enthalten            foreach ( $gpp in $gppWithCpassword )            {                if ( $preferenceType -eq "Drive Maps" )                {                    $prefLocation = $category + $driveMapPath + $preferenceType                }                else                {                    $prefLocation = $category + $commonPath + $preferenceType                }                $obj = New-Object -typeName PSObject                 $obj | Add-Member –membertype NoteProperty –name GPOName    –value ($gpoName)      –passthru |                       Add-Member -MemberType NoteProperty -name Preference -value ($gpp.Name)     -passthru |                       Add-Member -MemberType NoteProperty -name Path       -value ($prefLocation)                Write-Output $obj             }        } # end if $gppWithCpassword    } # end foreach $file} # end functions Enum-PoliciesWithCpassword#-----------------------------------------------------------------------------------# Prüfen, ob Pfad gültig ist. Alle Einstellungen auflisten, die cpassword enthalten. #-----------------------------------------------------------------------------------if (Test-Path $Path ){    Enum-SettingsWithCpassword $Path}else{    Write-Warning "Verzeichnis nicht vorhanden: $Path"}  


Beispielsyntax (setzt voraus, dass C das Systemlaufwerk ist)

.\Get-SettingsWithCPassword.ps1 –path “C:\Windows\SYSVOL\domain” | Format-List

Hinweis Beachten Sie, dass Sie statt der Domäne auch ein Sicherungsgruppenrichtlinienobjekt als Ziel für path angeben können.

Das Erkennungsskript erzeugt eine Liste, die der folgenden Liste ähnelt:



Bei längeren Listen sollten sie die Ausgabe in einer Datei speichern:

.\Get-SettingsWithCPassword.ps1 –path “C:\Windows\SYSVOL\domain” | ConvertTo-Html > gpps.html

Entfernen von CPassword-Einstellungen

Zum Entfernen der Einstellungen, die CPassword-Daten enthalten, wird empfohlen, die Gruppenrichtlinien-Verwaltungskonsole (GPMC) auf dem Domänencontroller bzw. auf einem Client, auf dem die Remoteserver-Verwaltungstools installiert sind, zu verwenden. Sie können auf diesen Konsolen jede Einstellung mit fünf Schritten entfernen. Gehen Sie hierzu wie folgt vor:
  1. Öffnen Sie in der Gruppenrichtlinien-Verwaltungskonsole die Einstellung, die CPassword-Daten enthält.
  2. Ändern Sie die Aktion in Löschen oder Deaktivieren, je nachdem, was für die betreffende Einstellung geeignet ist.
  3. Klicken Sie auf OK, um Ihre Änderungen zu speichern.
  4. Warten Sie ein oder zwei Gruppenrichtlinien Aktualisierungszyklen ab, damit die Änderungen an die Clients weitergegeben werden können.
  5. Nachdem die Änderungen auf alle Clients angewendet worden sind, löschen Sie die Einstellung.
  6. Wiederholen Sie die Schritte 1 bis 5 nach Bedarf, um die gesamte Umgebung zu bereinigen. Wenn das Erkennungsskript keine Ergebnisse zurückgibt, sind Sie fertig.

Dateihashinformationen

DateinameSHA1-HashSHA256-Hash
Windows6.0-KB2928120-ia64.msuB2A74305CB56191774BFCF9FCDEAA983B26DC9A6DCE8C0F9CEB97DBF1F7B9BAF76458B3770EF01C0EDC581621BC8C3B2C7FD14E7
Windows6.0-KB2928120-x64.msu386457497682A2FB80BC93346D85A9C1BC38FBF71AF67EB12614F37F4AC327E7B5767AFA085FE676F6E81F0CED95D20393A1D38D
Windows6.0-KB2928120-x86.msu42FF283781CEC9CE34EBF459CA1EFE011D5132C3016D7E9DBBC5E487E397BE0147B590CFBBB5E83795B997894870EC10171E16D4
Windows6.1-KB2928120-ia64.msu5C2196832EC94B99AAF9B074D3938525B72196909958FA58134F55487521243AD9740BEE0AC210AC290D45C8322E424B3E5EBF16
Windows6.1-KB2928120-x64.msuEA5332F4E289DC799611EAB8E3EE2E86B7880A4B417A2BA34F8FD367556812197E2395ED40D8B394F9224CDCBE8AB3939795EC2A
Windows6.1-KB2928120-x86.msu7B7B6EE24CD8BE1AB3479F9E1CF9C98982C8BAB1603206D44815EF2DC262016ED13D6569BE13D06E2C6029FB22621027788B8095
Windows8-RT-KB2928120-x64.msuE18FC05B4CCA0E195E62FF0AE534BA39511A8593FCAED97BF1D61F60802D397350380FADED71AED64435D3E9EAA4C0468D80141E
Windows8-RT-KB2928120-x86.msuA5DFB34F3B9EAD9FA78C67DFC7ACACFA2FBEAC0B7F00A72D8A15EB2CA70F7146A8014E39A71CFF5E39596F379ACD883239DABD41
Windows8.1-KB2928120-x64.msuA07FF14EED24F3241D508C50E869540915134BB46641B1A9C95A7E4F0D5A247B9F488887AC94550B7F1D7B1198D5BCBA92F7A753
Windows8.1-KB2928120-x86.msuDE84667EC79CBA2006892452660EB99580D27306468EE4FA3A22DDE61D85FD3A9D0583F504105DF2F8256539051BC0B1EB713E9C
Windows8.1-KB2961899-x64.msu10BAE807DB158978BCD5D8A7862BC6B3EF20038BEC26618E23D9278FC1F02CA1F13BB289E1C6C4E0C8DA5D22E1D9CDA0DA8AFF51
Windows8.1-KB2961899-x86.msu230C64447CC6E4AB3AD7B4D4655B8D8CEFBFBE98E3FAD567AB6CA616E42873D3623A777185BE061232B952938A8846A974FFA7AF
update security_patch security_update security bug flaw vulnerability malicious attacker exploit registry unauthenticated buffer overrun overflow specially-formed scope specially-crafted denial of service DoS TSE
Hinweis Dies ist ein Artikel, der im Schnellverfahren direkt von der Microsoft-Supportorganisation erstellt wurde. Die hierin enthaltenen Informationen werden als Reaktion auf neue Probleme wie besehen bereitgestellt. Da dieser Artikel im Schnellverfahren erstellt wurde, kann er Tippfehler enthalten und zu einem späteren Zeitpunkt ohne vorherige Ankündigung überarbeitet werden. Weitere zu berücksichtigende Informationen finden Sie in den Nutzungsbedingungen.
Eigenschaften

Artikelnummer: 2962486 – Letzte Überarbeitung: 10/02/2015 18:26:00 – Revision: 5.0

Windows RT 8.1, Windows 8.1, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 Foundation, Windows Server 2012 R2 Standard, Windows 8, Windows 8 Enterprise, Windows 8 Pro, Windows Server 2012 Datacenter, Windows Server 2012 Essentials, Windows Server 2012 Foundation, Windows Server 2012 Standard, Windows 7 Service Pack 1, Windows Server 2008 R2 Service Pack 1, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2

  • atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability KB2962486
Feedback