Directory e permission

lunedì 07 aprile 2003 - 13.41

aborigeno Profilo | Newbie

Avrei bisogno di fare uno script in Visula Script che per ogni file system mi elenchi le share definite e per ogni share le acl definite.
Io ho fatto un prototipo, ma non mi funziona in modo corretto per alcuni motivi:
1) valori non correti di ritorno rispetto alla documentazione Microsoft
2) inesperienza in questo caso

Per tanto Vi chiedo un aiuto!
allego il codice

On Error Resume Next
Const INPUT_FILE_NAME = "C:\gec\Computers.txt"
Const FOR_READING = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(INPUT_FILE_NAME, FOR_READING)
strComputers = objFile.ReadAll
objFile.Close
arrComputers = Split(strComputers, vbCrLf)
For Each strComputer In arrComputers
Wscript.Echo " "
Wscript.Echo " ---------- " & strComputer & " ----------"
Wscript.Echo " "
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colShares = objWMIService.ExecQuery("SELECT * FROM Win32_Share")
For Each objShare in colShares
Wscript.Echo "Name: " & vbTab & objShare.Name
WScript.Echo "Tipo Share " & objShare.Type
If objShare.Type = "0" Then
Wscript.Echo ""
Wscript.Echo "------------------------------------------ SHARE"
Wscript.Echo ""
Wscript.Echo "Name: " & vbTab & objShare.Name
Wscript.Echo "Path: " & vbTab & objShare.Path
Wscript.Echo " "
Set wmiFileSecSetting = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2:"_
& "Win32_LogicalShareSecuritySetting.name='" & objShare.Name & "'")
If Err <> 0 Then
WScript.Echo "GetObject failed" & VBCRLF & Err.Number & VBCRLF & Err.Description
'WScript.Quit
Else
WScript.Echo "GetObject suceeded"
End If

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

DACL = wmiSecurityDescriptor.DACL


For each wmiAce in DACL
Set Trustee = wmiAce.Trustee
wscript.echo "Trustee Domain: " & Trustee.Domain
wscript.echo "Trustee Name: " & Trustee.Name
wscript.echo "Rights:"
ParseAccessMask (wmiAce.AccessMask)

Next
End If
Next

Next
Sub ParseAccessMask(lMask )
If (lMask And &H10000) Then wscript.echo " ADS_RIGHT_DELETE"
If (lMask And &H20000) Then wscript.echo " ADS_RIGHT_READ_CONTROL"
If (lMask And &H40000) Then wscript.echo " ADS_RIGHT_WRITE_DAC"
If (lMask And &H80000) Then wscript.echo " ADS_RIGHT_WRITE_OWNER"
If (lMask And &H80000000) Then wscript.echo " ADS_RIGHT_GENERIC_READ"
If (lMask And &H40000000) Then wscript.echo " ADS_RIGHT_GENERIC_WRITE"
If (lMask And &H20000000) Then wscript.echo " ADS_RIGHT_GENERIC_EXECUTE"
If (lMask And &H10000000) Then wscript.echo " ADS_RIGHT_GENERIC_ALL"
If (lMask And &H1) Then wscript.echo " ADS_RIGHT_DS_CREATE_CHILD"
If (lMask And &H2) Then wscript.echo " ADS_RIGHT_DS_DELETE_CHILD"
If (lMask And &H4) Then wscript.echo " ADS_RIGHT_ACTRL_DS_LIST"
If (lMask And &H8) Then wscript.echo " ADS_RIGHT_DS_SELF"
If (lMask And &H10) Then wscript.echo " ADS_RIGHT_DS_READ_PROP"
If (lMask And &H20) Then wscript.echo " ADS_RIGHT_DS_WRITE_PROP"
If (lMask And &H40) Then wscript.echo " ADS_RIGHT_DS_DELETE_TREE"
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5