Question Opérations sur postes distants

Plus d'informations
il y a 15 ans 9 mois #2601 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

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

Plus d'informations
il y a 15 ans 9 mois #2602 par daniel soares
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

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

Plus d'informations
il y a 15 ans 9 mois #2603 par Xavier Jacquelin
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

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

Plus d'informations
il y a 15 ans 9 mois #2604 par daniel soares
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

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

Plus d'informations
il y a 15 ans 9 mois #2607 par Laurent Dardenne
Ygster écrit:

Donc en gros avec PowerShell v1 et l'interaction avec les machines distantes, c'est WMI \&quot;uniquement\&quot; pour faire du reporting (genre faire l'inventaire du parc...) et map + \&quot;travail en local\&quot; pour les interactions, si j'ai bien compris ?

Cela dépend si tu souhaites une solution native ou pas :
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.

Plus d'informations
il y a 15 ans 9 mois #2611 par daniel soares
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

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

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