Sdílet prostřednictvím


Objekty popisovače zabezpečení rozhraní WMI

Rozhraní WMI obsahuje objekty a metody, které umožňují číst popisovače zabezpečení a manipulovat s nimi a určit, kdo má přístup k zabezpečitelným objektům.

Role popisovačů zabezpečení

Popisovače zabezpečení definují atributy zabezpečení zabezpečitelných objektů, jako jsou soubory, klíče registru, obory názvů WMI, tiskárny, služby nebo sdílené složky. Popisovač zabezpečení obsahuje informace o vlastníkovi a primární skupině objektu. Zprostředkovatel může porovnat popisovač zabezpečení prostředků s identitou žádajícího uživatele a určit, jestli má uživatel právo získat přístup k prostředku, který uživatel požaduje. Další informace naleznete v tématu Přístup k zabezpečitelným objektům rozhraní WMI.

Některé metody rozhraní WMI, například GetSD, vrátí popisovač zabezpečení ve formátu binárního bajtového pole. Počínaje systémem Windows Vista použijte metody Win32_SecurityDescriptorHelper třídy k převodu binárního popisovače zabezpečení na instanci Win32_SecurityDescriptor, které lze snadněji manipulovat. Další informace naleznete v tématu Změna zabezpečení přístupu u zabezpečitelných objektů.

Řízení přístupu a objekty zabezpečení rozhraní WMI

Následuje seznam objektů zabezpečení rozhraní WMI:

Následující diagram znázorňuje vztahy mezi objekty zabezpečení rozhraní WMI.

vztahy mezi objekty zabezpečení wmi

Další informace o roli zabezpečení přístupu naleznete v tématu osvědčené postupy zabezpečení, udržovánízabezpečení rozhraní WMI a řízení přístupu.

objekt Win32_SecurityDescriptor

V následující tabulce jsou uvedeny vlastnosti třídy Win32_SecurityDescriptor.

Vlastnost Popis
ControlFlags Sada řídicích bitů, které opravují význam SD nebo jeho jednotlivých členů. Další informace o nastavení ControlFlags bitových hodnot naleznete v tématu Win32_SecurityDescriptor.
DACL volitelného seznamu řízení přístupu (ACL) uživatelů a skupin a jejich přístupových práv k zabezpečenému objektu. Tato vlastnost obsahuje pole Win32_ACE instancí, které představují položky řízení přístupu. Další informace naleznete v tématu Vytvoření seznamu DACL.
skupiny Seskupit, do které tento zabezpečený objekt patří. Tato vlastnost obsahuje instanci Win32_Trustee, která obsahuje název, doménu a identifikátor zabezpečení (SID) skupiny, do které vlastník patří.
vlastníka Vlastník tohoto zabezpečeného objektu. Tato vlastnost obsahuje instanci Win32_Trustee, která obsahuje název, doménu a identifikátor zabezpečení (SID) vlastníka.
SACL seznam řízení přístupu systému (ACL) obsahuje pole Win32_ACE instancí, které představují typ pokusů o přístup, které generují záznamy auditu pro uživatele nebo skupiny. Další informace naleznete v tématu SACL pro nový objekt.

DACL a SACL

Pole Win32_ACE objektů v volitelném seznamu řízení přístupu (DACL) a seznamu řízení přístupu systému {SACL) vytvářejí propojení mezi uživatelem nebo skupinou a jejich přístupovými právy.

Pokud vlastnost DACL neobsahuje položku řízení přístupu (ACE), přístupová práva nejsou udělena a přístup k objektu je odepřen.

Poznámka

Seznam DACL NULL poskytuje úplný přístup všem uživatelům, což je vážné bezpečnostní riziko. Další informace naleznete v tématu Vytvoření seznamu DACL.

Win32_ACE, Win32_Trustee, Win32_SID

Objekt Win32_ACE obsahuje instanci třídy Win32_Trustee, která identifikuje uživatele nebo skupinu, a vlastnost AccessMask, která je bitová maska, která určuje akce, které může uživatel nebo skupina provést. Uživateli nebo skupině může být například uděleno právo na čtení souboru, ale ne k zápisu do souboru. Objekt Win32_ACE obsahuje také ACE, který označuje, zda se jedná o povolení nebo odepření přístupu.

Poznámka

Pořadí Win32_ACE v seznamu DACL je důležité, protože položka řízení přístupu (ACE) je povolená v seznamu DACL jak povolit, tak odepřít. Další informace naleznete v tématu Pořadí řízení přístupu v jazyce DACL.

Každý uživatelský účet nebo skupina reprezentované Win32_Trustee má identifikátor zabezpečení (SID), který jednoznačně identifikuje účet a určuje přístupová oprávnění účtu. Způsob určení dat SID závisí na operačním systému. Další informace naleznete v tématu Změna zabezpečení přístupu u zabezpečitelných objektů.

Následující diagram znázorňuje obsah jedné instance Win32_ACE.

obsah jedné instance win32-ace

Příklad: Kontrola, kdo má přístup k tiskárnám

Následující příklad kódu VBScript ukazuje, jak používat popisovač zabezpečení tiskárny. Skript volá metodu GetSecurityDescriptor ve třídě Win32_Printer získat popisovač, pak určí, zda je v popisovači zabezpečení k dispozici volitelný seznam řízení přístupu (DACL). Pokud existuje seznam DACL, skript získá seznam položek řízení přístupu (ACE) z seznamu DACL. Každá funkce ACE je reprezentována instancí Win32_ACE. Skript zkontroluje každou ACE, aby získal jméno uživatele a určil, jestli má uživatel přístup k tiskárně. Uživatel je reprezentován instancí Win32_Trustee vloženou v instanci Win32_ACE.

SE_DACL_PRESENT = &h4
ACCESS_ALLOWED_ACE_TYPE = &h0
ACCESS_DENIED_ACE_TYPE  = &h1

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate, (Security)}!\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters =  objWMIService.ExecQuery _
    ("Select * from Win32_Printer")

For Each objPrinter in colInstalledPrinters
   Wscript.Echo "Name: " & objPrinter.Name 
' Get security descriptor for printer
    Return = objPrinter.GetSecurityDescriptor( objSD )
    If ( return <> 0 ) Then
 WScript.Echo "Could not get security descriptor: " & Return
 wscript.Quit Return
    End If
' Extract the security descriptor flags
    intControlFlags = objSD.ControlFlags
    If intControlFlags AND SE_DACL_PRESENT Then
' Get the ACE entries from security descriptor
        colACEs = objSD.DACL
    For Each objACE in colACEs
' Get all the trustees and determine which have access to printer
        WScript.Echo objACE.Trustee.Domain & "\" & objACE.Trustee.Name
        If objACE.AceType = ACCESS_ALLOWED_ACE_TYPE Then
            WScript.Echo vbTab & "User has access to printer"
        ElseIf objACE.AceType = ACCESS_DENIED_ACE_TYPE Then
            WScript.Echo vbTab & "User does not have access to the printer"
        End If
    Next
    Else
    WScript.Echo "No DACL found in security descriptor"
End If
Next

změna zabezpečení přístupu u zabezpečitelných objektů

pomocné třídy popisovače zabezpečení

osvědčené postupy zabezpečení

udržování zabezpečení rozhraní WMI

řízení přístupu

přístup k oborů názvů rozhraní WMI