MS14-025: Een beveiligingsprobleem in de voorkeuren voor groepsbeleid kan leiden tot misbruik van bevoegdheid: 13 mei 2014

Van toepassing op
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 Datacenter Windows Server 2012 Essentials Windows Server 2012 Foundation Windows Server 2012 Foundation Windows Server 2012 Standard Windows Server 2012 Standard Windows 7 Service Pack 1 Windows 7 Enterprise Windows 7 Professional Windows 7 Ultimate Windows 7 Home Premium Windows 7 Home Basic Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Standard Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter Windows Server 2008 Service Pack 2 Windows Server 2008 for Itanium-Based Systems Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Vista Service Pack 2 Windows Vista Business Windows Vista Enterprise Windows Vista Home Basic Windows Vista Home Premium Windows Vista Starter Windows Vista Ultimate Windows Vista Enterprise 64-bit Edition Windows Vista Home Basic 64-bit Edition Windows Vista Home Premium 64-bit Edition Windows Vista Ultimate 64-bit Edition Windows Vista Business 64-bit Edition

INLEIDING

Microsoft heeft beveiligingsbulletin MS14-025 uitgebracht. Meer informatie over dit beveiligingsbulletin:

Help en ondersteuning verkrijgen voor deze beveiligingsupdate

Hulp bij het installeren van updates:
Ondersteuning voor Microsoft Update

Beveiligingsoplossingen voor IT-professionals:
Probleemoplossing en ondersteuning voor TechNet-beveiliging

Bescherm uw Windows-computer Windows tegen virussen en malware:
Virusoplossing en beveiligingscentrum

Lokale ondersteuning volgens uw land/regio:
Internationale ondersteuning

Meer informatie

Bekende problemen en meer informatie over deze beveiligingsupdate

De volgende artikelen bevatten meer informatie over deze beveiligingsupdate met betrekking tot afzonderlijke productversies. De artikelen kunnen informatie over bekende problemen bevatten. Als dit het geval is, wordt het bekende probleem vermeld onder elke artikellink.

  • 2928120

    MS14-025: Beschrijving van de beveiligingsupdate voor Windows Remote Server Administration Tools voor systemen waarop update 2919355 is geïnstalleerd: 13 mei 2014

  • 2961899

    MS14-025: Beschrijving van de beveiligingsupdate voor Windows Remote Server Administration Tools voor systemen waarop geen update 2919355 is geïnstalleerd: 13 mei 2014

Voorkeuren voor groepsbeleid

Overzicht

In bepaalde voorkeuren voor groepsbeleid kan een wachtwoord worden opgeslagen. Deze functionaliteit wordt verwijderd omdat het wachtwoord onveilig is opgeslagen. In dit artikel worden de wijzigingen in de gebruikersinterface en eventuele beschikbare tijdelijke oplossingen beschreven.

Met de volgende voorkeuren voor groepsbeleid kunnen gebruikersnamen en wachtwoorden niet meer worden opgeslagen:

  • Drive Maps
  • Lokale gebruikers en groepen
  • Geplande taken
  • Services
  • Data Sources

Dit is van invloed op het gedrag van bestaande groepsbeleidsobjecten (GPO's) in uw omgeving die afhankelijk zijn van wachtwoorden die zijn opgenomen in deze voorkeuren. Er wordt ook voorkomen dat er nieuwe voorkeuren voor groepsbeleid worden gemaakt met behulp van deze functionaliteit.

Voor Drive Maps, Lokale gebruikers en groepen en Services kunt u mogelijk vergelijkbare doelen bereiken met andere, beter beveiligde functionaliteit in Windows.

Voor geplande taken en gegevensbronnen kunt u niet dezelfde doelen bereiken als beschikbaar waren via de niet-beveiligde functionaliteit van wachtwoorden in het kader van voorkeuren voor groepsbeleid.

Scenario's

Deze wijziging heeft gevolgen voor de volgende voorkeuren voor groepsbeleid. Elke voorkeur wordt kort behandeld en daarna in meer detail. Bovendien zijn er tijdelijke oplossingen beschikbaar waarmee u dezelfde taken kunt uitvoeren.

Beïnvloede voorkeur Van toepassing op gebruiker
Van toepassing op computer
Lokaal gebruikersbeheer Ja Ja
Toegewezen stations Ja Nee
Services Nee Ja
Geplande taken (hoogste niveau) Ja Ja
Geplande taken (lagere niveau) Ja Ja
Directe taken (hogere niveau) Ja Ja
Directe taken (lagere niveau) Ja Ja
Gegevensbronnen Ja Ja

Overzicht van wijzigingen

  • Wachtwoordvelden in alle beïnvloede voorkeuren zijn uitgeschakeld. Beheerders kunnen geen nieuwe voorkeuren maken met behulp van deze wachtwoordvelden.
  • Het veld gebruikersnaam is in sommige voorkeuren uitgeschakeld.
  • Bestaande voorkeuren die een wachtwoord bevatten, kunnen niet worden bijgewerkt. Ze kunnen alleen worden verwijderd of uitgeschakeld, afhankelijk van de specifieke voorkeur.
  • Het gedrag van de acties Verwijderen en Uitschakelen is niet gewijzigd voor de voorkeuren.
  • Wanneer een beheerder een voorkeur opent die het CPassword-kenmerk bevat, ontvangt de beheerder het volgende waarschuwingsdialoogvenster om hem of haar op de hoogte te stellen van de recente afschaffing. Bij pogingen om wijzigingen in nieuwe of bestaande voorkeuren op te slaan waarvoor het kenmerk CPassword is vereist, wordt hetzelfde dialoogvenster geactiveerd. Alleen de acties Verwijderen en Uitschakelen activeren geen waarschuwingsdialoogvensters.

             Beveiligingswaarschuwing waarin wordt aangegeven dat voor het CPassword-kenmerk niet-beschikbare beveiligingsfunctionaliteit vereist is
            
            
            
          

Scenario 1: lokaal gebruikersbeheer

De voorkeur lokaal gebruikersbeheer wordt vaak gebruikt om lokale beheerders te maken met een bekend wachtwoord op een computer. Deze functie is niet beveiligd vanwege de manier waarop in de voorkeuren voor groepsbeleid wachtwoorden worden opgeslagen. Deze functionaliteit is daarom niet meer beschikbaar. De volgende voorkeuren worden beïnvloed:

  • Computerconfiguratie -> Instellingen van het Configuratiescherm -> Lokale gebruikers en groepen-> Nieuw-> Lokale gebruiker
  • Gebruikersconfiguratie -> Instellingen van het Configuratiescherm -> Lokale gebruikers en groepen-> Nieuw-> Lokale gebruiker

Belangrijke wijzigingen

Actie: Maken of vervangen

  • De velden Gebruikersnaam, Wachtwoord en Wachtwoord bevestigen zijn uitgeschakeld.
  • Het waarschuwingsvenster wordt weergegeven wanneer de beheerder wijzigingen in een bestaande voorkeur die een wachtwoord bevat, opent of probeert op te slaan.

                
                 Dialoogvenster Nieuwe lokale gebruikerseigenschappen met lege gebruikersnaam- en wachtwoordvelden gemarkeerd
                
Actie: bijwerken

  • De velden Wachtwoord en Wachtwoord bevestigen zijn uitgeschakeld.
  • Het waarschuwingsvenster wordt weergegeven wanneer de beheerder wijzigingen in een bestaande voorkeur die een wachtwoord bevat, opent of probeert op te slaan.

                
                 Dialoogvenster Nieuwe lokale gebruikerseigenschappen met het actieveld ingesteld op Bijwerken
                
Actie: Verwijderen

  • Geen gedragsverandering

Tijdelijke oplossingen

Voor degenen die voorheen vertrouwden op de voorkeur voor groepsbeleid voor het instellen van lokale beheerderswachtwoorden, wordt het volgende script geleverd als een veilig alternatief voor CPassword. Kopieer de inhoud naar een nieuw Windows PowerShell-bestand en sla deze op en voer het script uit zoals is aangegeven in de bijbehorende . VOORBEELD-sectie.

Microsoft biedt programmeervoorbeelden uitsluitend ter illustratie, zonder uitdrukkelijke of impliciete garantie. Dit omvat, maar is niet beperkt tot, de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal die wordt gedemonstreerd en met de hulpprogramma's die worden gebruikt om procedures te maken en fouten op te sporen. Microsoft-ondersteuningstechnici kunnen u helpen de functionaliteit van een bepaalde procedure uit te leggen. Zij zullen echter deze voorbeelden niet wijzigen om extra functionaliteit te bieden of procedures te maken om aan uw specifieke vereisten te voldoen.

Functie Invoke-PasswordRoll
{
<#
. SAMENVATTING

Dit script kan worden gebruikt om de lokale accountwachtwoorden op externe computers in te stellen op willekeurige wachtwoorden. De combinatie gebruikersnaam/wachtwoord/server wordt opgeslagen in een CSV-bestand.
De accountwachtwoorden die zijn opgeslagen in het CSV-bestand kunnen worden versleuteld met een wachtwoord van de beheerders die ervoor kiezen om ervoor te zorgen dat accountwachtwoorden in niet-versleutelde tekst niet op schijf worden geschreven.
De versleutelde wachtwoorden kunnen worden ontsleuteld met een andere functie in dit bestand: ConvertTo-CleartextPassword

Functie: Invoke-PasswordRoll
Auteur: Microsoft
Versie: 1.0

. BESCHRIJVING

Dit script kan worden gebruikt om de lokale accountwachtwoorden op externe computers in te stellen op willekeurige wachtwoorden. De combinatie gebruikersnaam/wachtwoord/server wordt opgeslagen in een CSV-bestand.
De accountwachtwoorden die zijn opgeslagen in het CSV-bestand kunnen worden versleuteld met een wachtwoord van de beheerders die ervoor kiezen om ervoor te zorgen dat accountwachtwoorden in niet-versleutelde tekst niet op schijf worden geschreven.
De versleutelde wachtwoorden kunnen worden ontsleuteld met een andere functie in dit bestand: ConvertTo-CleartextPassword

. PARAMETER ComputerName

Een matrix van computers waarop het script moet worden uitgevoerd met behulp van externe PowerShell-technologie.

. PARAMETER LocalAccounts

Een matrix van lokale accounts waarvan het wachtwoord moet worden gewijzigd.

. PARAMETER TsvFileName

Het bestand waarnaar u de combinaties gebruikersnaam/wachtwoord/server wilt uitvoeren.

. PARAMETER EncryptionKey

Een wachtwoord waarmee u het TSV-bestand kunt versleutelen. Maakt gebruik van AES-versleuteling. Alleen de wachtwoorden die in het TSV-bestand zijn opgeslagen, worden versleuteld, de gebruikersnaam en servernaam zijn platte tekst.

. PARAMETER PasswordLength

De lengte van de wachtwoorden die willekeurig worden gegenereerd voor lokale accounts.

. PARAMETER NoEncryption

Versleutel de accountwachtwoorden die zijn opgeslagen in het TSV-bestand niet. Hierdoor worden wachtwoorden in niet-versleutelde tekst weggeschreven op schijf.

. VOORBEELD

. .\Invoke-PasswordRoll.ps1 #Loads de functies in dit scriptbestand
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator","CustomLocalAdmin") -TsvFileName "LocalAdminCredentials.tsv" -EncryptionKey "Wachtwoord1"

Hiermee maakt u verbinding met alle computers die zijn opgeslagen in het bestand 'computerlist.txt'. Als de lokale account 'administrator' en/of 'CustomLocalAdmin' op het systeem aanwezig zijn, wordt hun wachtwoord gewijzigd
tot een willekeurig gegenereerd wachtwoord van lengte 20 (de standaardwaarde). De combinaties van gebruikersnaam/wachtwoord/server worden opgeslagen in LocalAdminCredentials.tsv en de accountwachtwoorden worden AES-versleuteld met het wachtwoord "Wachtwoord1".

. VOORBEELD

. .\Invoke-PasswordRoll.ps1 #Loads de functies in dit scriptbestand
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator") -TsvFileName "LocalAdminCredentials.tsv" -NoEncryption -PasswordLength 40

Hiermee maakt u verbinding met alle computers die zijn opgeslagen in het bestand 'computerlist.txt'. Als de lokale account "beheerder" aanwezig is op het systeem, wordt het wachtwoord gewijzigd in een willekeurig gegenereerd
wachtwoord met lengte 40. De combinaties van gebruikersnaam/wachtwoord/server worden onversleuteld opgeslagen in LocalAdminCredentials.tsv.

. OPMERKINGEN
Vereisten:
-PowerShellv2 of hoger moet zijn geïnstalleerd
-Externe PowerShell-communicatie moet zijn ingeschakeld op alle systemen waarop het script wordt uitgevoerd

Gedrag van script:
-Als er een lokaal account op het systeem aanwezig is, maar niet is opgegeven in de parameter LocalAccounts, zal het script een waarschuwing op het scherm schrijven om u te waarschuwen voor de aanwezigheid van dit lokale account. Het script blijft dan gewoon actief.
-Als een lokaal account is opgegeven in de parameter LocalAccounts, maar het account bestaat niet op de computer, gebeurt er niets (er wordt GEEN account aangemaakt).
-De functie ConvertTo-CleartextPassword, in dit bestand, kan worden gebruikt om wachtwoorden te decoderen die versleuteld zijn opgeslagen in het TSV-bestand.
-Als geen verbinding kan worden gemaakt met een server die is opgegeven in ComputerName, geeft PowerShell een foutmelding.
-Microsoft adviseert bedrijven om regelmatig alle wachtwoorden voor lokale en domeinaccounts te rollen.

#>
    [CmdletBinding(DefaultParameterSetName="Encryption")]
    Param(
        [Parameter(Mandatory=$true)]
        [Tekenreeks[]]
        $ComputerName,

        [Parameter(Mandatory=$true)]
        [Tekenreeks[]]
        $LocalAccounts,

        [Parameter(Mandatory=$true)]
        [Tekenreeks]
        $TsvFileName,

        [Parameter(ParameterSetName="Encryptie", Mandatory=$true)]
        [Tekenreeks]
        $EncryptionKey,

        [Parameter()]
        [Bereik valideren(20,120)]
        [Int]
        $PasswordLength = 20,

        [Parameter(ParameterSetName="NoEncryption", Mandatory=$true)]
        [Schakelen]
        $NoEncryption
    )

    #Load benodigde .NET-klassen
    Add-Type -AssemblyName "System.Web" -ErrorAction Stop

    #This is het scriptblok dat wordt uitgevoerd op elke computer die is opgegeven in ComputerName
    $RemoteRollScript = {
        Param(
            [Parameter(Mandatory=$true, Position=1)]
            [Tekenreeks[]]
            $Passwords,

            [Parameter(Verplicht=$true, Positie=2)]
            [Tekenreeks[]]
            $LocalAccounts,

            #This is hier zodat ik kan opnemen wat de servernaam was waarmee het script is verbonden, soms raken de DNS-records in de war, het kan leuk zijn om dit te hebben.
            [Parameter(Mandatory=$true, Position=3)]
            [Tekenreeks]
            $TargettedServerName
        )

        $LocalUsers = Get-WmiObject Win32_UserAccount -Filter "LocalAccount=true" | Foreach {$_. Naam}

        #Check als de computer lokale gebruikersaccounts heeft waarvan de wachtwoorden niet door dit script worden gerold
        foreach ($User in $LocalUsers)
        {
            if ($LocalAccounts -inotcontains $User)
            {
                Write-Warning "Server: '$($TargettedServerName)' heeft een lokaal account '$($User)' waarvan het wachtwoord NIET wordt gewijzigd door dit script"
            }
        }

        #For elk lokaal account dat op deze server is opgegeven het wachtwoord wijzigen
        $PasswordIndex = 0
        foreach ($LocalAdmin in $LocalAccounts)
        {
            $Password = $Passwords[$PasswordIndex]

            if ($LocalUsers -icontains $LocalAdmin)
            {
                niet
                {
                    $objUser = [ADSI]"WinNT://localhost/$($LocalAdmin), user"
                    $objUser.psbase.Invoke("Wachtwoord instellen"; $Password)

                    $Properties = @{
                        TargettedServerName = $TargettedServerName
                        Gebruikersnaam = $LocalAdmin
                        Wachtwoord = $Password
                        RealServerName = $env:computername
                    }

                    $ReturnData = New-Object PSObject -Property $Properties
                    Write-Output $ReturnData
                }
                Vangst
                {
                    Write-Error "Fout bij wijzigen wachtwoord voor gebruiker:$($LocalAdmin) op server:$($TargettedServerName)"
                }
            }

            $PasswordIndex++
        }
    }

    #Generate het wachtwoord op de client waarop dit script wordt uitgevoerd, niet op de externe computer. System.Web.Security is niet beschikbaar in het .NET Client-profiel. Deze oproep plaatsen
    # op de client die het script uitvoert, zorgt het ervoor dat slechts 1 computer de volledige .NET-runtime geïnstalleerd hoeft te hebben (in tegenstelling tot elk systeem met het wachtwoord).
    Functie Create-RandomPassword
    {
        Param(
            [Parameter(Mandatory=$true)]
            [Bereik valideren(20,120)]
            [Int]
            $PasswordLength
        )

        $Password = [System.Web.Security.Membership]::GeneratePassword($PasswordLength, $PasswordLength / 4)

        #This mag nooit falen, maar ik zet hier toch een gezondheidscheck
        if ($Password.Length -ne $PasswordLength)
        {
            gooi nieuwe Exception("Password returned by GeneratePassword is niet even lang als vereist. Vereiste lengte: $($PasswordLength). Gegenereerde lengte: $($Password.Lengte)")
        }

        return $Password
    }

    #Main functionaliteit - Genereer een wachtwoord en externe toegang tot machines om het wachtwoord van opgegeven lokale accounts te wijzigen
    if ($PsCmdlet.ParameterSetName -ieq "Encryption")
    {
        niet
        {
            $Sha 256 = new-object System.Security.Cryptography.SHA256CryptoServiceProvider
            $SecureStringKey = $Sha 256.ComputeHash([System.Text.UnicodeEncoding]::Unicode.GetBytes($EncryptionKey))
        }
        Vangst
        {
            Write-Error 'Fout bij het maken van TSV-versleutelingssleutel' -ErrorAction Stop
        }
    }

    foreach ($Computer in $ComputerName)
    {
        #Need om 1 wachtwoord te genereren voor elk account dat kan worden gewijzigd
        $Passwords = @()
        voor ($i = 0; $i -lt $LocalAccounts.Lengte; $i++)
        {
            $Passwords += Create-RandomPassword -PasswordLength $PasswordLength
        }

        Write-Output 'Verbinding maken met server '$($Computer)' om opgegeven lokale beheerderswachtwoorden te rollen'
        $Result = Invoke-Command -ScriptBlock $RemoteRollScript -ArgumentList @($Passwords, $LocalAccounts, $Computer) -ComputerName $Computer
        #If versleuteling wordt gebruikt, versleutelt u het wachtwoord met de door de gebruiker opgegeven sleutel voordat u naar de schijf gaat schrijven
        if ($Result -ne $null)
        {
            if ($PsCmdlet.ParameterSetName -ieq "NoEncryption")
            {
                $Result | Select-Object Gebruikersnaam,Wachtwoord,TargettedServerName,RealServerName | Export-Csv -Append -Path $TsvFileName -NoTypeInformation
            }
            anders
            {
                #Filters $null geretourneerde vermeldingen
                $Result = $Result | Select-Object Gebruikersnaam,Wachtwoord,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("Wachtwoord")
                    $Record | Select-Object Gebruikersnaam,Versleuteld wachtwoord,Doelservernaam,RealServerName | Export-Csv -Append -Path $TsvFileName -NoTypeInformation
                }
            }
        }
    }
}

Functie ConvertTo-CleartextPassword
{
<#
. SAMENVATTING
Deze functie kan worden gebruikt om wachtwoorden te ontsleutelen die versleuteld zijn opgeslagen door de functie Invoke-PasswordRoll.

Functie: ConvertTo-CleartextPassword
Auteur: Microsoft
Versie: 1.0

. BESCHRIJVING
Deze functie kan worden gebruikt om wachtwoorden te ontsleutelen die versleuteld zijn opgeslagen door de functie Invoke-PasswordRoll.

. PARAMETER EncryptedPassword

Het versleutelde wachtwoord dat is opgeslagen in een TSV-bestand.

. PARAMETER EncryptionKey

Het wachtwoord dat wordt gebruikt voor de codering.

. VOORBEELD

. .\Invoke-PasswordRoll.ps1 #Loads de functies in dit scriptbestand
ConvertTo-CleartextPassword -EncryptionKey "Password1" -EncryptedPassword 76492d1116743f0423413b16050a5345MgB8AGcAZgBaAHUAaQBwADAAQgB2AGgAcABNADMASwBaAFoAQQBzADEAeABjAEEAPQA9AHwAZgBiAGYAMAA1ADYANgA2ADEANwBkADQAZgAwADMANABjAGUAZQAxAGIAMABxAGIAMAB2 iADkANgBiADkAMAA4ADcANwBhADMAYQA3AGYAOABkADcAMQA5ADQAMwBmAGYANQBhADEAYQBjADcANABkADIANgBhADUANwBlADgAMAAyADQANgA1ADIAOQA0AGMAZQA0ADEAMwAzADcANQAyADUANAAzADYAMAA1AGEANgAzADEAMQA5ADAAYwBmADQAZAA2AGQA"

Decodeert het versleutelde wachtwoord dat is opgeslagen in het TSV-bestand.

#>
    Param(
        [Parameter(Mandatory=$true)]
        [Tekenreeks]
        $EncryptedPassword,

        [Parameter(Mandatory=$true)]
        [Tekenreeks]
        $EncryptionKey
    )

    $Sha 256 = new-object System.Security.Cryptography.SHA256CryptoServiceProvider
    $SecureStringKey = $Sha 256.ComputeHash([System.Text.UnicodeEncoding]::Unicode.GetBytes($EncryptionKey))

    [SecureString]$SecureStringPassword = ConvertTo-SecureString -String $EncryptedPassword -Key $SecureStringKey
    Write-Output ([System.Runtime.InteropServices.Marshal]::P trToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($SecureStringPassword)))
}
   Beheerders kunnen lokale beheerdersaccounts toevoegen aan computers door een Active Directory-groep te maken en deze toe te voegen aan de lokale beheerdersgroep via Voorkeuren voor groepsbeleid -> Lokale groep. Met deze actie worden referenties niet in de cache opgeslagen. Het dialoogvenster ziet er ongeveer als volgt uit: Voor deze tijdelijke oplossing is een verbinding met Active Directory Domain Services vereist wanneer de gebruiker is aangemeld met deze referenties.

Ingebouwde beheerdersgroep Dialoogvenster Eigenschappen met de optie Huidige gebruiker toevoegen

Scenario 2: Toegewezen stations

Beheerders gebruiken stationstoewijzingen om netwerklocaties aan gebruikers toe te wijzen. De functie voor wachtwoordbeveiliging wordt gebruikt om ervoor te zorgen dat geautoriseerde toegang tot het station is. De volgende voorkeuren worden beïnvloed:

  • Gebruikersconfiguratie -> Windows-instellingen -> stationstoewijzingen -> Nieuw -> Toegewezen station

Belangrijke wijzigingen

Actie: Maken, bijwerken of vervangen

  • De velden Gebruikersnaam, Wachtwoord en Wachtwoord bevestigen zijn uitgeschakeld.

                 Doel Systeemvereisten beslissingsstroomdiagram voor partitie splitsen en samenvoegen
                
Actie: Verwijderen

  • Geen gedragsverandering

Tijdelijke oplossingen

In plaats van de wachtwoordmethode voor verificatie te gebruiken, kunt u Windows Verkenner gebruiken voor het beheren van sharemachtigingen en het toewijzen van rechten aan gebruikers. U kunt Active Directory-objecten gebruiken om machtigingen voor de map te beheren.

Scenario 3: Services

U kunt de voorkeur Services gebruiken om service-eigenschappen zodanig te wijzigen dat ze worden uitgevoerd in een andere context dan hun oorspronkelijke beveiligingscontext. De volgende voorkeuren worden beïnvloed:

  • Computerconfiguratie -> Instellingen voor het Configuratiescherm -> Services -> Nieuw -> Service

Belangrijke wijzigingen

Opstarten: ongewijzigd, automatisch of handmatig

  • De velden Wachtwoord en Wachtwoord bevestigen zijn uitgeschakeld.
  • De beheerder kan alleen ingebouwde accounts gebruiken.

                 IPsec-site-naar-site-topologie met gateways R1 en R2 verbonden door een tunnel
                
Opstarten: Schakel uit

  • Geen gedragsverandering

Dialoogvenster Nieuw

  • Beheerders die niet-ingebouwde gebruikers proberen te gebruiken voor Dit account" ontvangen de volgende waarschuwing:

                 Waarschuwingsdialoogvenster waarin wordt gemeld dat het CPassword-kenmerk is afgeschaft
                
                
              

Tijdelijke oplossingen

                
                
Services kunnen nog steeds worden uitgevoerd als een lokaal systeemaccount. Servicemachtigingen kunnen worden gewijzigd, zoals wordt beschreven in het volgende artikel in de Microsoft Knowledge Base:

256345 groepsbeleid instellingen configureren om beveiliging voor systeemservices in te stellen

Opmerking Als de service die u wilt configureren niet aanwezig is, moet u de instellingen configureren op een computer waarop de service wordt uitgevoerd. 

Scenario 4: Geplande en onmiddellijke taken (hoogste niveau)

Deze worden gebruikt om geplande taken uit te voeren in een specifieke beveiligingscontext. De mogelijkheid om referenties op te slaan voor geplande taken die moeten worden uitgevoerd als een willekeurige gebruiker wanneer die gebruiker niet is aangemeld, is niet meer beschikbaar. De volgende voorkeuren worden beïnvloed. (Houd er rekening mee dat op sommige platforms 'Ten minste Windows 7' wordt vervangen door 'Windows Vista en hoger'.)

  • Computerconfiguratie -> Configuratiescherm Instellingen -> Geplande taken -> Nieuw -> Geplande taak (ten minste Windows 7)
  • Computerconfiguratie -> Instellingen voor het Configuratiescherm -> Geplande taken -> Nieuw -> Onmiddellijke taak (ten minste Windows 7)
  • Gebruikersconfiguratie -> Instellingen voor het Configuratiescherm -> Geplande taken -> Nieuw -> Geplande taak (ten minste Windows 7)
  • Gebruikersconfiguratie -> Instellingen voor het Configuratiescherm -> Geplande taken -> Nieuw -> Onmiddellijke taak (ten minste Windows 7)

Belangrijke wijzigingen

Actie: Maken, bijwerken of vervangen

  • Als u de optie Uitvoeren of de gebruiker is aangemeld of niet selecteert, wordt de beheerder niet meer om referenties gevraagd.
  • Het selectievakje Wachtwoord niet opslaan is uitgeschakeld. Dit selectievakje is ook standaard ingeschakeld.

                 Nieuw dialoogvenster Stationseigenschappen met optionele velden voor gebruikersreferenties
                
Actie: Verwijderen

Geen gedragsverandering

Tijdelijke oplossingen

Voor de taken "Geplande taak (ten minste Windows 7)" en "Onmiddellijke taak (ten minste Windows 7)" kunnen beheerders specifieke gebruikersaccounts gebruiken wanneer de betreffende gebruiker is aangemeld. Of ze kunnen alleen toegang hebben tot lokale bronnen als die gebruiker. Deze taken kunnen nog steeds worden uitgevoerd binnen de context van de lokale service.

            
Scenario 5: geplande en onmiddellijke taken (downlevel) Dit is de lagere versie van voorkeuren die wordt gebruikt om geplande taken uit te voeren in een specifieke beveiligingscontext. De mogelijkheid om referenties op te slaan voor geplande taken die moeten worden uitgevoerd als een willekeurige gebruiker wanneer die gebruiker niet is aangemeld, is niet meer beschikbaar. De volgende voorkeuren worden beïnvloed:

  • Computerconfiguratie -> Instellingen voor het Configuratiescherm -> Geplande taken -> Nieuw -> Geplande taak
  • Computerconfiguratie -> Instellingen van het Configuratiescherm -> Geplande taken -> Nieuw -> Onmiddellijke taak (Windows XP)
  • Gebruikersconfiguratie -> Instellingen voor het Configuratiescherm -> Geplande taken -> Nieuw -> Geplande taak
  • Gebruikersconfiguratie -> Instellingen voor het Configuratiescherm -> Geplande taken -> Nieuw -> Onmiddellijke taak (Windows XP)

Belangrijke wijzigingen

Actie: Maken, bijwerken of vervangen

  • Het selectievakje Uitvoeren als is uitgeschakeld. Daarom zijn de velden Gebruikersnaam, Wachtwoord en Wachtwoord bevestigen uitgeschakeld.

                 Dialoogvenster Nieuwe taakeigenschappen met de optie Uitvoeren als gemarkeerd
                
Actie: Verwijderen

 Geen gedragsverandering

Tijdelijke oplossingen

Voor de items 'Geplande taak' en 'Directe taak (Windows XP)' worden geplande taken uitgevoerd met de machtigingen die momenteel beschikbaar zijn voor de lokale service. 

Scenario 6: Gegevensbronnen

De voorkeur Gegevensbronnen wordt gebruikt om een gegevensbron te koppelen aan een computer of gebruiker. Met deze functie worden geen referenties meer opgeslagen om toegang te krijgen tot gegevensbronnen die met een wachtwoord zijn beveiligd. De volgende voorkeuren worden beïnvloed:

  • Computerconfiguratie -> Instellingen voor het Configuratiescherm -> Gegevensbronnen
  • Gebruikersconfiguratie -> Instellingen voor het Configuratiescherm -> Gegevensbronnen

Belangrijke wijzigingen

Actie: Maken, bijwerken of vervangen

  • De velden Gebruikersnaam, Wachtwoord en Wachtwoord bevestigen zijn uitgeschakeld:

                 Dialoogvenster Eigenschappen van nieuwe gegevensbron waarin de velden voor gebruikersnaam en wachtwoord zijn gemarkeerd
                
Actie: Verwijderen

  • Geen gedragsverandering

Tijdelijke oplossingen

Er zijn geen tijdelijke oplossingen beschikbaar. Met deze voorkeur worden geen referenties meer opgeslagen om toegang te geven tot gegevensbronnen die met een wachtwoord zijn beveiligd. 

Afschaffing van CPassword

CPassword verwijderen

Het Windows PowerShell-script in dit Microsoft Knowledge Base-artikel detecteert of een domein voorkeuren voor groepsbeleid bevat waarin mogelijk CPassword wordt gebruikt. Als CPassword XML wordt gedetecteerd met een bepaalde voorkeur, wordt deze in deze lijst weergegeven. 

CPassword-voorkeuren detecteren

Dit script moet worden uitgevoerd vanuit een lokale map op de domeincontroller die u wilt opschonen. Kopieer de inhoud en sla deze op in een nieuw Windows PowerShell-bestand, bepaal uw systeemstation en voer vervolgens het script uit zoals wordt aangegeven in het volgende gebruik.

  <#
. SAMENVATTING
Groepsbeleid-objecten in uw domein kunnen voorkeuren hebben waarin wachtwoorden voor verschillende taken worden opgeslagen, zoals:
1. okt. Data Sources
2. okt. Drive Maps
3. okt. Lokale gebruikers
4. okt. Geplande taken (zowel XP als hoger)
5. okt. Services
Deze wachtwoorden worden opgeslagen in SYSVOL als onderdeel van GP-voorkeuren en zijn niet veilig vanwege zwakke codering (32-byte AES).
Daarom raden we u aan dergelijke voorkeuren niet te implementeren in uw domeinomgeving en dergelijke bestaande voorkeuren te verwijderen
voorkeuren. Dit script is bedoeld om beheerders te helpen bij het vinden van GP-voorkeuren in de SYSVOL van hun domein die wachtwoorden bevatten.

. BESCHRIJVING
Dit script moet worden uitgevoerd op een domeincontroller of een clientcomputer waarop RSAT is geïnstalleerd om alle voorkeuren af te drukken die
wachtwoord met informatie zoals GPO, voorkeursnaam, GPEdit-pad waaronder deze voorkeur is gedefinieerd.
Nadat u een lijst met beïnvloede voorkeuren hebt, kunt u deze voorkeuren verwijderen met behulp van de editor in de console Beheer van groepsbeleid.

. SYNTAXIS
Get-SettingsWithCPassword.ps1 [-path <string>]
. VOORBEELD
Get-SettingsWithCPassword.ps1 -Path %WinDir%\SYSVOL\domain
Get-SettingsWithCPassword.ps1 -Path <GPO-pad naar back-upmap>

. OPMERKINGEN
Als de PS-module voor groepsbeleid niet wordt gevonden, bevat de uitvoer GPO-GUID's in plaats van GPO-namen. U kunt de volgende taken uitvoeren
dit script op een domeincontroller of voer het script opnieuw uit op de client nadat je RSAT hebt geïnstalleerd en
de module Groepsbeleid is ingeschakeld.
U kunt ook GPO-GUID's gebruiken om groepsbeleidbeleidnamen te verkrijgen met behulp van de cmdlet Get-GPO.

. KOPPELING
http://go.microsoft.com/fwlink/?LinkID=390507

#>
#----------------------------------------------------------------------------------------------------------------
# Invoerparameters #--------------------------------------------------------------------------------------------------------------
param(
    [tekenreeks]$Path = $(worp "-Pad is vereist.") # Mappad waar GPP's zich bevinden.
 )
#---------------------------------------------------------------------------------------------------------------
$isGPModuleAvailable = $false
$impactedPrefs = { "Groups.xml", "ScheduledTasks.xml","Services.xml", "DataSources.xml", "Drives.xml" }
#----------------------------------------------------------------------------------------------------------------
# import Group olicy module, indien beschikbaar #----------------------------------------------------------------------------------------------------------------
if (-not (Get-Module -name "GroupPolicy"))
{
   if (Get-Module -ListAvailable |
         Where-Object { $_. Name -ieq "GroupPolicy" })
    {
        $isGPModuleAvailable = $true
        Import-Module Groepsbeleid
    }
    anders
    {
        Write-Warning 'Kan groepsbeleid module voor PowerShell niet importeren. Daarom worden groepsbeleidsobject-GUID's gerapporteerd.
                       Voer dit script uit op DC om de GPO-namen te verkrijgen of gebruik de Get-GPO-cmdlet (op DC) om de GPO-naam op te halen van GPO-guid.
    }
}
anders
{
    $isGPModuleAvailable = $true
}
Functie Enum-SettingsWithCpassword ( [tekenreeks]$sysvolLocation )
{
    # GPMC boompaden
    $commonPath = " -> Voorkeuren -> Configuratiescherm Instellingen -> "
    $driveMapPath = " -> Voorkeuren -> Windows-instellingen -> "

    # Recursief alle xml-bestanden binnen de SYVOL-locatie ophalen
    $impactedXmls = Get-ChildItem $sysvolLocation -Recurse -Filter "*.xml" | Where-Object { $impactedPrefs -cmatch $_. Naam }

    # Elk XML-bestand bevat meerdere voorkeuren. Herhaal elke voorkeur om te controleren of deze
    # bevat het kenmerk cPassword en geef dit weer.
    voor elk ( $file in $impactedXmls )
    {
        $fileFullPath = $file. Volledige naam

        # Stel GPP-categorie in. Als het bestand zich bevindt onder de map Machine in SYSVOL
        # de instelling wordt gedefinieerd onder Computerconfiguratie, anders wordt de
        # configuratie is een gebruikersconfiguratie
        if ( $fileFullPath.Contains("Machine") )
        {
            $category = "Computerconfiguratie"
        }
        elseif ( $fileFullPath.Contains("Gebruiker") )
        {
            $category = "Gebruikersconfiguratie"
        }
        anders
        {
            $category = "Onbekend"
        }
        # Bestandsinhoud verkrijgen als XML
        niet
        {
            [xml]$xmlFile = get-content $fileFullPath -ErrorAction Continue
        }
        catch [Exception]{
            Write-Host $_. Exception.Message
        }
        IF ($xmlFile -eq $null)
        {
            doorgaan
        }
        switch ( $file. BaseName )
        {
            Groepen
            {
                $gppWithCpassword = $xmlFile.SelectNodes("Groepen/gebruiker") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
                $preferenceType = "Lokale gebruikers"
            }
            Geplande taken
            {
                $gppWithCpassword = $xmlFile.SelectNodes("GeplandeTaken/*") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
                $preferenceType = "Geplande taken"
            }
            Gegevensbronnen
            {
                $gppWithCpassword = $xmlFile.SelectNodes("DataSources/DataSource") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
                $preferenceType = "Gegevensbronnen"
            }
            Stations
            {
                $gppWithCpassword = $xmlFile.SelectNodes("Stations/station") | 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 = "Diensten"
            }
            standaardinstelling
            { # wis gppWithCpassword en preferenceType voor het volgende item.
                niet
                {
                    Clear-Variable -Name gppWithCpassword -ErrorAction silentlyContinue
                    Clear-Variable -Name preferenceType -ErrorAction silentlyContinue
                }
                catch [uitzondering]{}
            }
        }
        if ($gppWithCpassword -ne $null)
        {
            # Naam van buildgroepsbeleidsobject van GUID die is geëxtraheerd uit filePath
            $guidRegex = [regex]"\{(.*)\}"
            $match = $guidRegex.MATCH($fileFullPath)
            if ($match. Succes)
            {
               $gpoGuid = $match.groepen[1].waarde
               $gpoName = $gpoGuid
            }
            anders
            {
               $gpoName = "Onbekend"
            }
            ALS($isGPModuleAvailable -eq $true)
            {
                niet
                {
                    $gpoInfo = Get-GPO -Guid $gpoGuid -ErrorAction Continue
                    $gpoName = $gpoInfo.DisplayName
                }
                catch [Exception] {
                    Write-Host $_. Exception.Message
                }
            }
            # voorkeuren weergeven die cpassword bevatten
            foreach ( $gpp in $gppWithCpassword )
            {
                if ( $preferenceType -eq "Drive Maps" )
                {
                    $prefLocation = $category + $driveMapPath + $preferenceType
                }
                anders
                {
                    $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. Naam) -passthru |
                       Add-Member -MemberType NoteProperty -name Path -value ($prefLocation)
                Write-Output $obj
            }
        } # end if $gppWithCpassword
    } # end foreach $file
} # eindfuncties Enum-PoliciesWithCpassword
#-----------------------------------------------------------------------------------
# Controleer of het pad geldig is. Alle instellingen opsommen die cpassword bevatten. #-----------------------------------------------------------------------------------
if (Test-Path $Path )
{
    Enum-SettingsWithCpassword $Path
}
anders
{
    Write-Warning "No such directory: $Path"
}

Gebruik (ervan uitgaande dat het systeemstation C is)

.\Get-SettingsWithCPassword.ps1 –pad "C:\Windows\SYSVOL\domain" | Format-List
Opmerking: u kunt zich ook richten op een back-upgroepsbeleidsobject voor het pad in plaats van het domein.

Het detectiescript genereert een lijst met de volgende strekking:

Opdrachtregeluitvoer met locaties in de voorkeuren voor groepsbeleid

Voor langere lijsten kunt u overwegen de uitvoer in een bestand op te slaan:

.\Get-SettingsWithCPassword.ps1 –pad "C:\Windows\SYSVOL\domain" | > ConvertTo-Html gpps.html

CPassword-voorkeuren verwijderen

Als u de voorkeuren wilt verwijderen die CPassword-gegevens bevatten, wordt u aangeraden groepsbeleid Management Console (GPMC) te gebruiken op de domeincontroller of vanaf een client waarop Remote Server Administration Tools is geïnstalleerd. Je kunt op deze consoles elke voorkeur in vijf stappen verwijderen. Ga hiervoor als volgt te werk:

  1. Open in GPMC de voorkeur die CPassword-gegevens bevat.
  2. Wijzig de actie in Verwijderen of Uitschakelen, afhankelijk van de voorkeur.
  3. Klik op OK om de wijzigingen op te slaan.
  4. Wacht op een of twee vernieuwingscycli van het groepsbeleid om wijzigingen door te geven aan clients.
  5. Verwijder de voorkeur nadat de wijzigingen op alle clients zijn toegepast.
  6. Herhaal stap 1 tot en met 5 indien nodig om je hele omgeving te reinigen. Wanneer het detectiescript nul resultaten retourneert, bent u klaar.
Informatie over bestandshashes
Bestandsnaam SHA1-hash SHA256-hash
Windows6.0-KB2928120-ia64.msu B2A74305CB56191774BFCF9FCDEAA983B26DC9A6 DCE8C0F9CEB97DBF1F7B9BAF76458B3770EF01C0EDC581621BC8C3B2C7FD14E7
Windows6.0-KB2928120-x64.msu EUR-Lex - 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 EUR-Lex - 230C64447CC6E4AB3AD7B4D4655B8D8CEFBFBE98 E3FAD567AB6CA616E42873D3623A777185BE061232B952938A8846A974FFA7AF