Question
Opérations sur postes distants
- Xavier Jacquelin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 15 ans 9 mois #2601
par Xavier Jacquelin
Opérations sur postes distants a été créé par Xavier Jacquelin
Bonjour,
Je débute en Powershell et autant j'arrive à me débrouiller pour les besoins que j'ai quand il s'agit de faire un script qui agit localement, autant là j'ai besoin de faire agir le script sur des machines distantes et j'ai vraiment du mal.
J'ai d'abord écris le script pour une utilisation locale en me disant que je le transformerai ensuite, mais suite à mes essais et à mes lectures je ne suis pas sûr que cela soit la bonne méthode.
En fait je cherche à récupérer le nom des sous-répertoires d'un répertoire (c:\test\) et ensuite de remplacer un fichier qui est contenu au même endroit dans l'ensemble de ces sous-répertoire (c:\test\rep1\toto\fic ; c:\test\rep2\toto\fic ...).
En local je n'ai eu aucun mal à me débrouiller avec Get-ChildItem et Copy-Item mais à distance je n'arrive à rien et surtout je me paume complètement avec WMI et ses différentes classes (d'ailleurs si vous connaissez des docs ou liens intéressants sur le sujet cela m'intéresse).
Donc si quelqu'un pouvait m'aiguiller sur la voir à suivre pour faire ces opérations sur des machines distantes (et plus généralement sur faire des scripts Powershell pour opérer sur des machines distantes), cela m'aiderait bien.
Merci d'avance.
Xavier
Je débute en Powershell et autant j'arrive à me débrouiller pour les besoins que j'ai quand il s'agit de faire un script qui agit localement, autant là j'ai besoin de faire agir le script sur des machines distantes et j'ai vraiment du mal.
J'ai d'abord écris le script pour une utilisation locale en me disant que je le transformerai ensuite, mais suite à mes essais et à mes lectures je ne suis pas sûr que cela soit la bonne méthode.
En fait je cherche à récupérer le nom des sous-répertoires d'un répertoire (c:\test\) et ensuite de remplacer un fichier qui est contenu au même endroit dans l'ensemble de ces sous-répertoire (c:\test\rep1\toto\fic ; c:\test\rep2\toto\fic ...).
En local je n'ai eu aucun mal à me débrouiller avec Get-ChildItem et Copy-Item mais à distance je n'arrive à rien et surtout je me paume complètement avec WMI et ses différentes classes (d'ailleurs si vous connaissez des docs ou liens intéressants sur le sujet cela m'intéresse).
Donc si quelqu'un pouvait m'aiguiller sur la voir à suivre pour faire ces opérations sur des machines distantes (et plus généralement sur faire des scripts Powershell pour opérer sur des machines distantes), cela m'aiderait bien.
Merci d'avance.
Xavier
Connexion ou Créer un compte pour participer à la conversation.
- daniel soares
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 15 ans 9 mois #2602
par daniel soares
Réponse de daniel soares sur le sujet Re:Opérations sur postes distants
hello
pour une action sur le file system des serveurs distants personnellement j'utilise l'artillerie lourde.
j'ai cree un fichier de reference permettant de stocker toutes les ip et comptes de mon parc de serveurs
j'ai scripté une fonction permettant de mapper le repertoire voulu et ensuite je le travaille comme si j'etais en local avec les comandlettes auquelles tu fais reference.
ca represente un gros travail en amont surtout si tu as des environnements heterogenes (workgroups a gogo et multitude de domaines) mais au final toutes les taches que tu peux etre ammené a realiser sur la totalité du parc deviennent une simple formalité.
tout ceci en attendant que le remoting fonctionne correctement avec powershell v3? soyons patient.
je posterai les fonctions que j'ai scripté permettant d'interagir avec la totalité de mon parc serveurs plus tard dans la journée
pour une action sur le file system des serveurs distants personnellement j'utilise l'artillerie lourde.
j'ai cree un fichier de reference permettant de stocker toutes les ip et comptes de mon parc de serveurs
j'ai scripté une fonction permettant de mapper le repertoire voulu et ensuite je le travaille comme si j'etais en local avec les comandlettes auquelles tu fais reference.
ca represente un gros travail en amont surtout si tu as des environnements heterogenes (workgroups a gogo et multitude de domaines) mais au final toutes les taches que tu peux etre ammené a realiser sur la totalité du parc deviennent une simple formalité.
tout ceci en attendant que le remoting fonctionne correctement avec powershell v3? soyons patient.
je posterai les fonctions que j'ai scripté permettant d'interagir avec la totalité de mon parc serveurs plus tard dans la journée
Connexion ou Créer un compte pour participer à la conversation.
- Xavier Jacquelin
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 15 ans 9 mois #2603
par Xavier Jacquelin
Réponse de Xavier Jacquelin sur le sujet Re:Opérations sur postes distants
Merci pour ta réponse.
Ok, ça confirme ce que mes différents tests et lectures sur le sujet avaient l'air de montrer.
Donc en gros avec PowerShell v1 et l'interaction avec les machines distantes, c'est WMI \"uniquement\" pour faire du reporting (genre faire l'inventaire du parc...) et map + \"travail en local\" pour les interactions, si j'ai bien compris ?
Bon c'est déjà ça, cela m'évitera de passer des lustres à chercher des solutions infaisables.
Je vais donc travailler sur la partie map des répertoires distants, et je lirai avec attention les fonctions que tu postera.
Merci.
Xavier
Ok, ça confirme ce que mes différents tests et lectures sur le sujet avaient l'air de montrer.
Donc en gros avec PowerShell v1 et l'interaction avec les machines distantes, c'est WMI \"uniquement\" pour faire du reporting (genre faire l'inventaire du parc...) et map + \"travail en local\" pour les interactions, si j'ai bien compris ?
Bon c'est déjà ça, cela m'évitera de passer des lustres à chercher des solutions infaisables.
Je vais donc travailler sur la partie map des répertoires distants, et je lirai avec attention les fonctions que tu postera.
Merci.
Xavier
Connexion ou Créer un compte pour participer à la conversation.
- daniel soares
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 15 ans 9 mois #2604
par daniel soares
Réponse de daniel soares sur le sujet Re:Opérations sur postes distants
voici donc un code sur lequel tu peux t'appuyer
d'abord création d'un fichier csv sous la forme
fichier.csv
nomserveur,ip,compte,mdp
serveur1,ip1,compte1,mdp1
...
ensuite le code permettant de mapper pour chaque serveur le disque c$, de tester la présence du répertoire temp et de supprimer le map
[code:1]
$map = New-Object -com Wscript.Network
$source = import-csv c:\fichier.csv
$source | foreach{
#$($var.proprieté) permet d'insérer une proprieté entre les \"\"
#si tu tapes \"$var.proprieté\" c'est le nom qui est inséré.
$loc =\"\\$($_.Ip)\c$\"
# crée le map sans affecter de lettre
$map.MapNetworkDrive(\"\",$loc,\"false\",$($_.compte),$($_.mdp))
Test-Path \"$loc\temp\"
# supprime le map si il existe
if (($map.enumNetworkDrives() -like $loc).count -ne 0){$map.RemoveNetworkDrive($loc)}
}
[/code:1]
le mdp est en clair dans le fichier csv si tu veux le crypter il existe une solution sur ce site dans la bibliothèque de scripts<br><br>Message édité par: Dan, à: 18/07/08 13:34
d'abord création d'un fichier csv sous la forme
fichier.csv
nomserveur,ip,compte,mdp
serveur1,ip1,compte1,mdp1
...
ensuite le code permettant de mapper pour chaque serveur le disque c$, de tester la présence du répertoire temp et de supprimer le map
[code:1]
$map = New-Object -com Wscript.Network
$source = import-csv c:\fichier.csv
$source | foreach{
#$($var.proprieté) permet d'insérer une proprieté entre les \"\"
#si tu tapes \"$var.proprieté\" c'est le nom qui est inséré.
$loc =\"\\$($_.Ip)\c$\"
# crée le map sans affecter de lettre
$map.MapNetworkDrive(\"\",$loc,\"false\",$($_.compte),$($_.mdp))
Test-Path \"$loc\temp\"
# supprime le map si il existe
if (($map.enumNetworkDrives() -like $loc).count -ne 0){$map.RemoveNetworkDrive($loc)}
}
[/code:1]
le mdp est en clair dans le fichier csv si tu veux le crypter il existe une solution sur ce site dans la bibliothèque de scripts<br><br>Message édité par: Dan, à: 18/07/08 13:34
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 15 ans 9 mois #2607
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Opérations sur postes distants
Ygster écrit:
www.nsoftware.com/powershell/
www.leeholmes.com/blog/UsingPowerShellAn...RemoteComputers.aspx
blogs.msdn.com/powershell/archive/2008/0...g-powershell-v1.aspx
Concernant WMI, il faut en comprendre les principes de bases ensuite la connaissance des classes n'est pas difficile, de plus elle se fait au grès des besoins.
laurent-dardenne.developpez.com/articles/wmi-p1/
Sinon le livre suivant est très bien, complet et explicite :
www.amazon.fr/Understanding-Wmi-Scriptin...issoir/dp/1555582664
Cela dépend si tu souhaites une solution native ou pas :Donc en gros avec PowerShell v1 et l'interaction avec les machines distantes, c'est WMI \"uniquement\" pour faire du reporting (genre faire l'inventaire du parc...) et map + \"travail en local\" pour les interactions, si j'ai bien compris ?
www.nsoftware.com/powershell/
www.leeholmes.com/blog/UsingPowerShellAn...RemoteComputers.aspx
blogs.msdn.com/powershell/archive/2008/0...g-powershell-v1.aspx
Concernant WMI, il faut en comprendre les principes de bases ensuite la connaissance des classes n'est pas difficile, de plus elle se fait au grès des besoins.
laurent-dardenne.developpez.com/articles/wmi-p1/
Sinon le livre suivant est très bien, complet et explicite :
www.amazon.fr/Understanding-Wmi-Scriptin...issoir/dp/1555582664
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- daniel soares
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 15 ans 9 mois #2611
par daniel soares
Réponse de daniel soares sur le sujet Re:Opérations sur postes distants
merci Laurent
très intéressante la solution utilisant psexec
je ne vois pas a priori de gestion de credential sur cette solution mais je crois me souvenir que psexec offre cette possibilité alors je vais creuser le sujet
très intéressante la solution utilisant psexec
je ne vois pas a priori de gestion de credential sur cette solution mais je crois me souvenir que psexec offre cette possibilité alors je vais creuser le sujet
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.100 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Opérations sur postes distants