Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Microsoft Visual C++ Yeniden Dağıtılabilir ve Visual Studio C++ Çalışma Zamanı (topluca "VC Çalışma Zamanı") birçok uygulamanın kritik bileşenleridir. Ağınız genelinde makineler, VC Çalışma Zamanı'nın destek dışı sürümünü yükleyen ve kullanan uygulamalar çalıştırıyor olabilir. NTFS dosya denetimini, bu uygulamaları VC Çalışma Zamanı'nın desteklenen bir sürümünü kullanan uygulamalarla değiştirmeye yönelik bir adım olarak tanımlamak için kullanabilirsiniz. Bu makalede NTFS dosya denetimini ayarlama konusunda size yol gösterilir, sorun giderme ipuçları sağlanır ve düzenli denetimlerin avantajları vurgulanır.
Artık desteklenmeyen VC Çalışma Zamanı sürümleri hakkında daha fazla bilgi için bkz. Microsoft Visual C++ Yeniden Dağıtılabilir en son desteklenen indirmeler.
VC Çalışma Zamanı kullanımını belirlemek için NTFS dosya denetimini etkinleştirme
Bu makalede, NTFS dosya denetimini el ile etkinleştirme ve hangi uygulamaların VC Çalışma Zamanı'nın desteklenmeyen sürümlerini çağırdığını belirlemek için denetim olaylarını gözden geçirme adımları sağlanır. Bir uygulamanın kullanabileceği birkaç dosya olduğundan, bu makalede denetim izinlerini güncelleştirmek için PowerShell ve cmdlet'lerin nasıl kullanılacağı da gösterilir. Bir dosya için denetim ilkelerini yapılandırma hakkında daha fazla bilgi için bkz. bir dosya veya klasöre temel denetim ilkesi uygulama.
Sistemde nesne erişimi denetimini el ile etkinleştirme
Dosya düzeyinde denetimi etkinleştirmeden önce nesne erişimi etkinleştirilmelidir:
- Run iletişim kutusunu açmak için +R seçin. Ardından enter tuşuna basın ve Enter tuşuna basarak Yerel Grup İlkesi Düzenleyicisi'ni açın.
- Bilgisayar Yapılandırması>Windows Ayarları>Güvenlik Ayarları>Gelişmiş Denetim İlkesi Yapılandırması>System Denetim İlkeleri>Object Access.
- Denetim Dosya Sistemiüzerinde çift tıklayın. Denetim Dosya Sistemi Özellikleri iletişim kutusunda, Aşağıdaki denetim olaylarını yapılandırınseçeneğini belirleyin,Başarılı, ardındanTamam'a tıklayın.
- Yerel Grup İlkesi Düzenleyicisi'ni kapatın.
Alternatif olarak, nesne erişimini etkinleştirmek için kullanabilirsiniz :
- Komut satırından geçerli ayarları ile listeleyin.
- ile nesne erişimini etkinleştirin.
Dosyada denetimi el ile etkinleştirme
Bir VC Çalışma Zamanı dosyasına erişen işlemi izlemek için VC Çalışma Zamanı dosyasında denetimi etkinleştirin:
- Denetlemek istediğiniz dosyaya sağ tıklayın, özellikler seçin ve ardından Güvenlik sekmesini seçin. Yüklü VC Çalışma Zamanı dosyalarını bulma hakkında daha fazla bilgi için bkz. VC Çalışma Zamanı yüklü konumları.
- Gelişmişseçin.
- Gelişmiş Güvenlik Ayarları iletişim kutusunda Denetim sekmesini ve ardından Devam'ı seçin.
- Yeni bir denetim kuralı eklemek için Ekleseçin. Denetim Girdisi iletişim kutusunda bir sorumlu seçin ve eklemek istediğiniz kullanıcı veya grubun adını (Herkes) gibi girin. Ardından Tamam'ı seçin.
- "Tür kısmında Başarı'nın seçildiğinden emin olun."
- Önce gelişmiş izinleri göster seçin, ardından, tümünü temizle, klasöre göz at / dosyayı çalıştır, ve Tamam.
- Denetim girdilerindeki yeni bir satırın seçtiğiniz satırla eşleştiğinden emin olun. Tamam seçin.
- Özellikler iletişim kutusunda Tamam'ı seçin.
Denetim kuralı artık dosya için etkinleştirilmiştir.
Denetim günlüklerini el ile gözden geçirme
NTFS dosya denetimi Olay 4663 oluşturur: Denetim iznini içeren ve bir işlem tarafından erişilen her dosya için bir nesneye erişme girişiminde bulunuldu .
-
Run iletişim kutusunu açmak için +R seçin. Ardından
eventvwr.mscgirin ve Enter öğesini seçerek Olay Görüntüleyicisi açın. - Olay Görüntüleyicisi'da Windows Günlükleri'ni genişleterek Güvenlik günlüklerine gidin. Sonuçlar bölmesinde güvenlik olayları listelenir.
- Geçerli Günlüğü Filtrele... seçerek, Eylemler bölmesinde denetim olaylarını bulun. Olayları Olay Kimliği 4663 (Dosya Sistemi Kategorisi için Denetim Başarısı) ile sınırlandırmak için "4663"ü "Olay Kimliği Dahil/Haricinde" metin kutusuna girin.
Dosya Erişim Denetimi Olayı 4663 örneği için bkz. 4663(ler): Bir nesneye erişme girişiminde bulunuldu.
VC Çalışma Zamanı kullanımını denetlemek için PowerShell kullanma
PowerShell ile dosya denetimi izinlerini güncelleştirmek için şu adımları izleyin:
- Dosyalara uygulanacak dosya sistemi denetim kuralını tanımlayın.
- ile bir dosyanın güvenlik tanımlayıcısını alın.
- Güvenlik tanımlayıcısına denetim kuralı uygulayın.
- ile özgün dosyaya güncelleştirilmiş güvenlik tanımlayıcısını uygulayın.
- Dosya Erişimi Denetimi Olayı 4663 kayıtlarını ile görüntüleyin.
PowerShell: Destek dışı VC Çalışma Zamanı dosyalarını denetleme
Aşağıdaki PowerShell kodu, artık desteklenmeyen yüklü VC Çalışma Zamanı dosyalarını denetlemenizi sağlar.
function Get-AuditRuleForFile {
$auditRuleArguments = 'Everyone' <# identity #>,
'ExecuteFile, Traverse' <# fileSystemRights #>,
'Success' <# flags #>
$auditRule = New-Object System.Security.AccessControl.FileSystemAuditRule($auditRuleArguments)
return $auditRule
}
function Set-FileAuditRule {
param (
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[string]$file,
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[System.Security.AccessControl.FileSystemAuditRule]$auditRule
)
$existingAcl = Get-Acl -Path $file
$existingAcl.AddAuditRule($auditRule) | Out-Null
Set-Acl -Path $file -AclObject $existingAcl
}
$newAuditRule = Get-AuditRuleForFile
# Visual Studio Redistributable for 2005 (VC++ 8.0) and 2008 (VC++ 9.0)
Get-ChildItem "$ENV:SystemRoot\WinSxS\Fusion" -filter '*.dll' -ErrorAction SilentlyContinue -Recurse |
Where-Object FullName -IMatch 'microsoft\.vc[89]0' |
ForEach-Object {
Set-FileAuditRule $_.FullName $newAuditRule
}
# Visual Studio Redistributable for 2010 (VC++ 10.0), 2012 (VC++ 11.0) and 2013 (VC++ 12.0)
$languageCodes = 'chs|cht|deu|enu|esn|fra|ita|jpn|kor|rus'
$versions = '(1[012]0)'
$regex = "^((atl|msvc[pr]|vcamp|vccorlib|vcomp)$versions|mfc$versions(u|$languageCodes)?|mfcm$versions(u)?)\.dll$"
Get-ChildItem "$ENV:SystemRoot\SysWOW64","$ENV:SystemRoot\System32" -filter '*.dll' |
Where-Object Name -imatch $regex |
ForEach-Object {
Set-FileAuditRule $_.FullName $newAuditRule
}
PowerShell: Dosya denetim olaylarını görüntüleme
PowerShell, son 24 saat içindeki tüm Dosya Erişimi Denetimi Olayı 4663 kayıtlarını listeleyen aşağıdaki PowerShell kodunda gösterildiği gibi çeşitli olay günlükleri için olay kayıtlarını almayı sağlar :
function Get-AuditEntries {
param (
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[System.DateTime]$oldestTime
)
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4663;StartTime=(Get-Date $oldestTime)} |
ForEach-Object {
$record = [ordered]@{}
$record['TimeCreated'] = $_.TimeCreated
$accessName = ($_.Message |
Select-String -Pattern "Accesses:[\t\s]+(?<Accesses>.+)").Matches.Groups[1]
([xml]$_.ToXML()).Event.EventData.ChildNodes |
ForEach-Object -Begin {
$record[$accessName.Name]=$accessName.Value.Trim()
} -Process {
$record[$_.Name] = $_.'#text'
}
[PSCustomObject]$record
} |
Where-Object { $_.ObjectName -imatch '\.dll$'}
}
Get-AuditEntries -oldestTime (Get-Date).AddHours(-24)
TimeCreated : 11/20/2024 5:00:11 AM
Accesses : Execute/Traverse
SubjectUserSid : \*\*\*\*\*
SubjectUserName : \*\*\*\*\*
SubjectDomainName : WORKGROUP
SubjectLogonId : \*\*\*\*\*
ObjectServer : Security
ObjectType : File
ObjectName : C:\\Windows\\WinSxS\\amd64\_microsoft.vc90.crt\_1fc8b3b9a1e18e3b\_9.0.30729.9635\_none\_08e2c157a83ed5da\\msvcr90.dll
HandleId : 0x93c
AccessList : %%4421
AccessMask : 0x20
ProcessId : 0x24d4
ProcessName : C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe
ResourceAttributes : S:AI
VC Çalışma Zamanı kullanımını denetledikten sonraki adımlar
Hangi işlemlerin VC Çalışma Zamanı dosyalarını kullandığını veya Visual C++ Yeniden Dağıtılabilir'i hangi uygulamaların yüklediğini belirledikten sonra, bu uygulamaları kaldırın veya desteklenmeyen VC Çalışma Zamanlarına bağımlı olmayan daha yeni sürümlere yükseltin.
Bazı Microsoft uygulamaları için VC Çalışma Zamanı'nın eski sürümleri gerekir. Daha fazla bilgi için Visual C++ Yeniden Dağıtılabilir ve Çalışma Zamanı Kitaplıkları SSS'sine bakın.
VC Runtime yükleme konumları
Aşağıdaki tabloda, VC Çalışma Zamanı'nın her sürümünün yüklendiği yerler listelenmiştir.
| Visual Studio sürümü | Yüklenen yerler |
|---|---|
| Visual Studio 2013 (VC++ 12.0) | %SystemRoot%\\System32, %SystemRoot%\\SysWOW64 |
| Visual Studio 2012 (VC++ 11.0) | %SystemRoot%\\System32, %SystemRoot%\\SysWOW64 |
| Visual Studio 2010 (VC++ 10.0) | %SystemRoot%\\System32, %SystemRoot%\\SysWOW64 |
| Visual Studio 2008 (VC++ 9.0) | %SystemRoot%\\WinSxS\\Fusion |
| Visual Studio 2005 (VC++ 8.0) | %SystemRoot%\\WinSxS\\Fusion |
İlgili içerik
- Visual C++ dosyalarını yeniden dağıtma
- Desteklenen en son Visual C++ indirmeleri
- Yaşam Döngüsü SSS: Visual C++ Yeniden Dağıtılabilir ve Çalışma Zamanı Kitaplıkları
- Visual Studio sürümleri arasında C++ ikili uyumluluğu