- forum
- PowerShell
- Entraide pour les débutants
- Export des partages dispo, import des noms de partages pour lister les droits
Question
Export des partages dispo, import des noms de partages pour lister les droits
- Alexis
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 2 ans 2 mois - il y a 2 ans 2 mois #31696
par Alexis
Bonjour à tous et toutes,
Je cherche à exporter tous les partages dispo sur un serveur pour ensuite réimporter ces noms depuis le fichier.
Suite à l'import, je fais un ForEach en me servant d'un variable temporaire mais systématiquement je me prends une erreur...
Voici mon powershell:
Le contenu du fichier ShareName est bien rempli de cette façon:
L'erreur que je prend à l'exécution est la suivante:
Si dans mon terminal, je tape $ShareName, j'ai bien la liste contenu dans le fichier sans les guillemets en début et fin de nom comme "Partage_1"
D'avance merci pour l'aide
Je cherche à exporter tous les partages dispo sur un serveur pour ensuite réimporter ces noms depuis le fichier.
Suite à l'import, je fais un ForEach en me servant d'un variable temporaire mais systématiquement je me prends une erreur...
Voici mon powershell:
# Je crée une variable pour stocker la date du jour avec un format sans espace
$DateDuJour = Get-Date -Format "dd.MM.yyyy"
## On se connecte à distance sur Mon_Serveur, je stock la commande de connexion en variable pour la rappeler plus tard
$san = New-PsSession -ComputerName "Mon_Serveur"
## Je liste tous les partages de mon serveur et je stocke dans un fichier CSV
Invoke-Command $san {Get-SmbShare } | Select Name | Export-csv -Path c:\Copy_SAN\ShareName$DateDuJour.csv
## Je liste les droits des partages sur \\mon_serveur en bouclant grâce au CSV extrait précédemment
## J'importe mon csv pour le stocker en temp
$ShareName = Import-Csv -Path "c:\Copy_SAN\ShareName$DateDuJour.csv" -Encoding "UTF8"
ForEach ($NameShare in $ShareName)
{
#$n_Name = $ShareName.Name
Invoke-Command $san {Get-SmbShareAccess -Name $NameShare.Name} | Select Name, AccountName, AccessControlType, AccessRight | Export-csv -Path "c:\Copy_SAN\ShareAccess$DateDuJour.csv"
}
############# Fin 1er bloc pour gérer plusieurs partages #############
Le contenu du fichier ShareName est bien rempli de cette façon:
"name"
"Partage_1"
"Partage_2"
L'erreur que je prend à l'exécution est la suivante:
Impossible de valider l'argument sur le paramètre « Name ». L’argument est Null. Spécifiez une valeur valide pour l’argument, puis réessayez.
+ CategoryInfo : InvalidData : (:) [Get-SmbShareAccess], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Get-SmbShareAccess
+ PSComputerName : Mon_Serveur
Si dans mon terminal, je tape $ShareName, j'ai bien la liste contenu dans le fichier sans les guillemets en début et fin de nom comme "Partage_1"
D'avance merci pour l'aide
Dernière édition: il y a 2 ans 2 mois par Alexis.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 2 ans 2 mois #31699
par Philippe
Réponse de Philippe sur le sujet Export des partages dispo, import des noms de partages pour lister les droits
salut Alexis
tu execute un script sur un ordi distante via invoke-command
evidemment cet ordi ne peut pas avoir accés à une variable locale
tu doit utiliser par exemplepour que cela fonctionne.
petite doc à lire
sur le sujet !
tu execute un script sur un ordi distante via invoke-command
evidemment cet ordi ne peut pas avoir accés à une variable locale
tu doit utiliser par exemple
$using:nameshare.name
Connexion ou Créer un compte pour participer à la conversation.
- Alexis
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 2 ans 2 mois #31700
par Alexis
Réponse de Alexis sur le sujet Export des partages dispo, import des noms de partages pour lister les droits
Bonjour Philippe,
Un grand merci à toi, je ne connaissais pas cette variable $using pour sortir du scope local .
J'ai bien le résultat attendu en sortie, c'est super.
par contre, un truc me chagrine et je ne trouve pas ma réponse...
Mon premier export en Csv est complet mais le 2e n'enregistre que la dernière requête, mon CSV ne s'incrémente pas en conservant l'intégralité des résultats attendues via le ForEach.Y'a t'il un moyen de forcer l'export à compléter le CVS plutôt que d'écraser le contenu par le dernier ?
Merci
Un grand merci à toi, je ne connaissais pas cette variable $using pour sortir du scope local .
J'ai bien le résultat attendu en sortie, c'est super.
par contre, un truc me chagrine et je ne trouve pas ma réponse...
Mon premier export en Csv est complet mais le 2e n'enregistre que la dernière requête, mon CSV ne s'incrémente pas en conservant l'intégralité des résultats attendues via le ForEach.
Invoke-Command $san {Get-SmbShareAccess -Name $using:NameShare.Name} | Select Name, AccountName, AccessControlType, AccessRight | Export-csv -Path "c:\Copy_SAN\ShareAccess$DateDuJour.csv"
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 2 ans 2 mois #31701
par Philippe
Réponse de Philippe sur le sujet Export des partages dispo, import des noms de partages pour lister les droits
oui avec append a rajouter à export-csv :
export-csv -append -path ....
export-csv -append -path ....
Connexion ou Créer un compte pour participer à la conversation.
- Alexis
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 2 ans 2 mois #31704
par Alexis
Réponse de Alexis sur le sujet Export des partages dispo, import des noms de partages pour lister les droits
Un grand merci Philippe !
Je vais tester immédiatement
Je vais tester immédiatement
Connexion ou Créer un compte pour participer à la conversation.
- Alexis
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 11
- Remerciements reçus 0
il y a 2 ans 2 mois #31706
par Alexis
Réponse de Alexis sur le sujet Export des partages dispo, import des noms de partages pour lister les droits
Dans la même logique du coup, ça te semble cohérent ?
D'ailleurs, un truc auquel je n'avais pas pensé, c'est l'encodage en UTF8, ça aide
J'ai découvert en même temps que -Append -encoding UTF8
Merci
D'ailleurs, un truc auquel je n'avais pas pensé, c'est l'encodage en UTF8, ça aide
J'ai découvert en même temps que -Append -encoding UTF8
########### 2e partie pour gérer plusieurs partages #############
#### NON TESTE ####
## J'importe mon avec les noms des partages et les droits
$ShareAccess = Import-Csv -Path c:\temp\ShareAccess$DateDuJour.csv
ForEach ($NewShare in $ShareAccess)
{
# $Name_NewShare = $ShareAccess.Name
Invoke-Command $san {
New-SmbShare -Name "$using:NewShare.Name" -Path "X:\$NewShare.Name" -FullAccess "DOM\Admins du domaine"
}
Invoke-Command $san {
Grant-SmbShareAccess -Name "$NewShare.Name" -AccountName "DOM\Utilisa. du domaine" -AccessRight Change -Force
}
}
########### Fin 2e bloc pour gérer plusieurs partages #############
Merci
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les débutants
- Export des partages dispo, import des noms de partages pour lister les droits
Temps de génération de la page : 0.083 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Export des partages dispo, import des noms de partages pour lister les droits