Cara secara programatik menerapkan izin akses untuk Windows Server 2003 internal grup dalam layanan direktori direktori aktif

PENDAHULUAN

Microsoft Windows Server 2003 memperkenalkan beberapa built-in kelompok untuk menyederhanakan administrasi izin akses saat domain dalam mode keamanan tinggi. Secara default, grup internal memiliki izin akses yang benar untuk objek yang sesuai dalam instalasi baru domain Windows Server 2003. Namun, dalam mode campuran domain dan domain yang ditingkatkan, beberapa izin akses yang sebelumnya dipilih tidak dapat berubah. Masalah ini terjadi ketika pengontrol domain Windows Server 2003 yang ditambahkan ke domain Windows 2000. Masalah ini juga terjadi apabila domain Windows 2000 ditingkatkan ke domain Windows Server 2003.

Informasi Selengkapnya

Skrip berikut ini menunjukkan cara untuk memberi izin akses ke atribut Token-grup-Global-dan-Universal (TGGAU) "IN\Windows dibangun otentikasi akses grup."

Kode Visual Basic Script (Modifyacl.vbs)

On Error Resume Nextconst ADS_RIGHT_DS_READ_PROP = &H10const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &H5const ADS_ACEFLAG_INHERIT_ACE = &H2const ADS_FLAG_OBJECT_TYPE_PRESENT = &H1' Token-Groups-Global-And-Universalconst TOKEN_GROUPS_PROPERTY_GUID = "{46a9b11d-60ae-405a-b7e8-ff8a58d456d2}"' BUILTIN\Windows Authentication Access Groupconst WINDOWS_AUTH_ACCESS_SID = "S-1-5-32-560"Set oArgs = WScript.Argumentsif oArgs.Count <> 1 then   WScript.Echo "Usage: modifyacl.vbs <DN of the object to modify>"   WScript.Echo "Ex:    modifyacl.vbs OU=test,DC=domain,DC=com"   WScript.Quit(1)end ifWScript.Echo "Trying to bind to the object " & oArgs(0)Set oTarget = GetObject( "LDAP://" & oArgs(0) )If (Err.Number <>0 ) ThenWScript.Echo "Error 0x"+ CStr(Hex(Err.Number)) + " Occurred trying to bind to the object " Err.ClearEnd IfWScript.Echo "Reading security descriptor"Set oSD = oTarget.Get( "ntSecurityDescriptor" )Set oACL = oSD.DiscretionaryAclIf (Err.Number<>0 ) ThenWScript.Echo "Error 0x"+ CStr(Hex(Err.Number)) + " Occurred reading the security descriptor"Err.ClearEnd IfWScript.Echo "Creating new ACE and setting properties"Set oACE = CreateObject( "AccessControlEntry" )If (Err.Number<>0 ) ThenWScript.Echo "Error 0x"+ CStr(Hex(Err.Number)) + " Occurred creating new ACE"Err.ClearEnd If' Right to read properties of the object that is a specific property in this caseoACE.AccessMask = ADS_RIGHT_DS_READ_PROP' Grants access to the object or to the property in particularoACE.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT' Child objects inherit this access-control entry.oACE.AceFlags = ADS_ACEFLAG_INHERIT_ACE' Token-Groups-Global-And-UniversaloACE.Flags = ADS_FLAG_OBJECT_TYPE_PRESENToACE.ObjectType = TOKEN_GROUPS_PROPERTY_GUID' BUILTIN\Windows Authentication Access GroupoACE.Trustee = WINDOWS_AUTH_ACCESS_SIDWScript.Echo "Applying the modified security descriptor to the object"oACL.AddAce oACEoSD.DiscretionaryAcl = oAcloTarget.Put "ntSecurityDescriptor", oSDoTarget.SetInfoIf (Err.Number<>0 ) ThenWScript.Echo "Error 0x"+ CStr(Hex(Err.Number)) + " Occurred applying modified security descriptor to the object"Err.ClearElseWScript.Echo "Done!"End If

Referensi

Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:

beberapa aplikasi dan api memerlukan akses ke informasi otorisasi pada akun objek

Perlu bantuan lainnya?

Kembangkan keterampilan Anda
Jelajahi pelatihan
Dapatkan fitur baru terlebih dahulu
Gabung Microsoft Insider

Apakah informasi ini bermanfaat?

Terima kasih atas umpan balik Anda!

Terima kasih atas umpan balik Anda! Sepertinya menghubungkan Anda ke salah satu agen dukungan Office kami akan sangat membantu.

×