OVH Cloud OVH Cloud

creer un partage distant

3 réponses
Avatar
alex-----------
bonjour

Je cherche à creer un partage de dossier present sur le disque dur d'un
serveur
ce partage doit pouvroir se faire à partir de nimporte quel poste logué en
administateur

je ne trouve pas de comande script permetant de creer un partage distant
celui la permet de creer un fichier , je voudrais le meme pour le partage

****dim ofs
*****set ofs = wscript.createobject("scripting.fileSystemObject")
******ofs.createfolder "c:\c\" & nom

merci

alex

3 réponses

Avatar
Georges MAUREL
Bonjour, Alex
Voyez plutot avec la commande net share
Ex :
v_nom_partage = "dossier_partagé"
v_dossier_partage = "c:temp"
Set wshell =createobject(wscript.shell)
set oexec=wshell.exec("net share """ & v_nom_partage & """=""" &
v_dossier_partage & """")


Cordialement
Georges


"alex-----------" <alex*-------------> a écrit dans le message de news:
%23mnu$
bonjour

Je cherche à creer un partage de dossier present sur le disque dur d'un
serveur
ce partage doit pouvroir se faire à partir de nimporte quel poste logué en
administateur

je ne trouve pas de comande script permetant de creer un partage distant
celui la permet de creer un fichier , je voudrais le meme pour le partage

****dim ofs
*****set ofs = wscript.createobject("scripting.fileSystemObject")
******ofs.createfolder "c:c" & nom

merci

alex




Avatar
Jacques Barathon [MS]
Pour créer le partage à distance, utilisez plutôt rmtshare (dispo en
téléchargement sur le site de MS). Ou dans un vbscript utilisez l'objet
Win32_Share:

http://www.microsoft.com/technet/scriptcenter/scripts/storage/shares/stshvb01.mspx

Jacques

"Georges MAUREL" <georges.maurel_at_free.fr> wrote in message
news:
Bonjour, Alex
Voyez plutot avec la commande net share
Ex :
v_nom_partage = "dossier_partagé"
v_dossier_partage = "c:temp"
Set wshell =createobject(wscript.shell)
set oexec=wshell.exec("net share """ & v_nom_partage & """=""" &
v_dossier_partage & """")


Cordialement
Georges


"alex-----------" <alex*-------------> a écrit dans le message de news:
%23mnu$
bonjour

Je cherche à creer un partage de dossier present sur le disque dur d'un
serveur
ce partage doit pouvroir se faire à partir de nimporte quel poste logué
en
administateur

je ne trouve pas de comande script permetant de creer un partage distant
celui la permet de creer un fichier , je voudrais le meme pour le partage

****dim ofs
*****set ofs = wscript.createobject("scripting.fileSystemObject")
******ofs.createfolder "c:c" & nom

merci

alex








Avatar
Jean-Claude BELLAMY
Dans le message :%23mnu$,
alex----------- <alex*-------------> a pris la peine d'écrire ce qui suit :
bonjour

Je cherche à creer un partage de dossier present sur le disque dur
d'un serveur
ce partage doit pouvroir se faire à partir de nimporte quel poste
logué en administateur

je ne trouve pas de comande script permetant de creer un partage
distant celui la permet de creer un fichier , je voudrais le meme
pour le partage


Normal, cela n'existe pas nativement dans wscript !

Tu DOIS faire appel à la classe WMI "Win32_Share", qui est dotée en
particulier de la méthode "Create" :

(Extrait de l'aide en ligne sur Win32_Share)
uint32 Create(
[in] string Path,
[in] string Name,
[in] uint32 Type,
[in] uint32 MaximumAllowed,
[in] string Description,
[in] string Password,
[in] object:Win32_SecurityDescriptor Access
);

La méthode Create initie le partage de ressources de serveur.
Seuls les membres du groupe local Administrateurs ou Opérateurs de compte ou
ceux appartenant aux groupes Opérateurs de communication, d'impression ou de
serveur peuvent exécuter cette méthode.
L'opérateur d'impression peut uniquement ajouter des files d'attente
d'impression.
L'opérateur de communication peut uniquement ajouter des files d'attente de
communication.
La méthode renvoie une valeur entière qui peut être interprétée de la
manière suivante :
0 - Opération terminée correctement.
2 - L'utilisateur n'a pas accès aux informations requises.
8 - Échec inconnu.
9 - Le nom du caractère ou du système de fichiers
n'est pas valide.
10 - La valeur spécifiée pour le paramètre de niveau
est non valide.
21 - Le paramètre spécifié est non valide.
22 - Le nom du partage est déjà en cours d'utilisation sur ce serveur.
23 - L'opération est non valide pour une ressource redirigée.
Le nom de périphérique spécifié est assigné à une ressource
partagée.
24 - Le périphérique ou le répertoire n'existe pas.
25 - Le nom de partage n'existe pas.
Autre - Pour des valeurs entières autres que celle apparaissant
dans la liste ci-dessus, référez-vous à la documentation
concernant les codes d'erreur Win32.

Path
Le paramètre Path indique le chemin d'accès local du partage Win32.
Exemple : C:Program Files

Name
Le paramètre Name passe l'alias d'un chemin d'accès défini
comme partage sur un système Win32.
Exemple : public.

Type
Le paramètre Type passe le type de ressource qui est partagée.
Les types comprennent les lecteurs de disques, les files d'attente
d'impression, les communications entre processus (IPC) et les
périphériques généraux.

MaximumAllowed
Le paramètre MaximumAllowed passe la limite du nombre maximal
d'utilisateurs autorisés à utiliser cette ressource de façon simultanée.
Exemple : 10.

Description
Le paramètre Description contourne un commentaire
optionnel pour décrire la ressource à partager.

Password
Le paramètre Password passe le mot de passe (quand le serveur
fonctionne avec une sécurité au niveau des partages) pour la
ressource partagée.
Si le serveur fonctionne avec une sécurité au niveau de l'utilisateur,
ce paramètre est ignoré.

Access
Le paramètre Access transmet le descripteur de sécurité
pour les autorisations au niveau utilisateur.
Un descripteur de sécurité contient des informations sur
l'autorisation, le propriétaire et les capacités d'accès de
la ressource.



Le maniement de cette classe est assez complexe en raison du dernier
paramètre passé à Create, à savoir un objet de la classe
"Win32_SecurityDescriptor", dont la description est la suivante :

ControlFlags
Bits indicateurs qui fournissent une information sur
le contenu et le format du descripteur
DACL
Un tableau d'entrées Win32_ACE qui spécifient
l'accès à l'objet
Group
Le tiers de confiance représentant le groupe de l'objet
Owner
Le tiers de confiance représentant le propriétaire de l'objet
SACL
Un tableau d'entrées Win32_ACE qui spécifient pour
quels utilisateurs/groupes l'information d'audit est collectée

laquelle se complique encore davantage avec des tableaux d'objets
"Win32_ACE" :

AccessMask
Bits indicateurs représentant les droits accordés/refusés
au tiers de confiance
AceFlags
Bits indicateurs spécifiant les propriétés d'héritage de l'ACE
AceType
Le type d'entrée ACE dont il s'agit
GuidInheritedObjectType
Le GUID associé avec le parent de l'objet auquel ces droits
s'appliquent
GuidObjectType
Le GUID associé avec le type d'objet auquel ces droits
s'appliquent
Trustee
Le tiers de confiance de cette entrée ACE


dont le dernier champ est lui aussi un objet "Win32_Trustee" :

Domain
La partie 'domaine' du compte
Name
La partie 'nom' du compte
SID
Le SID du tiers de confiance
SidLength
La longueur du SID en OCTETS
SIDString
Le SID du tiers de confiance au format chaîne
(p. ex. S-1-1-0)


Donc tu peux constater que ce qui a l'air très banal au départ (un "bête"
partage!) se complique très sérieusement par la suite !


CEPENDANT, on peut éviter la céphalocapture en simplifiant les paramètres !
Car les 2 derniers paramètres ([in] string Password et [in]
object:Win32_SecurityDescriptor Access) sont soit inutile (le password, non
pris en compte sous NT) soit facultatif (le type d'accès)

Voci un mini-script que j'ai écrit qui a fonctionné du 1er coup :
Sur mon PC il y a un dossier "E:Universalis 10" (qui contient l'intégralité
de l'EU) que je veut partager sous le nom de "EU".
Le script (brut de fonderie, pas d'interface, pas de gestion de
paramètres,...) est ceci :

-------- couper ici --------
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!.rootcimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
erreur = objNewShare.Create("E:Universalis 10", "EU", 0, 10, _
"Partage créé par script")
-------- couper ici --------


J'ai trouvé sur un site asiatique un script très complet :
http://www.cnblogs.com/hover/articles/2548.aspx
(pas de panique, le script est en caractères latins !)

Egalement ici :
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?&lngWId


Et là, un code qui montre comment utiliser les classes
Win32_SecurityDescriptor et Win32_Trustee
http://www.experts-exchange.com/Programming/Q_20879066.html

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] -
http://www.bellamyjc.org ou http://jc.bellamy.free.fr