Question [Fonction] Création d'un share sur un poste local

Plus d'informations
il y a 18 ans 2 semaines #1863 par Laurent Dardenne
Cette fonction tient compte du comportement de WMI quant à la gestion des droits par défaut et de différentes cause d'erreurs.
[code:1]
#Crée un Share en local
#
#[String] $Path='C:\temp'
#[String] $Name='Share de test'
#[uint32] $Type=0
#[uint32] $MaximumAllowed=$Null
#[String] $Description='Test de définition de Share via WMI'
#[String] $Password=$null
#$Access= $Null
#
#New-Share $Path $Name $Type $MaximumAllowed $Description $Password $Access

function New-Share([String] $Path,
[String] $Name,
[uint32] $Type,
[uint32] $MaximumAllowed,
[String] $Description,
[String] $Password,
#[System.Management.ManagementClass] $Access)
$Access)
{
if ($Access -ne $NULL)
{ if ($Access.__CLASS -ne \"Win32_SecurityDescriptor\"«»)
{Throw \"Le paramètre Acces n'est pas une instance de la classe Win32_SecurityDescriptor\"}
}
if ((Get-Service|where {$_.Name -eq \"winmgmt\"}).Status -eq \"Stopped\"«»)
{Throw \"Le service d'infrastructure de gestion Windows (winmgmt) est arrêté. Impossible de continuer\"}

$Share = [WMIClass] \"Win32_Share\"
if ($Share -eq $Null)
{Throw \"Erreur lors de la création d'une instance de la classe Win32_Share\"}

$CodeRetour=($Share.Create($Path,$Name,$Type,$MaximumAllowed,$Description,$Password,$Access)).ReturnValue
Switch ($CodeRetour)
{
0 {$MsgErreur=\"Opération terminée correctement.\";Break}
2 {$MsgErreur=\"L'utilisateur n'a pas accès aux informations requises.\";Break}
8 {$MsgErreur=\"Échec inconnu.\";Break}
9 {$MsgErreur=\"Le nom du caractère ou du système de fichiers n'est pas valide.\";Break}
10 {$MsgErreur=\"La valeur spécifiée pour le paramètre de niveau est non valide.\";Break}
21 {$MsgErreur=\"Le paramètre spécifié est non valide.\";Break}
22 {$MsgErreur=\"Le nom du partage est déjà en cours d'utilisation sur ce serveur.\";Break}
23 {$MsgErreur=\"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.\";Break}
24 {$MsgErreur=\"Le périphérique ou le répertoire n'existe pas.\";Break}
25 {$MsgErreur=\"Le nom de partage n'existe pas.\";Break}
Default {$MsgErreur=\"Référez-vous à la documentation concernant les codes d'erreur Win32. Code erreur : $CodeRetour\"}
}
if ($CodeRetour -ne 0) {Throw $MsgErreur}
if ($Access -eq $NULL)
{ #Comportement par défaut avec WMI si on ne renseigne aucun ACL
Write-Warning \"Le share $Name a été créé avec le droit 'Full control' pour le groupe 'Tout le monde'.\"}
}
[/code:1]
Pour la gestion des ACE c'est en cours...

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 18 ans 2 semaines #1867 par maycry
:P Fresh ce script ^^^^ il y'aura probablement un script pour un share sur une machine distante de ta part je pense àaprés celui-ci ^^


genre de ton xp hop new share sur mon DFS!!!:unsure: :( :woohoo: B) ;) :P :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 18 ans 1 semaine #1869 par Laurent Dardenne
chris écrit:

il y'aura probablement un script pour un share sur une machine distante de ta part je pense àaprés celui-ci

Malheureusement non. Je travaille sur la suite, la gestion des ACEs.

Pour DFS en recherchant \"DFS share Script\" on trouve qq pistes, il y a peut être moyen d'automatiser avec WMI...
Pour une machine distant l'adaptation ne devrait pas poser de pb il me semble.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 18 ans 1 semaine #1871 par Arnaud Petitjean

il y'aura probablement un script pour un share sur une machine distante de ta part je pense àaprés celui-ci


Pour cela il faudrait que tu utilises la V2 de PowerShell. Car tout script PowerShell pourra s'exécuter à distance.
En attendant tu peux déjà t'exercer avec la v2 CTP.

@+

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.056 secondes
Propulsé par Kunena