Avatar billede videodyr Nybegynder
27. oktober 2003 - 11:17 Der er 4 kommentarer og
1 løsning

Fjern Permission på en mappe

Hejsa der ude!

Hvordan fjerner man en bruges permissions adgang på en mappe, via et wsh script?
Avatar billede medions Nybegynder
27. oktober 2003 - 11:41 #1
Avatar billede medions Nybegynder
27. oktober 2003 - 12:27 #2
Ja, og hvorfor har du så afvist????

//>Rune
Avatar billede videodyr Nybegynder
27. oktober 2003 - 12:28 #3
medions >> Det script i spørgsmål 418188, fjerner jo ikke brugerens rettigheder fra mappen. Den fjerner jo kun "allow inheritable permissions from parent to propagate to this opject", men ikke brugen og det vil jeg gerne have at det er muligt at fjerne en bruger fra en mappe, hvordan gør man det.
Avatar billede videodyr Nybegynder
27. oktober 2003 - 12:29 #4
medions >> Jeg køre script der findes i 418188, det fjerne også "allow inheritable permissions from parent to propagate to this opject", men de bruger der har rettigheder på mappen, er der i nu. Hvordan kan man fjerne dem?
Avatar billede Slettet bruger
27. oktober 2003 - 18:16 #5
Hver fil i 2000/XP har tilknyttet en "SecurityDescriptor", der definerer alt hvad der har med sikkerhed at gøre for filen.

Hver "SecurityDescriptor" har et array "DACL", bestående af Win32_ACE objekter. Disse indeholder informationer om brugere og deres adgangs-rettigheder.

Fjerner vi en bruger fra "DACL" array'et har han ikke længere adgang til den pågældende fil.

Prøv om ikke nedenstående script virker!

On Error Resume Next
' The folder named "testfolder" must exist on the C:\ drive.

strFolder = "'c:\\testfolder'"

Set wmiFileSecSetting = GetObject ("winmgmts:Win32_LogicalFileSecuritySetting.path=" & strFolder)

RetVal = wmiFileSecSetting.GetSecurityDescriptor(wmiSecurityDescriptor)
If Err <> 0 Then
    WScript.Echo "GetSecurityDescriptor failed" & VBCRLF & Err.Number & VBCRLF & Err.Description
    WScript.Quit
Else
    WScript.Echo "GetSecurityDescriptor suceeded"
End If

' Retrieve the DACL array of Win32_ACE objects.
DACL = wmiSecurityDescriptor.DACL

strDomain = "myDomain"
strName = "myUsername"

ReDim newDACL(UBound(DACL) - 1)
index = 0
For Each wmiAce In DACL
    Set Trustee = wmiAce.Trustee   
    If Trustee.Domain <> strDomain Or Trustee.Name <> strName Then       
        Set newDACL(index) = wmiAce
        index = index + 1     
    End If
Next

wmiSecurityDescriptor.DACL = newDACL

wmiFileSecSetting.SetSecurityDescriptor(wmiSecurityDescriptor)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester