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 Benutzer

Betrifft Computer

Verwaltung lokaler Benutzer

Ja

Ja

Zugeordnete Laufwerke

Ja

Nein

Dienste

Nein

Ja

Geplante Aufgaben (höhere Ebene)

Ja

Ja

Geplante Aufgaben (untergeordnete Ebenen)

Ja

Ja

Sofortige Aufgaben (höhere Ebene)

Ja

Ja

Sofortige Aufgaben (untergeordnete Ebenen)

Ja

Ja

Datenquellen

Ja

Ja

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
{
<#
.ZUSAMMENFASSUNG

Dieses 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


Funktion: Invoke-PasswordRoll
Autor: Microsoft
Version: 1.0

.BESCHREIBUNG

Dieses 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 ComputerName

Ein Array von Computern, auf denen das Skript mit PowerShell-Remoting ausgeführt werden soll.

.PARAMETER LocalAccounts

Ein Array von lokalen Konten, deren Kennwort geändert werden soll.

.PARAMETER TsvFileName

Die Datei, in die die Benutzername/Kennwort/Server-Kombinationen ausgegeben werden.

.PARAMETER EncryptionKey

Ein 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 PasswordLength

Die Länge der Kennwörter, die zufällig für lokale Konten generiert werden.

.PARAMETER NoEncryption

Die 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 Skriptdatei
Invoke-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 Kennwort
in 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 Skriptdatei
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator") -TsvFileName "LocalAdminCredentials.tsv" -NoEncryption -PasswordLength 40

Stellt 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.

.HINWEISE
Voraussetzungen:
-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
{
<#
.ZUSAMMENFASSUNG
Mit dieser Funktion können Kennwörter entschlüsselt werden, die von der Funktion Invoke-PasswordRoll verschlüsselt gespeichert wurden.

Funktion: ConvertTo-CleartextPassword
Autor: Microsoft
Version: 1.0

.BESCHREIBUNG
Mit dieser Funktion können Kennwörter entschlüsselt werden, die von der Funktion Invoke-PasswordRoll verschlüsselt gespeichert wurden.


.PARAMETER EncryptedPassword

Das verschlüsselte Kennwort, das in einer TSV-Datei gespeichert wurde.

.PARAMETER EncryptionKey

Das zum Verschlüsseln verwendete Kennwort.


.BEISPIEL

. .\Invoke-PasswordRoll.ps1 #Lädt die Funktionen in dieser Skriptdatei
ConvertTo-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.

<#
.ZUSAMMENFASSUNG
Gruppenrichtlinienobjekte 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. Dienste
Diese 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.

.BESCHREIBUNG
Dieses 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.

.SYNTAX
Get-SettingsWithCPassword.ps1 [-Path <String>]
.BEISPIEL
Get-SettingsWithCPassword.ps1 -Path %WinDir%\SYSVOL\domain
Get-SettingsWithCPassword.ps1 -Path <Pfad des Sicherungsordners für Gruppenrichtlinienobjekte>

.HINWEISE
Wenn 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.

.LINK
http://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.

Dateiname

SHA1-Hash

SHA256-Hash

Windows6.0-KB2928120-ia64.msu

B2A74305CB56191774BFCF9FCDEAA983B26DC9A6

DCE8C0F9CEB97DBF1F7B9BAF76458B3770EF01C0EDC581621BC8C3B2C7FD14E7

Windows6.0-KB2928120-x64.msu

386457497682A2FB80BC93346D85A9C1BC38FBF7

1AF67EB12614F37F4AC327E7B5767AFA085FE676F6E81F0CED95D20393A1D38D

Windows6.0-KB2928120-x86.msu

42FF283781CEC9CE34EBF459CA1EFE011D5132C3

016D7E9DBBC5E487E397BE0147B590CFBBB5E83795B997894870EC10171E16D4

Windows6.1-KB2928120-ia64.msu

5C2196832EC94B99AAF9B074D3938525B7219690

9958FA58134F55487521243AD9740BEE0AC210AC290D45C8322E424B3E5EBF16

Windows6.1-KB2928120-x64.msu

EA5332F4E289DC799611EAB8E3EE2E86B7880A4B

417A2BA34F8FD367556812197E2395ED40D8B394F9224CDCBE8AB3939795EC2A

Windows6.1-KB2928120-x86.msu

7B7B6EE24CD8BE1AB3479F9E1CF9C98982C8BAB1

603206D44815EF2DC262016ED13D6569BE13D06E2C6029FB22621027788B8095

Windows8-RT-KB2928120-x64.msu

E18FC05B4CCA0E195E62FF0AE534BA39511A8593

FCAED97BF1D61F60802D397350380FADED71AED64435D3E9EAA4C0468D80141E

Windows8-RT-KB2928120-x86.msu

A5DFB34F3B9EAD9FA78C67DFC7ACACFA2FBEAC0B

7F00A72D8A15EB2CA70F7146A8014E39A71CFF5E39596F379ACD883239DABD41

Windows8.1-KB2928120-x64.msu

A07FF14EED24F3241D508C50E869540915134BB4

6641B1A9C95A7E4F0D5A247B9F488887AC94550B7F1D7B1198D5BCBA92F7A753

Windows8.1-KB2928120-x86.msu

DE84667EC79CBA2006892452660EB99580D27306

468EE4FA3A22DDE61D85FD3A9D0583F504105DF2F8256539051BC0B1EB713E9C

Windows8.1-KB2961899-x64.msu

10BAE807DB158978BCD5D8A7862BC6B3EF20038B

EC26618E23D9278FC1F02CA1F13BB289E1C6C4E0C8DA5D22E1D9CDA0DA8AFF51

Windows8.1-KB2961899-x86.msu

230C64447CC6E4AB3AD7B4D4655B8D8CEFBFBE98

E3FAD567AB6CA616E42873D3623A777185BE061232B952938A8846A974FFA7AF


Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?

Vielen Dank für Ihr Feedback!

×