Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Directory e permission
lunedì 07 aprile 2003 - 13.41
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
aborigeno
Profilo
| Newbie
1
messaggi | Data Invio:
lun 7 apr 2003 - 13:41
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"
Torna su
Stanze Forum
Elenco Threads
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 !