Eigenlijk werk ik in PoSh, maar aangezien dit op .NET steunt kan een echt .netter mij hier allicht mee helpen.
Ik heb een scriptje gemaakt dat een aantal schijven initialiseert, ze mount met een bepaald label op een bepaalde drive, mappen aanmaakt, NTFS permissies op die mappen verzorgt en tenslotte shares aanmaakt. Wat ontbreekt? Permissies aanmaken op de shares.
Alle bronnen op het internet komen neer op ofwel
1) NTFS permissies te gebruiken - maar dat is geen optie aangezien ik voor support vasthang aan het design zoals voorzien door Microsoft.
2) Aparte command line tools gebruiken - maar dit gaat om praktische redenen moeilijk. Zonder daar te diep op in te gaan: het script moet standalone werken zonder externe afhankelijkheden.
Wat betreft de documentatie: Microsoft: Create Method of the Win32_Share Class. Er is een parameter die ik kan toevoegen aan mij bestaande code
(fragment)
Wat daar precies moet komen weet ik echter niet. De informatie van Win32_SecurityDescriptor gaat mijn petje te boven vrees ik
Als iemand hier meer over weet hoor ik het graag.
Ik heb een scriptje gemaakt dat een aantal schijven initialiseert, ze mount met een bepaald label op een bepaalde drive, mappen aanmaakt, NTFS permissies op die mappen verzorgt en tenslotte shares aanmaakt. Wat ontbreekt? Permissies aanmaken op de shares.
Alle bronnen op het internet komen neer op ofwel
1) NTFS permissies te gebruiken - maar dat is geen optie aangezien ik voor support vasthang aan het design zoals voorzien door Microsoft.
2) Aparte command line tools gebruiken - maar dit gaat om praktische redenen moeilijk. Zonder daar te diep op in te gaan: het script moet standalone werken zonder externe afhankelijkheden.
Wat betreft de documentatie: Microsoft: Create Method of the Win32_Share Class. Er is een parameter die ik kan toevoegen aan mij bestaande code
code:
1
2
3
4
5
6
| [IO.Directory]::CreateDirectory($FolderHome) $Acl = Get-Acl $FolderHome $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("BUILTIN\Users","Traverse","Allow") $Acl.SetAccessRule($AccessRule) Set-Acl $FolderHome $Acl $Shares.Create($FolderHome,$($FolderHome.Split("\"))[1],0,,,,<HIER>) |
(fragment)
Wat daar precies moet komen weet ik echter niet. De informatie van Win32_SecurityDescriptor gaat mijn petje te boven vrees ik
