Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Redistribuovatelné součásti Microsoft Visual C++ a modul Visual Studio C++ Runtime (souhrnně "VC Runtime") jsou důležitými součástmi mnoha aplikací. V síti můžou počítače stále spouštět aplikace, které instalují a používají verzi modulu VC Runtime, která není podporována. Auditování souborů NTFS můžete použít k identifikaci takového použití jako kroku k nahrazení těchto aplikací těmi, které používají podporovanou verzi modulu runtime VC. Tento článek vás provede nastavením auditování souborů NTFS, získáte tipy pro řešení potíží a seznámíte se s výhodami pravidelných auditů.
Další informace o verzích modulu runtime VC, které již nejsou podporovány, naleznete v tématu Microsoft Visual C++ Redistributable nejnovější podporované soubory ke stažení.
Povolení auditování souborů NTFS k určení využití modulu runtime VC
Tento článek poskytuje postup k ručnímu povolení auditování souborů NTFS a zkontrolování událostí auditu pro určení, které aplikace volají nepodporované verze Visual C++ Runtime. Vzhledem k tomu, že aplikace může použít několik souborů, tento článek také ukazuje, jak použít PowerShell a rutiny k aktualizaci oprávnění auditování. Další informace o tom, jak nakonfigurovat zásady auditu pro soubor, najdete v tématu Použití základních zásad auditu u souboru nebo složky.
Ruční povolení auditování přístupu k objektům v systému
Aby bylo možné povolit auditování na úrovni souboru, musí být povolený přístup k objektům:
- Výběrem Windows+R pro otevření dialogového okna Spustit. Pak zadejte text a stiskněte Enter pro otevření Editoru místních zásad skupiny.
- Přejděte na
Počítačová konfigurace Nastavení systému Windows Nastavení zabezpečení Pokročilá konfigurace zásad auditu Zásady auditu systému Objektový přístup . - Dvakrát klikněte na Audit systém souborů. V dialogovém okně Vlastnosti auditování systému souborů vyberte Nakonfigurujte následující auditní událostiÚspěšnéOK.
- Zavřete Editor místního Zásady skupiny.
Případně můžete povolit přístup k objektům:
- Zobrazte seznam aktuálních nastavení z příkazového řádku s .
- Povolte přístup k objektům pomocí .
Ruční povolení auditování souboru
Pokud chcete monitorovat, který proces přistupuje k souboru modulu runtime VC, povolte auditování v souboru modulu runtime VC:
- Klikněte pravým tlačítkem myši na soubor, který chcete auditovat, vyberte Vlastnostia pak vyberte kartu Zabezpečení. Další informace o vyhledání nainstalovaných souborů modulu runtime VC naleznete v tématu nainstalované umístění modulu VC Runtime.
- Vyberte Rozšířené.
- V dialogovém okně Upřesnit nastavení zabezpečení vyberte kartu Auditování a pak vyberte Pokračovat.
- Pokud chcete přidat nové pravidlo auditování, vyberte Přidat. V dialogovém okně Položka auditování vyberte subjekt a zadejte jméno skupiny nebo uživatele, jehož přidání požadujete, například (Všichni). Pak vyberte OK.
- V sekci Typ se ujistěte, že je vybrána možnost Úspěch.
- Vyberte Zobrazit pokročilá oprávněníVymazat všeProcházet složky / spouštět souboryOK.
- Všimněte si, že nový řádek v položkách auditování odpovídá tomu, co jste vybrali. Vyberte OK.
- V dialogovém okně Vlastnosti vyberte OK.
Pro soubor je teď povolené pravidlo auditu.
Ruční kontrola protokolů auditu
Auditování souborů NTFS generuje událost 4663: Došlo k pokusu o přístup k objektu pro každý soubor, který zahrnuje oprávnění auditu a ke kterému přistupuje proces.
- Otevřete dialogové okno Spustit výběrem Windows+R. Potom zadejte
eventvwr.msca výběrem Enter otevřete Prohlížeč událostí. - Přejděte do protokolů Zabezpečení v Prohlížeči událostí rozbalením Protokolů Windows>Zabezpečení. V podokně výsledků jsou uvedeny události zabezpečení.
- Události auditu najdete tak, že v podokně Akce zvolíte Filtrovat aktuální protokol.... Pokud chcete zúžit události na ID události 4663 (Úspěch auditu pro kategorii systému souborů), zadejte do textového pole Včetně/Vyloučení ID událostí 4663.
Příklad události auditování přístupu k souborům 4663 najdete v tématu 4663(S): Došlo k pokusu o přístup k objektu.
Auditování využití modulu runtime VC pomocí PowerShellu
Pokud chcete aktualizovat oprávnění auditování souborů pomocí PowerShellu, postupujte takto:
- Definujte pravidlo auditu systému souborů , které se má na soubory použít.
- Získejte popisovač zabezpečení souboru pomocí .
- Použít pravidlo auditu na popisovač zabezpečení.
- Použijte aktualizovaný popisovač zabezpečení v původním souboru s .
- Zobrazte záznamy auditování přístupu k souborům 4663 s .
PowerShell: Audit souborů modulu runtime VC bez podpory
Následující kód PowerShellu umožňuje auditovat nainstalované soubory VC Runtime, které se už nepodporují.
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: Zobrazení událostí auditu souborů
PowerShell poskytuje získání záznamů událostí pro různé protokoly událostí, jak je znázorněno v následujícím kódu PowerShellu, který uvádí všechny záznamy auditování přístupu k souborům za posledních 24 hodin:
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
Další kroky po auditování využití modulu runtime VC
Jakmile určíte, které procesy používají soubory modulu runtime VC nebo které aplikace nainstalovaly distribuovatelné součásti Visual C++, odinstalujte tyto aplikace nebo je upgradujte na novější verze, které nezávisí na nepodporovaných modulech runtime VC.
Některé aplikace Microsoftu vyžadují starší verze modulu runtime VC. Další informace najdete v nejčastějších dotazech k redistribuovatelným knihovnám Visual C++ a runtime.
Umístění instalace prostředí VC Runtime
Následující tabulka uvádí, kde je nainstalovaná každá verze modulu runtime VC.
| verze Visual Studio | Nainstalovaná umístění |
|---|---|
| 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 |
Související obsah
- Redistribuce souborů Visual C++
- nejnovější podporované soubory visual C++ ke stažení
- Nejčastější dotazy k životnímu cyklu: Redistribuovatelné knihovny Visual C++ a runtime
- binární kompatibilita C++ mezi verzemi Visual Studio