Auteur de questions
Modifications des permissions de partage

Question
-
Bonjour,
Je me tourne vers vous car je bute sur un problème.
Je dois dans le cadre d'un projet au sein de mon entreprise modifier les droits de partage sur les dossiers lors de la creation de celui-ci (je parle bien des droits de partage et non pas des permissions NTFS)
Ci-joint le bout du code concerné:
$statusLabel.Text = "Status : Génération des variables" $disque = $DisqueCombobox.text $ressource = $RessourceBox.text $server = $ServeursCombobox.text $cheminlocal = "$disque"+":\"+"Data$disque"+"\"+"$ressource" $chemindistant = "\\"+"$Server\"+"$disque"+"$"+"\"+"Data$disque"+"\"+"$ressource" if ($server -like "TL*") { $code = key -PasswordLength 8 $file = "\\"+"$Server\"+"$disque"+"$"+"\"+"Data$disque"+"\"+"$code.bat" $statusLabel.Text = "Status : creation du repertoire sur $server" mkdir $chemindistant sleep 2 $statusLabel.Text = "Status : Creation du partage" (Get-WmiObject -List -ComputerName $server | Where-Object -FilterScript {$_.Name -eq "Win32_Share"}).InvokeMethod("Create",("$cheminlocal","$ressource",0,100,"$ressource")) $groupeW = "TL_"+"$ressource"+"_W" $SIDW = (Get-ADGroup $groupeW -server server1).SID $groupeR = "TL_"+"$ressource"+"_R" $SIDR = (Get-ADGroup $groupeR -server server1).SID $groupeADM = "TL_"+"$ressource"+"_ADMIN" $SIDADM = (Get-ADGroup $groupeADM -server server1).SID $statusLabel.Text = "Status : Mise en place du groupe de lecture" $Acl=Get-Acl $chemindistant $Ar = New-Object System.Security.AccessControl.FileSystemAccessRule($SIDR,'ReadAndExecute','ContainerInherit,ObjectInherit','None','Allow') $Acl.SetAccessRule($Ar) Set-Acl -path $chemindistant -AclObject $Acl $statusLabel.Text = "Status : Mise en place du groupe d'ecriture" $Acl=Get-Acl $chemindistant $Ar = New-Object System.Security.AccessControl.FileSystemAccessRule($SIDW,'Modify','ContainerInherit,ObjectInherit','None','Allow') $Acl.SetAccessRule($Ar) Set-Acl -path $chemindistant -AclObject $Acl $statusLabel.Text = "Status : Mise en place du groupe ADMIN" $Acl=Get-Acl $chemindistant $Ar = New-Object System.Security.AccessControl.FileSystemAccessRule($SIDADM,'Modify','ContainerInherit,ObjectInherit','None','Allow') $Acl.SetAccessRule($Ar) Set-Acl -path $chemindistant -AclObject $Acl
L'ensemble du code ci-dessus fonctionne parfaitement, c'est la partie qui va devoir suivre qui me pose problème.
L'action doit être faite à distance depuis un Windows 7 avec Powershell V4 vers un serveur Windows 2008 R2. Je cherche vers le WMI Win32_Share ou dans les ACL, si vous avez des pistes ou des solutions cela m'aidera surement :)
En vous remerciant
- Déplacé Teodora Sharkova vendredi 24 mars 2017 11:09 déplacé de Windows Server 2008 R2 et Windows Server 2008
Toutes les réponses
-
Bonjour,
Richard Siddaway (un MVP PowerShell anglais depuis très longtemps) a écrit il y a quelques temps des fonctions pour cela:
https://richardspowershellblog.wordpress.com/2014/05/15/share-permissions-getting/
https://richardspowershellblog.wordpress.com/2014/05/16/share-permissions-adding/
https://richardspowershellblog.wordpress.com/2014/05/17/share-permissions-removing/
https://richardspowershellblog.wordpress.com/2014/05/18/share-permissions-changing/ -
Je viens de faire quelques essais, et malheureusement cela ne semble pas fonctionner même en le fessant en local sur le serveur je n'arrive ni a rajouté un groupe, ni modifier le groupe existant "Tout le monde".
Ou alors je ne m'y prend pas correctement... quelqu'un as t-il déjà essayé de faire ce genre de manipulation?
-
Si ton script ne fonctionne pas à distance, j'en déduit qu'il fonctionne en local sur le serveur, juste?
Si c'est le cas, exécute le script depuis une session PS distante, de ton W7 vers ton W2008R2, celui-ci sera exécuté 'comme en local'
Et de là, tu exécute les commandes Net Share qui modifieront le droits sur le partage.
B.
- Modifié Bawilanemo dimanche 26 mars 2017 17:40