Accedi a Microsoft
Accedi o crea un account.
Salve,
Select a different account.
Hai più account
Scegli l'account con cui vuoi accedere.

INTRODUZIONE

Microsoft ha rilasciato il bollettino Microsoft della sicurezza MS14-025. Per ulteriori informazioni su questo bollettino della sicurezza:

Come ottenere assistenza e supporto tecnico per questo aggiornamento della sicurezza

Guida all'installazione degli aggiornamenti: Supporto tecnico per Microsoft Update

Soluzioni di sicurezza per professionisti IT: Risoluzione dei problemi e supporto tecnico di TechNet Security

Proteggere il computer basato su Windows da virus e malware: Risoluzione dei virus e Centro sicurezza PC

Supporto tecnico locale in base al proprio paese: Supporto tecnico nel mondo

Informazioni

Problemi noti e informazioni aggiuntive su questo aggiornamento della sicurezza

Gli articoli seguenti contengono ulteriori informazioni su questo aggiornamento della sicurezza in relazione alle versioni del prodotto singolo. Gli articoli possono contenere informazioni sui problemi noti. In tal caso, il problema noto è elencato sotto ogni collegamento dell'articolo.

  • 2928120



    MS14-025: Descrizione dell'aggiornamento della sicurezza relativo agli strumenti di amministrazione server remoto di Windows per i sistemi nei quali è stato installato l'aggiornamento 2919355 13 maggio 2014 (potrebbe essere in inglese)

  • 2961899

    MS14-025: Descrizione dell'aggiornamento della sicurezza relativo agli strumenti di amministrazione server remoto di Windows per i sistemi nei quali non è stato installato l'aggiornamento 2919355 13 maggio 2014 (potrebbe essere in inglese)

Preferenze di Criteri di gruppo

Panoramica

È possibile che alcune preferenze di Criteri di gruppo memorizzino le password. Questa funzionalità sta per essere rimossa poiché la password veniva memorizzata in modo non protetto. In questo articolo vengono descritte le modifiche apportate all'interfaccia utente e le soluzioni alternative disponibili.

Le seguenti preferenze di Criteri di gruppo non consentiranno più di memorizzare i nomi utente e le password:

  • Mapping unità

  • Utenti e gruppi locali

  • Attività pianificate

  • Servizi

  • Origini dati

Tale modifica avrà effetto sul comportamento di tutti gli oggetti Criteri di gruppo (GPO, Group Policy Object) presenti nel sistema dell'utente e che si basano sulle password contenute in tali preferenze. Inoltre, se si utilizza questa funzionalità non verranno create nuove preferenze di Criteri di gruppo.

Per quanto riguarda Mapping unità, Utenti e gruppi locali e Servizi, è possibile effettuare le stesse operazioni utilizzando altre funzionalità di Windows che sono considerate più sicure.

Per quanto riguarda Attività pianificate e Origini dati, non è possibile effettuare operazioni analoghe a quelle basate sulla funzionalità relativa alle password delle preferenze di Criteri di gruppo.

Scenari

Le seguenti preferenze di Criteri di gruppo sono interessate da tale modifica. Ogni preferenza viene dapprima descritta brevemente e poi in dettaglio. Inoltre, vengono fornite soluzioni alternative che consentono all'utente di eseguire attività analoghe.

Preferenza interessata

Si applica all'utente

Si applica al computer

Gestione locale dell'utente

Unità mappate

No

Servizi

No

Attività pianificate (livello superiore)

Attività pianificate (livello inferiore)

Attività immediate (livello superiore)

Attività immediate (livello inferiore)

Origini dati

Riepilogo delle modifiche

  • I campi delle password vengono disattivati per tutte le preferenze interessate. Gli amministratori non possono creare nuove preferenze utilizzando tali campi.

  • Il campo del nome utente viene disattivato per alcune preferenze.

  • Non è possibile aggiornare le preferenze esistenti che contengono una password. È possibile soltanto eliminarle o disattivarle, a seconda delle necessità specifiche della preferenza.

  • Non vengono apportate modifiche al comportamento relativo alle azioni di eliminazione e disattivazione per le preferenze.

  • Quando un amministratore apre una preferenza che contiene l'attributo CPassword, egli visualizza la seguente finestra di dialogo di avviso che lo informa in merito alla recente disattivazione. Tale finestra di dialogo viene visualizzato ogniqualvolta l'utente prova a salvare le modifiche apportate alle preferenze nuove o esistenti che necessitano dell'attributo CPassword. La finestra di dialogo non viene visualizzata soltanto nel caso delle azioni di eliminazione e disattivazione.






Scenario 1: gestione dell'utente locale

La preferenza relativa alla gestione dell'utente locale viene spesso utilizzata per creare amministratori locali che dispongono di una password nota su un computer. Tale funzionalità non è sicura a causa della modalità in cui le preferenze di Criteri di gruppo memorizzano le password. Pertanto, questa funzionalità non è più disponibile. Le seguenti preferenze sono soggette a questo comportamento:

  • Configurazione computer -> Impostazioni del Pannello di controllo -> Utenti e gruppi locali -> Nuovo-> Utente locale

  • Configurazione utente -> Impostazioni del Pannello di controllo -> Utenti e gruppi locali -> Nuovo -> Utente locale

Modifiche importanti

Azione: creazione o sostituzione

  • I campi Nome utente, Password e Conferma password sono disattivati.

  • La finestra di dialogo di avviso viene visualizzata quando l'amministratore apre o tenta di salvare eventuali modifiche apportate a una preferenza esistente e che contiene una password.





Azione: aggiornamento

  • I campi Password e Conferma password vengono disattivati.

  • La finestra di dialogo di avviso viene visualizzata quando l'amministratore apre o tenta di salvare eventuali modifiche apportate a una preferenza esistente e che contiene una password.





Azione: eliminazione

  • Non vengono apportate modifiche al comportamento

Soluzioni alternative

Per gli utenti che in passato si basavano sulla preferenza di Criteri di gruppo per impostare le password dell'amministratore locale, viene fornito il seguente script che può essere utilizzato come alternativa sicura a CPassword. Copiare e salvare i contenuti in un nuovo file di Windows PowerShell, quindi eseguire lo script come indicato nella sezione .EXAMPLE.

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare routine ed eseguire il debug. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.

function Invoke-PasswordRoll
{
<#
.SYNOPSIS

È possibile utilizzare lo script per impostare le password dell'account locale nei computer remoti su password casuali. La combinazione nome utente/password/server viene salvata in un file CSV. Le password dell'account memorizzate nel file CSV possono essere crittografate utilizzando una password degli amministratori. In questo modo, si assicura che non vengano scritte sul disco le password non crittografate dell'account. È possibile decrittografare le password crittografate utilizzando un'altra funzione del file: ConvertTo-CleartextPassword


Function: Invoke-PasswordRoll
Author: Microsoft
Version: 1.0

.DESCRIPTION

È possibile utilizzare lo script per impostare le password dell'account locale nei computer remoti su password casuali. La combinazione nome utente/password/server viene salvata in un file CSV. Le password dell'account memorizzate nel file CSV possono essere crittografate utilizzando una password degli amministratori. In questo modo, si assicura che non vengano scritte sul disco le password non crittografate dell'account. È possibile decrittografare le password crittografate utilizzando un'altra funzione del file: ConvertTo-CleartextPassword

.PARAMETER ComputerName

Matrice di computer su cui eseguire lo script tramite la comunicazione remota di PowerShell.

.PARAMETER LocalAccounts

Matrice di account locali per i quali è necessario modificare la password.

.PARAMETER TsvFileName

Il file per inviare la combinazione nome utente/password/server.

.PARAMETER EncryptionKey

Una password per crittografare il file TSV. Utilizza la crittografia AES. Verranno crittografate soltanto le password memorizzate nel file TSV. Il nome utente e il nome server non saranno crittografati.

.PARAMETER PasswordLength

La lunghezza delle password che vengono create in modo casuale per gli account locali.

.PARAMETER NoEncryption

Non crittografare le password dell'account memorizzate nel file TSV. In questo modo, verranno scritte sul disco password non crittografate.

.EXAMPLE

. .\Invoke-PasswordRoll.ps1 #Carica le funzioni in questo file di script
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator","CustomLocalAdmin") -TsvFileName "LocalAdminCredentials.tsv" -EncryptionKey "Password1"

Si connette a tutti i computer memorizzati nel file "computerlist.txt". Se l'account locale "amministratore" o "CustomLocalAdmin" è presente nel sistema, le rispettive password vengono modificate con quelle create in modo casuale e lunghe 20 caratteri (impostazione predefinita). Le combinazioni nome utente/password/server vengono memorizzate nel file LocalAdminCredentials.tsv e le password dell'account utente vengono crittografate tramite AES utilizzando la password "Password1".

.EXAMPLE

. .\Invoke-PasswordRoll.ps1 #Carica le funzioni in questo file di script
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator") -TsvFileName "LocalAdminCredentials.tsv" -NoEncryption -PasswordLength 40

Si connette a tutti i computer memorizzati nel file "computerlist.txt". Se l'account locale "amministratore" è presente nel sistema, le password vengono modificate con una generata in modo casuale e lunga 40 caratteri. Le combinazioni nome utente/password/server vengono memorizzate nel file LocalAdminCredentials.tsv non crittografate.

.NOTES
Requisiti: -È necessario che sia installato PowerShellv2 o una versione successiva -È necessario che la comunicazione remota di PowerShell sia attivata su tutti i sistemi nei quali viene eseguito lo script

Comportamento dello script: -Se un account locale è presente nel sistema ma non è specificato nel parametro LocalAccounts, lo script attiva la visualizzazione di un avviso sullo schermo. In questo modo, l'utente viene avvisato in merito alla presenza di tale account locale. Quando ciò si verifica, lo script continua a essere in esecuzione. -Se un account locale viene indicato nel parametro LocalAccounts, ma l'account non esiste nel computer, non accade nulla (NON viene creato un account). -La funzione ConvertTo-CleartextPassword inclusa nel file può essere utilizzata per decrittografare le password crittografate nel file TSV. -Se non è possibile connettersi a un server indicato in ComputerName, PowerShell invierà un messaggio di errore. -Microsoft consiglia alle aziende di modificare regolarmente tutte le password degli account locali e di dominio.

#>
[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
)


#Carica tutte le classi .net necessarie
Add-Type -AssemblyName "System.Web" -ErrorAction Stop


#Si tratta dello Scriptblock che viene eseguito in tutti i computer specificati in ComputerName
$RemoteRollScript = {
Param(
[Parameter(Mandatory=$true, Position=1)]
[String[]]
$Passwords,

[Parameter(Mandatory=$true, Position=2)]
[String[]]
$LocalAccounts,

#Qui è possibile registrare il nome del server a cui era connesso lo script. Talvolta, i record DNS creano problemi, quindi questa opzione è utile.
[Parameter(Mandatory=$true, Position=3)]
[String]
$TargettedServerName
)

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

#Controlla se il computer dispone di account di utenti locali le cui password non vengono modificate dallo script
foreach ($User in $LocalUsers)
{
if ($LocalAccounts -inotcontains $User)
{
Write-Warning "Server: '$($TargettedServerName)' has a local account '$($User)' whos password is NOT being changed by this script"
}
}

#Modificare la password di ogni account locale specificato e che è presente nel server
$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 "Error changing password for user:$($LocalAdmin) on server:$($TargettedServerName)"
}
}

$PasswordIndex++
}
}


#Generare password nel client nel quale è in esecuzione lo script e non nel computer remoto. System.Web.Security non è disponibile nel profilo client .NET. #Effettuando questa chiamata nel client in cui è in esecuzione lo script si assicura che soltanto 1 computer necessita dell'installazione completa del runtime .NET (al contrario di tutti i sistemi nei quali vengono modificate le password).
function Create-RandomPassword
{
Param(
[Parameter(Mandatory=$true)]
[ValidateRange(20,120)]
[Int]
$PasswordLength
)

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

#Non dovrebbe mai avere esito negativo, ma viene comunque incluso un controllo di integrità
if ($Password.Length -ne $PasswordLength)
{
throw new Exception("Password returned by GeneratePassword is not the same length as required. Required length: $($PasswordLength). Generated length: $($Password.Length)")
}

return $Password
}


#Funzionalità principale: generare una password e un computer remoto per modificare la password degli account locali specificati
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 "Error creating TSV encryption key" -ErrorAction Stop
}
}

foreach ($Computer in $ComputerName)
{
#È necessario creare 1 password per ogni account che può essere modificato
$Passwords = @()
for ($i = 0; $i -lt $LocalAccounts.Length; $i++)
{
$Passwords += Create-RandomPassword -PasswordLength $PasswordLength
}

Write-Output "Connecting to server '$($Computer)' to roll specified local admin passwords"
$Result = Invoke-Command -ScriptBlock $RemoteRollScript -ArgumentList @($Passwords, $LocalAccounts, $Computer) -ComputerName $Computer
#Se viene utilizzata la crittografia, crittografare la password utilizzando la chiave fornita dall'utente, prima di scrivere sul disco
if ($Result -ne $null)
{
if ($PsCmdlet.ParameterSetName -ieq "NoEncryption")
{
$Result | Select-Object Username,Password,TargettedServerName,RealServerName | Export-Csv -Append -Path $TsvFileName -NoTypeInformation
}
else
{
#Esclude le voci $null restituite
$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
{
<#
.SYNOPSIS
Questa funzione può essere utilizzata per decrittografare le password che sono state memorizzate dopo essere state crittografate tramite la funzione Invoke-PasswordRoll.

Function: ConvertTo-CleartextPassword
Author: Microsoft
Version: 1.0

.DESCRIPTION
Questa funzione può essere utilizzata per decrittografare le password che sono state memorizzate dopo essere state crittografate tramite la funzione Invoke-PasswordRoll.


.PARAMETER EncryptedPassword

La password crittografata che è stata memorizzata nel file TSV.

.PARAMETER EncryptionKey

La password utilizzata per la crittografia.


.EXAMPLE. .\Invoke-PasswordRoll.ps1 #Carica le funzioni in questo file di script
ConvertTo-CleartextPassword -EncryptionKey "Password1" -EncryptedPassword 76492d1116743f0423413b16050a5345MgB8AGcAZgBaAHUAaQBwADAAQgB2AGgAcABNADMASwBaAFoAQQBzADEAeABjAEEAPQA9AHwAZgBiAGYAMAA1ADYANgA2ADEANwBkADQAZgAwADMANABjAGUAZQAxAGIAMABiADkANgBiADkAMAA4ADcANwBhADMAYQA3AGYAOABkADcAMQA5ADQAMwBmAGYANQBhADEAYQBjADcANABkADIANgBhADUANwBlADgAMAAyADQANgA1ADIAOQA0AGMAZQA0ADEAMwAzADcANQAyADUANAAzADYAMAA1AGEANgAzADEAMQA5ADAAYwBmADQAZAA2AGQA"

Consente di decrittografare le password crittografate che sono state memorizzate nel file TSV.

#>
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)))
}   Gli amministratori possono aggiungere account amministrativi locali ai computer creando un gruppo Active Directory da aggiungere al gruppo di amministratori attraverso le preferenze di Criteri di gruppo -> Gruppo locale. Questa azione non memorizza credenziali nella cache. La finestra di dialogo ha un aspetto analogo al seguente. Questa soluzione alternativa non richiede una connessione a Servizi di dominio Active Directory quando l'utente accede utilizzando quelle credenziali.





Scenario 2: unità mappate

Gli amministratori utilizzano mapping unità per allocare i percorsi di rete per gli utenti. La funzionalità di protezione della password viene utilizzata per garantire l'accesso al disco con autorizzazioni. Le seguenti preferenze sono soggette a questo comportamento:

  • Configurazione utente -> Impostazioni di Windows -> Mapping unità -> Nuovo -> Unità mappata

Modifiche importanti

Azione: creazione, aggiornamento o sostituzione

  • I campi Nome utente, Password e Conferma password sono disattivati.




Azione: eliminazione

  • Non vengono apportate modifiche al comportamento

Soluzioni alternative

Invece di utilizzare il metodo della password per l'autenticazione, è possibile utilizzare Esplora risorse per gestire le autorizzazioni di condivisione e allocare i diritti agli utenti. È possibile utilizzare gli oggetti di Active Directory per controllare le autorizzazioni della cartella.


Scenario 3: servizi

È possibile utilizzare la preferenza Servizi per modificare le proprietà del servizio in modo che siano eseguite in un contesto differente rispetto a quello di sicurezza originale. Le seguenti preferenze sono soggette a questo comportamento:

  • Configurazione computer -> Impostazioni del Pannello di controllo -> Servizi -> Nuovo -> Servizio

Modifiche importanti

Esecuzione automatica: nessuna modifica, automatica o manuale

  • I campi Password e Conferma password vengono disattivati.

  • L'amministratore può utilizzare soltanto account integrati.




Esecuzione automatica: disattivazione

  • Non vengono apportate modifiche al comportamento

Finestra di dialogo Nuovo

  • Gli amministratori che provano a utilizzare utenti non integrati per l'account, visualizzano il seguente messaggio:





Soluzioni alternative




I servizi possono comunque essere eseguiti come un account di sistema locale. È possibile modificare le autorizzazioni di servizio come descritto nel seguente articolo della Microsoft Knowledge Base:

256345 Configurazione delle impostazioni di Criteri di gruppo per impostare la protezione dei servizi di sistema

Nota Se il servizio che si desidera configurare non è presente, è necessario configurare le impostazioni nel computer in cui è in esecuzione il servizio. 


Scenario 4: attività pianificate e immediate (livello superiore)

Vengono utilizzate per eseguire attività pianificate in un determinato contesto di sicurezza. Non è più disponibile la capacità di memorizzare le credenziali affinché le attività pianificate vengano eseguite come utente arbitrario quando quell'utente si è disconnesso. Le seguenti preferenze sono soggette a questo comportamento. Tenere presente che in determinate piattaforme, la dicitura "Almeno Windows 7" è stata sostituita con "Windows Vista e versioni successive".

  • Configurazione computer -> Impostazioni del Pannello di controllo -> Attività pianificate -> Nuovo -> Attività pianificata (Almeno Windows 7)

  • Configurazione computer -> Impostazioni del Pannello di controllo -> Attività pianificate -> Nuovo -> Attività immediata (Almeno Windows 7)

  • Configurazione utente -> Impostazioni del Pannello di controllo -> Attività pianificate -> Nuovo -> Attività pianificata (Almeno Windows 7)

  • Configurazione utente -> Impostazioni del Pannello di controllo -> Attività pianificate -> Nuovo -> Attività immediata (Almeno Windows 7)

Modifiche importanti

Azione: creazione, aggiornamento o sostituzione

  • Quando si seleziona l'opzione Esegui indipendentemente dalla connessione degli utenti, nella finestra di dialogo non viene più richiesto all'amministratore di fornire le credenziali.

  • Viene disattivata la casella di controllo Non memorizzare la password. Per impostazione predefinita, anche la casella è selezionata.




Azione: eliminazione

Non vengono apportate modifiche al comportamento

Soluzioni alternative

Per quanto riguarda le "Attività pianificate (almeno Windows 7)", gli amministratori possono utilizzare account utente specifici quando tale utente ha effettuato l'accesso. In alternativa, possono accedere alle risorse locali come l'utente. Queste attività possono essere comunque eseguite nel contesto del servizio locale.



Scenario 5: attività pianificate e immediate (livello inferiore) Si tratta della versione di livello inferiore delle preferenze utilizzate per eseguire le attività pianificate in uno specifico contesto di sicurezza. Non è più disponibile la capacità di memorizzare le credenziali affinché le attività pianificate vengano eseguite come utente arbitrario quando quell'utente si è disconnesso. Le seguenti preferenze sono soggette a questo comportamento:

  • Configurazione computer -> Impostazioni del Pannello di controllo -> Attività pianificate -> Nuovo -> Attività pianificata

  • Configurazione computer -> Impostazioni del Pannello di controllo -> Attività pianificate -> Nuovo -> Attività immediata (Windows XP)

  • Configurazione utente -> Impostazioni del Pannello di controllo -> Attività pianificate -> Nuovo -> Attività pianificata

  • Configurazione utente -> Impostazioni del Pannello di controllo -> Attività pianificate -> Nuovo -> Attività immediata (Windows XP)

Modifiche importanti

Azione: creazione, aggiornamento o sostituzione

  • Viene disattivata la casella di controllo Esegui come. Pertanto, i campi Nome utente, Password e Conferma password vengono tutti disattivati.




Azione: eliminazione

Non vengono apportate modifiche al comportamento

Soluzioni alternative

Per quanto riguarda gli elementi "Attività pianificate" e "Attività immediate (Windows XP)", le attività pianificate vengono eseguite utilizzando le autorizzazione che sono disponibili per il servizio locale.


Scenario 6: origini dati

La preferenza Origini dati viene utilizzata per associare un'origine dati a un computer o a un utente. Questa funzionalità non archivia più le credenziali per attivare l'accesso alle origini dati che sono protette da password. Le seguenti preferenze sono soggette a questo comportamento:

  • Configurazione computer -> Impostazioni del Pannello di controllo -> Origini dati

  • Configurazione utente -> Impostazioni del Pannello di controllo -> Origini dati

Modifiche importanti

Azione: creazione, aggiornamento o sostituzione

  • I campi Nome utente, Password e Conferma password sono disattivati.




Azione: eliminazione

  • Non vengono apportate modifiche al comportamento

Soluzioni alternative

Non sono disponibili soluzioni alternative. Questa preferenza non archivia più le credenziali per consentire l'accesso alle origini dati che sono protette da password.


Disattivazione di CPassword

Rimozione di CPassword

Lo script di Windows PowerShell incluso nell'articolo della Microsoft Knowledge Base consente di rilevare se un dominio contiene preferenze di Criteri di gruppo che utilizzano CPassword. Se CPassword XML viene rilevato in una determinata preferenza, viene visualizzato in questo elenco.


Rilevamento delle preferenze di CPassword

Questo script deve essere eseguito da una directory locale nel controller di dominio da pulire. Copiare e salvare i contenuti in un nuovo file di Windows PowerShell, determinare l'unità del sistema, quindi eseguire lo script come indicato nelle seguenti informazioni sull'utilizzo.

<#
.SYNOPSIS

Gli oggetti di Criteri di gruppo del dominio possono disporre di preferenze che memorizzano le password di attività differenti, ad esempio le seguenti:

1. Origini dati 2. Mapping unità 3. Utenti locali 4. Attività pianificate (sia XP che di livello superiore) 5. Servizi

Queste password vengono memorizzate in SYSVOL come parte delle preferenze GP e non sono protette a causa di una crittografia debole (AES a 32 byte). Pertanto, si consiglia di non distribuire tali preferenze nell'ambiente del dominio e di rimuovere tutte le preferenze esistenti. Questo script fornisce assistenza agli amministratori nell'individuazione delle preferenze GP in SYSVOL del proprio dominio che contengono password.

.DESCRIPTION
Lo script deve essere eseguito in un controller di dominio o in un computer client su cui sia installato RSAT al fine di stampare tutte le preferenze che contengono password con informazioni quali oggetti di Criteri di gruppo, nome della preferenza, percorso GPEdit nel quale viene definita la preferenza.

Una volta ottenuto l'elenco delle preferenze interessate, queste ultime possono essere rimosse utilizzando l'editor disponibile nella Console Gestione Criteri di gruppo.

.SYNTAXGet-SettingsWithCPassword.ps1 [-Path <String>] .EXAMPLEGet-SettingsWithCPassword.ps1 -Path %WinDir%\SYSVOL\domain

Get-SettingsWithCPassword.ps1 -Path <GPO Backup Folder Path>

.NOTES
Se il modulo PS di Criteri di gruppo non viene trovato, l'output conterrà GUID dell'oggetto Criteri di gruppo invece dei nomi dell'oggetto. È possibile eseguire lo script su un controller di dominio o eseguire di nuovo lo script su un client dopo avere installato RSAT e attivato il modulo Criteri di gruppo. In alternativa, è possibile utilizzare i GUID dell'oggetto Criteri di gruppo per visualizzare i nomi dell'oggetto utilizzando il cmdlet Get-GPO.

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

#>

#---------------------------------------------------------------------------------------------------------------- # Inserire parametri #--------------------------------------------------------------------------------------------------------------
param(
[string]$Path = $(throw "-Path is required.") # Percorso della directory in cui si trovano i GPP.
)

#---------------------------------------------------------------------------------------------------------------

$isGPModuleAvailable = $false
$impactedPrefs = { "Groups.xml", "ScheduledTasks.xml","Services.xml", "DataSources.xml", "Drives.xml" }

#---------------------------------------------------------------------------------------------------------------- # importare il modulo Criteri di gruppo, se disponibile #----------------------------------------------------------------------------------------------------------------
if (-not (Get-Module -name "GroupPolicy"))
{
if (Get-Module -ListAvailable |
Where-Object { $_.Name -ieq "GroupPolicy" })
{
$isGPModuleAvailable = $true
Import-Module "GroupPolicy"
}
else
{
Write-Warning "Unable to import Group Policy module for PowerShell. Therefore, GPO guids will be reported.
Run this script on DC to obtain the GPO names, or use the Get-GPO cmdlet (on DC) to obtain the GPO name from GPO guid."
}
}
else
{
$isGPModuleAvailable = $true
}

Function Enum-SettingsWithCpassword ( [string]$sysvolLocation )
{
# Percorsi albero GPMC
$commonPath = " -> Preferences -> Control Panel Settings -> "
$driveMapPath = " -> Preferences -> Windows Settings -> "

# Ottenere in modo ricorsivo tutti i file xml all'interno del percorso di SYVOL
$impactedXmls = Get-ChildItem $sysvolLocation -Recurse -Filter "*.xml" | Where-Object { $impactedPrefs -cmatch $_.Name }


# Ogni file xml contiene più preferenze. Scorrere tra le preferenze per controllare se # contengono l'attributo CPassword e per visualizzarlo.

foreach ( $file in $impactedXmls )
{
$fileFullPath = $file.FullName

# Impostare la categoria GPP. Se il file si trova nella cartella Machine in SYSVOL # l'impostazione viene definita nella configurazione computer altrimenti # l'impostazione viene applicata alla configurazione utente

if ( $fileFullPath.Contains("Machine") )
{
$category = "Computer Configuration"
}
elseif ( $fileFullPath.Contains("User") )
{
$category = "User Configuration"
}
else
{
$category = "Unknown"
}

# Visualizzare il contenuto del file in XML
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 { $_.Properties.cpassword -ne $null}
$preferenceType = "Local Users"
}

ScheduledTasks
{
$gppWithCpassword = $xmlFile.SelectNodes("ScheduledTasks/*") | where-Object { $_.Properties.cpassword -ne $null}
$preferenceType = "Scheduled Tasks"
}

DataSources
{
$gppWithCpassword = $xmlFile.SelectNodes("DataSources/DataSource") | where-Object { $_.Properties.cpassword -ne $null}
$preferenceType = "Data sources"
}

Drives
{
$gppWithCpassword = $xmlFile.SelectNodes("Drives/Drive") | where-Object { $_.Properties.cpassword -ne $null}
$preferenceType = "Drive Maps"
}

Services
{
$gppWithCpassword = $xmlFile.SelectNodes("NTServices/NTService") | where-Object { $_.Properties.cpassword -ne $null}
$preferenceType = "Services"
}

default
{ # deselezionare gppWithCpassword e la preferenza Tipo per l'elemento successivo.
try
{
Clear-Variable -Name gppWithCpassword -ErrorAction SilentlyContinue
Clear-Variable -Name preferenceType -ErrorAction SilentlyContinue
}
catch [Exception]{}
}
}if ($gppWithCpassword -ne $null)
{
# Creare il nome GPO dal GUID estratto dal percorso del file
$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
}
}

# visualizzare le preferenze che contengono cpassword
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

#----------------------------------------------------------------------------------- # Controllare se il percorso è valido. Elencare tutte le impostazioni che contengono cpassword. #-----------------------------------------------------------------------------------
if (Test-Path $Path )
{
Enum-SettingsWithCpassword $Path
}
else
{
Write-Warning "No such directory: $Path"
}

Esempio di utilizzo (si presuppone che l'unità di sistema sia C)

.\Get-SettingsWithCPassword.ps1 -percorso "C:\Windows\SYSVOL\domain" | Format-List
Nota Tenere presente che è possibile individuare tutti i GPO di backup per il percorso invece che per il dominio.

Lo script di rilevamento consente di creare un elenco simile al seguente:



Nel caso di elenchi più grandi, salvare l'output su un file:

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

Rimozione delle preferenze di CPassword

Per rimuovere le preferenze che contengono dati CPassword, si consiglia di utilizzare la Console Gestione Criteri di gruppo (GPMC, Group Policy Management Console) nel controller di dominio o da un client su cui siano installati gli strumenti di amministrazione server remoto. In questa console, è possibile eseguire cinque passaggi per rimuovere le preferenze. Per effettuare questa operazione, attenersi alla seguente procedura:

  1. Nella console, aprire la preferenza che contiene i dati CPassword.

  2. Modificare l'azione in Elimina o Disattiva, a seconda delle necessità della preferenza.

  3. Scegliere OK per salvare le modifiche.

  4. Attendere uno o due cicli di aggiornamento di Criteri di gruppo affinché le modifiche vengano propagate ai client.

  5. Dopo aver applicato le modifiche su tutti i client, eliminare la preferenza.

  6. Ripetere i passaggi da 1 a 5 per pulire l'intero ambiente. Quando lo script di rilevamento restituisce zero risultati, l'operazione è terminata.

File name

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


Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×