INTRODUZIONE
Microsoft ha rilasciato il bollettino Microsoft della sicurezza MS14-025. Per ulteriori informazioni su questo bollettino della sicurezza:
-
Utenti privati:
https://www.microsoft.com/security/pc-security/updates.aspxIgnorare i dettagli: Scaricare subito gli aggiornamenti per PC o laptop dal sito Web Microsoft Update:
-
Professionisti IT:
https://technet.microsoft.com/it-it/library/security/ms14-025
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 |
Sì |
Sì |
Unità mappate |
Sì |
No |
Servizi |
No |
Sì |
Attività pianificate (livello superiore) |
Sì |
Sì |
Attività pianificate (livello inferiore) |
Sì |
Sì |
Attività immediate (livello superiore) |
Sì |
Sì |
Attività immediate (livello inferiore) |
Sì |
Sì |
Origini dati |
Sì |
Sì |
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:
-
Nella console, aprire la preferenza che contiene i dati CPassword.
-
Modificare l'azione in Elimina o Disattiva, a seconda delle necessità della preferenza.
-
Scegliere OK per salvare le modifiche.
-
Attendere uno o due cicli di aggiornamento di Criteri di gruppo affinché le modifiche vengano propagate ai client.
-
Dopo aver applicato le modifiche su tutti i client, eliminare la preferenza.
-
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 |