GİRİŞ
Microsoft, MS14-025 güvenlik bültenini yayımladı. Bu güvenlik bülteni hakkında daha fazla bilgi edinmek için:
Ev kullanıcıları:
https://www.microsoft.com/security/pc-security/updates.aspx Ayrıntıları atlayın: Ev bilgisayarınız veya dizüstü bilgisayarınız için güncelleştirmeleri Microsoft Update web sitesinden hemen indirin:
BT uzmanları:
Bu güvenlik güncelleştirmesi için yardım ve destek alma
Güncelleştirmeleri yüklemeye yönelik yardım:
Microsoft Update desteği
BT uzmanları için güvenlik çözümleri:
TechNet Güvenliği Sorun Giderme ve Destek
Windows tabanlı bilgisayarınızın Windows'unu virüslere ve kötü amaçlı yazılımlara karşı korumaya yardımcı olun:
Virüs Çözüm ve Güvenlik Merkezi
Ülkenize göre yerel destek:
Uluslararası Destek
Daha Fazla Bilgi
Bu güvenlik güncelleştirmesiyle ilgili bilinen sorunlar ve daha fazla bilgi
Aşağıdaki makaleler, tek tek ürün sürümleriyle ilgili olarak bu güvenlik güncelleştirmesi hakkında daha fazla bilgi içerir. Makaleler bilinen sorun bilgilerini içerebilir. Böyle bir durumda, bilinen sorun her makale bağlantısının altında listelenir.
-
MS14-025: Güncelleştirme 2919355 yüklü olan sistemler için Windows Uzaktan Sunucu Yönetim Araçları'na yönelik güvenlik güncelleştirmesinin açıklaması: 13 Mayıs 2014
-
MS14-025: Güncelleştirme 2919355 yüklenmemiş sistemler için Windows Uzaktan Sunucu Yönetim Araçları'na yönelik güvenlik güncelleştirmesinin açıklaması: 13 Mayıs 2014
Grup İlkesigrup ilkesi Tercihler
Genel bakış
Bazı Grup İlkesigrup ilkesi Tercihler bir şifre saklayabilir. Parola güvenli olmayan bir şekilde depolandığı için bu işlev kaldırılıyor. Bu makalede, kullanıcı arabirimi değişiklikleri ve kullanılabilir geçici çözümler açıklanmaktadır.
Aşağıdaki Grup İlkesigrup ilkesi Tercihler artık kullanıcı adlarının ve parolaların kaydedilmesine izin vermeyecektir:
- Sürücü Haritaları
- Yerel Kullanıcılar ve Gruplar
- Zamanlanmış Görevler
- Hizmetler
- Data Sources
Bu, ortamınızda bulunan ve bu tercihlerde yer alan parolaları kullanan mevcut tüm grup ilkesi Nesnelerinin (GPO) davranışını etkiler. Bu işlev kullanılarak yeni grup ilkesi Tercihleri oluşturulmasını da engeller.
Sürücü Haritaları, Yerel Kullanıcılar ve Gruplar ve Hizmetler için Windows'taki diğer, daha güvenli işlevler aracılığıyla benzer hedeflere ulaşabilirsiniz.
Zamanlanmış Görevler ve Veri Kaynakları için, grup ilkesi Tercihleri parolalarının güvenli olmayan işlevselliği sayesinde elde edilebilen hedeflerin aynılarını elde edemezsiniz.
Senaryolar
Aşağıdaki Grup İlkesigrup ilkesi Tercihler bu değişiklikten etkilenir. Her tercih kısaca ve ardından daha ayrıntılı olarak ele alınır. Ayrıca, aynı görevleri gerçekleştirmenizi sağlayan geçici çözümler de sağlanmaktadır.
| Etkilenen tercih | Kullanıcı için geçerlidir |
Bilgisayar için geçerlidir |
|---|---|---|
| Yerel kullanıcı yönetimi | Evet | Evet |
| Eşlenen sürücüler | Evet | Hayır |
| Hizmetler | Hayır | Evet |
| Zamanlanmış görevler (üst düzey) | Evet | Evet |
| Zamanlanmış görevler (alt düzey) | Evet | Evet |
| Acil görevler (üst düzey) | Evet | Evet |
| Acil görevler (alt düzey) | Evet | Evet |
| Veri kaynakları | Evet | Evet |
Değişikliklerin özeti
- Etkilenen tüm tercihlerde parola alanları devre dışı bırakılır. Yöneticiler bu parola alanlarını kullanarak yeni tercihler oluşturamaz.
- Kullanıcı adı alanı bazı tercihlerde devre dışı bırakılmıştır.
- Parola içeren mevcut tercihler güncelleştirilemez. Bunlar yalnızca belirli tercihe uygun şekilde silinebilir veya devre dışı bırakılabilir.
- Tercihler için Sil ve Devre Dışı Bırak eylemlerinin davranışı değişmedi.
- Bir yönetici CPassword özniteliğini içeren herhangi bir tercihi açtığında, yönetici kendisini son kullanımdan kaldırma konusunda bilgilendirmek için aşağıdaki uyarı iletişim kutusunu alır. CPassword özniteliğini gerektiren yeni veya mevcut tercihlerde yapılan değişiklikleri kaydetme girişimleri aynı iletişim kutusunu tetikler. Yalnızca Sil ve Devre Dışı Bırak eylemleri uyarı iletişim kutularını tetiklemez.
Senaryo 1: Yerel kullanıcı yönetimi
Yerel Kullanıcı Yönetimi tercihi, bilgisayarda bilinen bir parolası olan yerel yöneticiler oluşturmak için sıklıkla kullanılır. Bu özellik, grup ilkesi Tercihleri'nin parolaları depolama şekli nedeniyle güvenli değildir. Dolayısıyla, bu işlev artık kullanılamaz. Aşağıdaki tercihler etkilenir:
- Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Yerel Kullanıcılar ve Gruplar-> Yeni-> Yerel Kullanıcı
- Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Yerel Kullanıcılar ve Gruplar-> Yeni-> Yerel Kullanıcı
Önemli değişiklikler
Eylem: Oluşturma veya değiştirme
- Kullanıcı adı, Parola ve Parolayı Onayla alanları devre dışı bırakılır.
- Yönetici parola içeren mevcut bir tercihi açtığında veya değişiklikleri kaydetmeye çalıştığında uyarı iletişim kutusu görüntülenir.
İşlem: Güncelleştirme
- Parola ve Parolayı Onayla alanları devre dışı bırakılır.
- Yönetici parola içeren mevcut bir tercihi açtığında veya değişiklikleri kaydetmeye çalıştığında uyarı iletişim kutusu görüntülenir.
Eylem: Sil
- Davranışta değişiklik yok
Geçici Çözümler
Daha önce yerel yönetici şifrelerini ayarlamak için grup ilkesi Tercihine güvenenler için, aşağıdaki komut dosyası CPassword'a güvenli bir alternatif olarak sağlanmıştır. İçeriği kopyalayıp yeni bir Windows PowerShellWindows PowerShell dosyasına kaydedin ve ardından betiği dosyasında belirtildiği gibi çalıştırın. ÖRNEK bölümü.
Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; açık veya zımni hiçbir garanti vermez. Bu, satılabilirlik veya belirli bir amaca uygunluk ile ilgili zımni garantileri içerir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama diline ve prosedürler oluşturmak ve prosedürlerde hata ayıklamak için kullanılan araçlara aşina olduğunuzu varsaymaktadır. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğini açıklamaya yardımcı olabilir. Ancak, ek işlevsellik sağlamak veya özel gereksinimlerinizi karşılamak için prosedürler oluşturmak için bu örnekleri değiştirmeyeceklerdir.
işlev Invoke-PasswordRoll
{
<#
. ÖZET
Bu komut dosyası, uzak makinelerdeki yerel hesap parolalarını rastgele parolalara ayarlamak için kullanılabilir. Kullanıcı adı/şifre/sunucu kombinasyonu bir CSV dosyasına kaydedilecektir.
CSV dosyasında depolanan hesap parolaları, şifresiz metin hesap parolalarının diske yazılmadığından emin olmayı seçerek, yöneticilerin parolası kullanılarak şifrelenebilir.
Şifrelenmiş parolaların şifresi, bu dosyadaki başka bir işlev kullanılarak çözülebilir: ConvertTo-CleartextPassword
İşlevi: Invoke-PasswordRoll
Yazar: Microsoft
Sürüm: 1.0
. AÇIKLAMA
Bu komut dosyası, uzak makinelerdeki yerel hesap parolalarını rastgele parolalara ayarlamak için kullanılabilir. Kullanıcı adı/şifre/sunucu kombinasyonu bir CSV dosyasına kaydedilecektir.
CSV dosyasında depolanan hesap parolaları, şifresiz metin hesap parolalarının diske yazılmadığından emin olmayı seçerek, yöneticilerin parolası kullanılarak şifrelenebilir.
Şifrelenmiş parolaların şifresi, bu dosyadaki başka bir işlev kullanılarak çözülebilir: ConvertTo-CleartextPassword
. PARAMETRE ComputerName
PowerShell uzaktan iletişimi kullanılarak betiği çalıştıracak bir bilgisayar dizisi.
. PARAMETRE LocalAccounts
Parolası değiştirilmesi gereken bir dizi yerel hesap.
. PARAMETRE: tsvdosyaadı
Kullanıcı adı/parola/sunucu bileşimlerinin çıkışı alınacak dosya.
. PARAMETRE EncryptionKey
TSV dosyasını şifrelemek için kullanılan bir parola. AES şifrelemesini kullanır. Yalnızca TSV dosyasında saklanan şifreler şifrelenir, kullanıcı adı ve sunucu adı düz metin olur.
. PARAMETRE PasswordLength
Yerel hesaplar için rastgele oluşturulacak parolaların uzunluğu.
. PARAMETRE: NoEncryption
TSV dosyasında saklanan hesap parolalarını şifrelemeyin. Bunun sonucunda diske düz metin parolalar yazılır.
. ÖRNEK
. .\Invoke-PasswordRoll.ps1 #Loads bu betik dosyasındaki işlevler
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("administrator","CustomLocalAdmin") -TsvFileName "LocalAdminCredentials.tsv" -EncryptionKey "Password1"
"computerlist.txt" dosyasında depolanan tüm bilgisayarlara bağlanır. Sistemde "administrator" ve/veya "CustomLocalAdmin" yerel hesabı varsa şifreleri değiştirilir
20 uzunluğunda rastgele oluşturulmuş bir parolaya (varsayılan). Kullanıcı adı/parola/sunucu bileşimleri LocalAdminCredentials.tsv dosyasında depolanır ve hesap parolaları "Password1" parolası kullanılarak AES şifrelenir.
. ÖRNEK
. .\Invoke-PasswordRoll.ps1 #Loads bu betik dosyasındaki işlevler
Invoke-PasswordRoll -ComputerName (Get-Content computerlist.txt) -LocalAccounts @("yönetici") -TsvFileName "LocalAdminCredentials.tsv" -NoEncryption -PasswordLength 40
"computerlist.txt" dosyasında depolanan tüm bilgisayarlara bağlanır. Sistemde yerel hesap "yönetici" mevcutsa, şifresi rastgele oluşturulmuş olarak değiştirilir
40 uzunluğunda şifre. Kullanıcı adı/parola/sunucu birleşimleri LocalAdminCredentials.tsv dosyasında şifrelenmemiş olarak depolanır.
. NOTLAR
Gereksinimler:
-PowerShellv2 veya üzeri yüklü olmalıdır
-PowerShell uzaktan iletişimi, betiğin çalıştırılacağı tüm sistemlerde etkinleştirilmelidir
Komut dosyası davranışı:
-Sistemde yerel bir hesap varsa, ancak LocalAccounts parametresinde belirtilmemişse, komut dosyası bu yerel hesabın varlığına dair sizi uyarmak için ekrana bir uyarı yazacaktır. Bu gerçekleştiğinde komut dosyası çalışmaya devam eder.
-LocalAccounts parametresinde yerel bir hesap belirtilirse, ancak hesap bilgisayarda yoksa, hiçbir şey olmaz (bir hesap oluşturulmaz).
-Bu dosyada bulunan ConvertTo-CleartextPassword işlevi, TSV dosyasında şifrelenmiş olarak depolanan şifrelerin şifresini çözmek için kullanılabilir.
-ComputerName'de belirtilen bir sunucuya bağlanılamazsa, PowerShell bir hata iletisi verir.
-Microsoft, şirketlere tüm yerel ve etki alanı hesap parolalarını düzenli olarak almalarını önerir.
#>
[CmdletBinding(DefaultParameterSetName="Encryption")]
Param(
[Parametre(Zorunlu=$true)]
[Dize[]]
$ComputerName,
[Parametre(Zorunlu=$true)]
[Dize[]]
$LocalAccounts,
[Parametre(Zorunlu=$true)]
[Dize]
$TsvFileName,
[Parameter(ParameterSetName="Encryption", Mandatory=$true)]
[Dize]
$EncryptionKey,
[Parametre()]
[GeçerliAralık(20,120)]
[Int]
$PasswordLength = 20,
[Parameter(ParameterSetName="NoEncryption", Mandatory=$true)]
[Değiştirmek]
$NoEncryption
)
Gerekli .NET sınıflarını #Load
Add-Type -AssemblyName "System.Web" -ErrorAction Stop
#This, ComputerName'de belirtilen her bilgisayarda yürütülecek komut dosyası bloğudur
$RemoteRollScript = {
Param(
[Parametre(Zorunlu=$true, Konum=1)]
[Dize[]]
$Passwords,
[Parametre(Zorunlu=$true, Konum=2)]
[Dize[]]
$LocalAccounts,
#This burada, böylece komut dosyasının bağlandığı sunucu adının ne olduğunu kaydedebilirim, bazen DNS kayıtları bozulur, buna sahip olmak güzel olabilir.
[Parametre(Zorunlu=$true, Konum=3)]
[Dize]
$TargettedServerName
)
$LocalUsers = Get-WmiObject Win32_UserAccount -Filter "LocalAccount=true" | Foreach {$_. İsim}
Bilgisayarda, parolaları bu komut dosyası tarafından yuvarlanmayacak yerel kullanıcı hesapları varsa #Check
foreach ($LocalUsers'de $User)
{
if ($LocalAccounts -inotcontains $User)
{
Write-Warning "Sunucu: '$($TargettedServerName)', parolası bu komut dosyası tarafından DEĞİŞTİRİLMEYEN yerel bir '$($User)' hesabına sahip"
}
}
Bu sunucuda bulunan belirtilen tüm yerel hesapları #For, parolayı değiştirin
$PasswordIndex = 0
foreach ($LocalAccounts'te $LocalAdmin)
{
$Password = $Passwords[$PasswordIndex]
if ($LocalUsers -icontains $LocalAdmin)
{
deneyin
{
$objUser = [ADSI]"WinNT://localhost/$($LocalAdmin), user"
$objUser.psbase.Invoke("SetPassword", $Password)
$Properties = @{
TargettedServerName = $TargettedServerName
Kullanıcı adı = $LocalAdmin
Parola = $Password
RealServerName = $env:computername
}
$ReturnData = New-Object PSObject -Property $Properties
Write-Output $ReturnData
}
yakalamak
{
Write-Error "user:$($LocalAdmin) on server:$($TargettedServerName) için parola değiştirilirken hata oluştu)"
}
}
$PasswordIndex++
}
}
Parolayı uzak makinede değil, bu betiği çalıştıran istemcide #Generate. System.Web.Security, .NET İstemci profilinde kullanılamaz. Bu arama yapılıyor
# betiği çalıştıran istemcide, yalnızca 1 bilgisayarın tam .NET çalışma zamanının yüklenmesini sağlar (parolanın yuvarlandığı her sistemin aksine).
işlev Create-RandomPassword
{
Param(
[Parametre(Zorunlu=$true)]
[GeçerliAralık(20,120)]
[Int]
$PasswordLength
)
$Password = [System.Web.Security.Membership]::GeneratePassword($PasswordLength, $PasswordLength / 4)
#This asla başarısız olmamalı, ama yine de buraya bir akıl sağlığı kontrolü koyuyorum
if ($Password.Length -ne $PasswordLength)
{
throw new Exception("GeneratePassword tarafından döndürülen parola, gerekenle aynı uzunlukta değil. Gerekli uzunluk: $($PasswordLength). Oluşturulan uzunluk: $($Password.Length)")
}
return $Password
}
#Main işlevselliği - Belirtilen yerel hesapların parolasını değiştirmek için bir parola oluşturun ve makinelere uzaktan bağlanın
if ($PsCmdlet.ParameterSetName -ieq "Encryption")
{
deneyin
{
$Sha 256 = new-object System.Security.Cryptography.SHA256CryptoServiceProvider
$SecureStringKey = $Sha 256.ComputeHash([System.Text.UnicodeEncoding]::Unicode.GetBytes($EncryptionKey))
}
yakalamak
{
Write-Error "TSV şifreleme anahtarı oluşturma hatası" -ErrorAction Stop
}
}
foreach ($ComputerName'de $Computer)
{
Değiştirilebilecek her hesap için 1 şifre oluşturmak #Need
$Passwords = @()
for ($i = 0; $i -lt $LocalAccounts.Length; $i++)
{
$Passwords += Create-RandomPassword -PasswordLength $PasswordLength
}
Write-Output "Belirtilen yerel yönetici parolalarını almak için '$($Computer)' sunucusuna bağlanılıyor"
$Result = Invoke-Command -ScriptBlock $RemoteRollScript -ArgumentList @($Passwords, $LocalAccounts, $Computer) -ComputerName $Computer
#If şifreleme kullanılıyorsa, diske yazmadan önce parolayı kullanıcı tarafından sağlanan anahtarla şifreleyin
if ($Result -ne $null)
{
if ($PsCmdlet.ParameterSetName -ieq "NoEncryption")
{
$Result | Select-Object Kullanıcı Adı,Parola,TargettedServerName,RealServerName | Export-Csv -Ekleme -Yol $TsvFileName -NoTypeInformation
}
değilse
{
Döndürülen $null girdileri #Filters
$Result = $Result | Select-Object Kullanıcı Adı,Parola,TargettedServerName,RealServerName
foreach ($Result'de $Record)
{
$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 Kullanıcı Adı,ŞifreliParola,TargettedServerName,RealServerName | Export-Csv -Ekleme -Yol $TsvFileName -NoTypeInformation
}
}
}
}
}
işlev ConvertTo-CleartextPassword
{
<#
. ÖZET
Bu işlev, Invoke-PasswordRoll işlevi tarafından şifrelenmiş olarak depolanan parolaların şifresini çözmek için kullanılabilir.
İşlevi: ConvertTo-CleartextPassword
Yazar: Microsoft
Sürüm: 1.0
. AÇIKLAMA
Bu işlev, Invoke-PasswordRoll işlevi tarafından şifrelenmiş olarak depolanan parolaların şifresini çözmek için kullanılabilir.
. PARAMETER EncryptedPassword
TSV dosyasında depolanan şifrelenmiş parola.
. PARAMETRE EncryptionKey
Şifrelemeyi gerçekleştirmek için kullanılan parola.
. ÖRNEK
. .\Invoke-PasswordRoll.ps1 #Loads bu betik dosyasındaki işlevler
ConvertTo-CleartextPassword -EncryptionKey "Password1" -EncryptedPassword 76492d1116743f0423413b16050a5345MgB8AGcAZgBaAHUAaQBwADAAQgB2AGgAcABNADMASwBaAFoAQQBzADEAeABjAEEAPQA9AHwAZgBiAGYAMAA1ADYANgA2ADEANwBkADQAZgAwADMANABjAGUAZQAxAGIAMAxAGIAMAgBiADkANgBiADkAMAA4ADcANwBhADMAYQA3AGYAOABkADcAMQA5ADQAMwBmAGYANQBhADEAYQBjADcANABkADIANgBhADUANwBlADgAMAAyADQANgA1ADIAOQA0AGMAZQA0ADEAMwAzADcANQAyADUANAAzADYAMAA1AGEANgAzADEAMQA5ADAAYwBmADQAZAA2AGQA"
TSV dosyasında saklanan şifrelenmiş parolanın şifresini çözer.
#>
Param(
[Parametre(Zorunlu=$true)]
[Dize]
$EncryptedPassword,
[Parametre(Zorunlu=$true)]
[Dize]
$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)))
}
Yöneticiler, bir Active Directory grubu oluşturup bunu Grup İlkesigrup ilkesi Preferences -> Local Group aracılığıyla yerel Administrators grubuna ekleyerek bilgisayarlara yerel yönetici hesapları ekleyebilir. Bu eylem, kimlik bilgilerini önbelleğe almaz. İletişim kutusu aşağıdakine benzer. Bu geçici çözüm, kullanıcı bu kimlik bilgilerini kullanarak oturum açtığında Active Directory Domain Services için bir bağlantı gerektirir.
Senaryo 2: Eşlenen sürücüler
Yöneticiler, kullanıcılara ağ konumları tahsis etmek için sürücü haritalarını kullanır. Parola koruma özelliği, sürücüye yetkili erişim olduğundan emin olmak için kullanılır. Aşağıdaki tercihler etkilenir:
- Kullanıcı Yapılandırması -> Windows Ayarları -> Sürücü Haritaları -> Yeni -> Eşlenmiş Sürücü
Önemli değişiklikler
Eylem: Oluşturma, güncelleştirme veya değiştirme
- Kullanıcı adı, Parola ve Parolayı onayla alanları devre dışı bırakılır.
Eylem: Sil
- Davranışta değişiklik yok
Geçici Çözümler
Kimlik doğrulaması için parola yöntemini kullanmak yerine, paylaşım izinlerini yönetmek ve kullanıcılara hak atamak için Windows Gezgini'ni kullanabilirsiniz. Klasörün izinlerini denetlemek için Active Directory nesnelerini kullanabilirsiniz.
Senaryo 3: Hizmetler
Hizmet özelliklerini özgün güvenlik bağlamı dışında bir bağlamda çalışacak şekilde değiştirmek için Hizmetler tercihini kullanabilirsiniz. Aşağıdaki tercihler etkilenir:
- Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Hizmetler -> Yeni -> Hizmet
Önemli değişiklikler
Başlangıç: Değişiklik yok, otomatik veya el ile
- Parola ve Parolayı onayla alanları devre dışı bırakılır.
- Yönetici yalnızca yerleşik hesapları kullanabilir.
Başlangıç: Devre dışı bırak
- Davranışta değişiklik yok
Yeni iletişim kutusu
- "Bu hesap" için yerleşik olmayan kullanıcıları kullanmaya çalışan yöneticiler aşağıdaki uyarıyı alır:
Geçici Çözümler
Hizmetler yerel sistem hesabı olarak çalışmaya devam edebilir. Hizmet izinleri, Microsoft Bilgi Bankası'ndaki aşağıdaki makalede belgelendiği gibi değiştirilebilir:
256345 Sistem hizmetlerinin güvenliğini ayarlamak için grup ilkesi ayarlarını yapılandırma
Not Yapılandırmak istediğiniz hizmet yoksa, ayarları hizmetin çalıştığı bir bilgisayarda yapılandırmanız gerekir.
Senaryo 4: Zamanlanan ve anlık görevler (üst düzey)
Bunlar, belirli bir güvenlik bağlamında zamanlanmış görevleri çalıştırmak için kullanılır. Kullanıcı oturum açmadığında rasgele kullanıcı olarak çalıştırılması için zamanlanmış görevlerin kimlik bilgilerini depolama özelliği artık kullanılamaz. Aşağıdaki tercihler etkilenir. (Bazı platformlarda, "En azından Windows 7" ifadesinin "Windows Vista ve üstü" ile değiştirildiğini unutmayın.)
- Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Zamanlanmış Görev (En az Windows 7)
- Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Anlık Görev (En az Windows 7)
- Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Zamanlanmış Görev (En az Windows 7)
- Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Anlık Görev (En az Windows 7)
Önemli değişiklikler
Eylem: Oluşturma, güncelleştirme veya değiştirme
- Kullanıcı oturum açmış olsun ya da olmasın çalıştır seçeneğini belirttiğinizde, bir iletişim kutusu artık yöneticiden kimlik bilgileri istemez.
- Parolayı saklama onay kutusu devre dışıdır. Varsayılan olarak, kutu da işaretlidir.
Eylem: Sil
Davranışta değişiklik yok
Geçici Çözümler
"Zamanlanmış Görev (en az Windows 7)" ve "Anlık Görev (en az Windows 7)" görevleri için yöneticiler, belirli bir kullanıcı oturum açtığında belirli kullanıcı hesaplarını kullanabilir. Ya da yalnızca bu kullanıcı olarak yerel kaynaklara erişebilirler. Bu görevler yine de yerel hizmet bağlamında çalıştırılabilir.
Senaryo 5: Zamanlanan ve anlık görevler (alt düzey) Bu, belirli bir güvenlik bağlamında Zamanlanmış Görevleri çalıştırmak için kullanılan tercihlerin alt düzey sürümüdür. Kullanıcı oturum açmadığında rasgele kullanıcı olarak çalıştırılması için zamanlanmış görevlerin kimlik bilgilerini depolama özelliği artık kullanılamaz. Aşağıdaki tercihler etkilenir:
- Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Zamanlanmış Görev
- Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Anlık Görev (Windows XP)
- Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Zamanlanmış Görev
- Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Zamanlanmış Görevler -> Yeni -> Anlık Görev (Windows XP)
Önemli değişiklikler
Eylem: Oluşturma, güncelleştirme veya değiştirme
- Farklı çalıştır onay kutusu devre dışıdır. Bu nedenle, Kullanıcı Adı, Parola ve Parolayı Onayla alanlarının tümü devre dışı bırakılır.
Eylem: Sil
Davranışta değişiklik yok
Geçici Çözümler
"Zamanlanmış Görev" ve "Anlık Görev (Windows XP)" öğeleri için, zamanlanmış görevler yerel hizmetin şu anda kullanımına açık olan izinler kullanılarak çalıştırılır.
Senaryo 6: Veri Kaynakları
Veri Kaynakları tercihi, veri kaynağını bir bilgisayar veya kullanıcıyla ilişkilendirmek için kullanılır. Bu özellik, parolayla korunan veri kaynaklarına erişimi etkinleştirmek için kimlik bilgilerini artık depolamaz. Aşağıdaki tercihler etkilenir:
- Bilgisayar Yapılandırması -> Denetim MasasıDenetim Masası Ayarlar -> Veri Kaynakları
- Kullanıcı Yapılandırması -> Denetim MasasıDenetim Masası Settings -> Data Sources
Önemli Değişiklikler
Eylem: Oluşturma, güncelleştirme veya değiştirme
- Kullanıcı Adı, Parola ve Parolayı Onayla alanları devre dışı bırakılır:
Eylem: Sil
- Davranışta değişiklik yok
Geçici Çözümler
Kullanılabilecek bir geçici çözüm yoktur. Bu tercih artık parolayla korunan veri kaynaklarına erişim izni vermek için kimlik bilgilerini depolamaz.
CPassword'un kullanımdan kaldırılması
CPassword'u kaldırma
Bu Microsoft Bilgi Bankası makalesinde yer alan Windows PowerShell betiği, bir etki alanının CPassword kullanabilecek herhangi bir grup ilkesi Tercihleri içerip içermediğini algılar. Verilen bir tercihte CPassword XML algılanırsa, bu listede görüntülenir.
CPassword tercihlerini algılama
Bu betik, temizlemek istediğiniz etki alanı denetleyicisindeki yerel bir dizinden çalıştırılmalıdır. İçeriği yeni bir Windows PowerShellWindows PowerShell dosyasına kopyalayıp kaydedin, sistem sürücünüzü belirleyin ve ardından betiği aşağıdaki kullanımda belirtildiği gibi çalıştırın.
<#
. ÖZET
Etki alanınızdaki grup ilkesi nesnelerin, aşağıdakiler gibi farklı görevlere yönelik parolaları depolayan tercihleri olabilir:
1. Data Sources
2. Sürücü Haritaları
3. Yerel Kullanıcılar
4. Zamanlanmış Görevler (hem XP hem de üst düzey)
5. Hizmetler
Bu parolalar, GP tercihlerinin bir parçası olarak SYSVOL'de depolanır ve zayıf şifreleme (32 bayt AES) nedeniyle güvenli değildir.
Dolayısıyla, bu tür tercihleri etki alanı ortamınıza dağıtmamanızı ve var olan bu tür tercihleri kaldırmanızı öneririz.
tercihler. Bu betik, yöneticinin etki alanının parolaları içeren SYSVOL'unda GP Tercihlerini bulmasına yardımcı olmaktır.
. AÇIKLAMA
Bu komut dosyası, aşağıdakileri içeren tüm tercihlerin yazdırılabilmesi için DC'de veya RSAT yüklü bir istemci bilgisayarda çalıştırılmalıdır.
bu tercihin tanımlandığı GPO, Tercih Adı, GPEdit yolu gibi bilgileri içeren parola.
Etkilenen tercihlerin bir listesini elde ettikten sonra, bu tercihler grup ilkesi Yönetim Konsolu'ndaki düzenleyici kullanılarak kaldırılabilir.
. SÖZ DIZIMI
Get-SettingsWithCPassword.ps1 [-yol <dizesi>]
. ÖRNEK
Get-SettingsWithCPassword.ps1 -Path %WinDir%\SYSVOL\domain
Get-SettingsWithCPassword.ps1 -Path <GPO Yedekleme Klasörü Yolu>
. NOTLAR
grup ilkesi PS modülü bulunamazsa, çıkış GPO adları yerine GPO GUID'leri içerir. Windows çalıştırabilir
veya RSAT'yi yükledikten sonra betiği istemcide yeniden çalıştırın ve
grup ilkesi modülünü etkinleştirdi.
Get-GPO cmdlet'ini kullanarak GPO adlarını almak için GPO GUID'lerini de kullanabilirsiniz.
. BAĞLANTI
http://go.microsoft.com/fwlink/?LinkID=390507
#>
#----------------------------------------------------------------------------------------------------------------
Giriş parametreleri
#--------------------------------------------------------------------------------------------------------------
param(
[string]$Path = $(throw "-Path gerekli.") # GPP'lerin bulunduğu dizin yolu.
)
#---------------------------------------------------------------------------------------------------------------
$isGPModuleAvailable = $false
$impactedPrefs = { "Groups.xml", "ScheduledTasks.xml","Services.xml", "DataSources.xml", "Drives.xml" }
#----------------------------------------------------------------------------------------------------------------
Varsa Group olicy modülünü içeri aktar
#----------------------------------------------------------------------------------------------------------------
if (-not (Get-Module -name "GroupPolicy"))
{
if (Get-Module -ListAvailable |
Where-Object { $_. Name -ieq "GroupPolicy" })
{
$isGPModuleAvailable = $true
"GroupPolicy" Import-Module
}
değilse
{
Write-Warning "PowerShell için grup ilkesi modülü içeri aktarılamıyor. Bu nedenle, GPO guid'leri bildirilir.
GPO adlarını almak için bu betiği DC'de çalıştırın veya GPO guid'sinden GPO adını almak için Get-GPO cmdlet'ini (DC'de) kullanın."
}
}
değilse
{
$isGPModuleAvailable = $true
}
İşlev Enum-SettingsWithCpassword ( [dize]$sysvolLocation )
{
# GPMC ağaç yolları
$commonPath = " -> Tercihler -> Denetim Masası Ayarlar -> "
$driveMapPath = " -> Tercihler -> Windows Ayarları -> "
# SYVOL konumundaki tüm xml dosyalarını yinelemeli olarak alın
$impactedXmls = Get-ChildItem $sysvolLocation -Recurse -Filter "*.xml" | Where-Object { $impactedPrefs -cmatch $_. İsim }
# Her xml dosyası birden çok tercih içerir. Olup olmadığını denetlemek için her tercihi yineleyin
# cpassword özniteliğini içerir ve görüntüler.
foreach ( $file in $impactedXmls )
{
$fileFullPath = $file. Tam Ad
# GPP kategorisini ayarlayın. Dosya, SYSVOL'daki Makine klasörü altındaysa
# Ayar, Bilgisayar Yapılandırması altında tanımlanmıştır, aksi takdirde
# ayarı bir kullanıcı yapılandırmasıdır
if ( $fileFullPath.Contains("Makine") )
{
$category = "Bilgisayar Yapılandırması"
}
elseif ( $fileFullPath.Contains("Kullanıcı") )
{
$category = "Kullanıcı Yapılandırması"
}
değilse
{
$category = "Bilinmiyor"
}
# Dosya içeriğini XML olarak al
deneyin
{
[xml]$xmlFile = get-content $fileFullPath -ErrorAction Continue
}
catch [Exception]{
Write-Host $_. Exception.Message
}
if ($xmlFile -eq $null)
{
devam
}
Anahtar ( $file. Temel Adı )
{
Gruplar
{
$gppWithCpassword = $xmlFile.SelectNodes("Gruplar/Kullanıcı") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = "Yerel Kullanıcılar"
}
Zamanlanmış Görevler
{
$gppWithCpassword = $xmlFile.SelectNodes("ZamanlanmışGörevler/*") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = "Zamanlanmış Görevler"
}
Veri Kaynakları
{
$gppWithCpassword = $xmlFile.SelectNodes("DataSources/DataSource") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = "Veri kaynakları"
}
Sürücüler
{
$gppWithCpassword = $xmlFile.SelectNodes("Sürücüler/Sürücü") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = "Sürücü Haritaları"
}
Hizmetler
{
$gppWithCpassword = $xmlFile.SelectNodes("NTServices/NTService") | where-Object { [String]::IsNullOrEmpty($_. Properties.cpassword) -eq $false }
$preferenceType = "Hizmetler"
}
varsayılan
{ # sonraki öğe için gppWithCpassword ve preferenceType'ı temizle.
deneyin
{
Clear-Variable -Name gppWithCpassword -ErrorAction SessizceDevam Et
Clear-Variable -Name preferenceType -ErrorAction SilentlyContinue
}
catch [Özel Durum]{}
}
}
if ($gppWithCpassword -ne $null)
{
# FilePath'ten ayıklanan GUID'den GPO adı oluşturun
$guidRegex = [normal ifade]"\{(.*)\}"
$match = $guidRegex.match($fileFullPath)
if ($match. Başarılı)
{
$gpoGuid = $match.groups[1].value
$gpoName = $gpoGuid
}
değilse
{
$gpoName = "Bilinmiyor"
}
EĞER($isGPModuleAvailable -EQ $true)
{
deneyin
{
$gpoInfo = Get-GPO -Guid $gpoGuid -ErrorAction Continue
$gpoName = $gpoInfo.DisplayName
}
catch [Exception] {
Write-Host $_. Exception.Message
}
}
# cPassword içeren tercihleri görüntüleyin
foreach ( $gpp in $gppWithCpassword )
{
if ( $preferenceType -eq "Sürücü Haritaları" )
{
$prefLocation = $category + $driveMapPath + $preferenceType
}
değilse
{
$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. İsim) -passthru |
Add-Member -MemberType NoteProperty -name Path -value ($prefLocation)
Write-Output $obj
}
} # end if $gppWithCpassword
} # end foreach $file
} # End İşlevleri Enum-PoliciesWithCpassword
#-----------------------------------------------------------------------------------
Yolun geçerli olup olmadığını denetleyin. cpassword içeren tüm ayarları numaralandırın.
#-----------------------------------------------------------------------------------
if (Test-Path $Path )
{
Enum-SettingsWithCpassword $Path
}
değilse
{
Write-Warning "Böyle bir dizin yok: $Path"
}
Örnek kullanım (sistem sürücüsünün C olduğu varsayılmaktadır)
.\Get-SettingsWithCPassword.ps1 –path "C:\Windows\SYSVOL\domain" | Format-List
Not Etki alanı yerine yol için herhangi bir yedek GPO'yu hedefleyebileceğinizi unutmayın.
Algılama betiği aşağıdakine benzer bir liste oluşturur:
Daha uzun listeler için çıkışı bir dosyaya kaydetmeyi göz önünde bulundurun:
.\Get-SettingsWithCPassword.ps1 –path "C:\Windows\SYSVOL\domain" | > ConvertTo-Html gpps.html
CPassword tercihlerini kaldırma
CPassword verilerini içeren tercihleri kaldırmak için, etki alanı denetleyicisinde veya Uzak Sunucu Yönetim Araçları yüklü olan bir istemcide grup ilkesi Yönetim Konsolu (GPMC) kullanmanızı öneririz. Bu konsollarda herhangi bir tercihi beş adımda kaldırabilirsiniz. Bunu yapmak için aşağıdaki adımları izleyin:
- GPMC'de, CPassword verilerini içeren tercihi açın.
- Tercihinize göre, eylemi Sil veya Devre Dışı Bırak olarak değiştirin.
- Yaptığınız değişiklikleri kaydetmek için Tamam'ı tıklatın.
- Değişikliklerin istemcilere yayılmasına izin vermek için bir veya iki Grup İlkesigrup ilkesi yenileme döngülerini bekleyin.
- Değişiklikler tüm istemcilere uygulandıktan sonra tercihi silin.
- Tüm ortamınızı temizlemek için 1 ile 5 arasındaki adımları gerektiği kadar yineleyin. Algılama betiği sıfır sonuç döndürdüğünde işiniz tamamlanmış demektir.
Dosya karması bilgileri
| Dosya adı | SHA1 karması | SHA256 karması |
|---|---|---|
| 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 |