[Powershell] Connection hosts remote

Connection hosts remote [Powershell] - Shell/Batch - Programmation

Marsh Posté le 18-07-2011 à 15:03:30    

'jour :jap:
 
 
J'ai un script PS qui fait des manips sur des fichiers, rien de bien violent (copier-coller / renommage):

Code :
  1. $SourceFile = "C:\Temp\Test.txt";
  2. $NewFile    = "C:\Temp\Test2.txt";
  3. # CHECK & COPY
  4. if ([System.IO.File]::Exists($SourceFile))  {
  5.    [System.IO.File]::Copy($SourceFile, $NewFile)
  6.    "Source File ($SourceFile) copied to ($newFile)"
  7. }
  8. else {
  9. "Source file ($Sourcefile) does not exist."
  10. # RENAME
  11. Rename-Item $Sourcefile test.ori
  12. Rename-item $NewFile test.new


 
Seulement voilà, j'aimerais lancer ce script en local sur une liste de serveur définie dans un fichier .txt.
J'ai bien essayé "bêtement" avec un "for each" des éléments du .txt mais ça ne passe pas.
 
 
Si quelqu'un a une idée... merci d'avance  [:pou3t]  


---------------
I see your ugly mugs and your boppin' along as if you were always down - Proud - our ways still cocky, arrogance in the finest form.
Reply

Marsh Posté le 18-07-2011 à 15:03:30   

Reply

Marsh Posté le 20-07-2011 à 01:23:49    

Peut être que je passe a coté de la vraie demande mais pour moi:
 
1. Appel du script PS depuis un batch
2. Dans ce batch, une boucle FOR /F qui parcours chaque ligne de ton fichier texte contenant tes serveurs
3. Les paramètres passés au script PS se récupèrent dans un Array ($args de mémmoire, indicé à partir de 0)
 
Ca donnerait donc  
batch.bat

Code :
  1. for /f %%i (C:\listeServeur.txt) (
  2.     powershell .\tonscript.ps1 %%i
  3.     )


 
tonscript.ps1

Code :
  1. $Serveur = $args[0]


 
Après il y a sans doute plus simple, mais je suppose que c'est un traitement récurrent donc qui va être exécuté par une scheduled task, donc je mettrait ça dans un batch.  
 
Sinon si tu veux tout faire coté PowerShell, je pense qu'avec ta classe System.IO.File tu peux t'en sortir, avec une instance de StreamReader pour ouvrir ton fichier listeServeur.txt en lecture seule, puis avec une boucle de type TantQue, parcrourir ligne par ligne ton fichier texte et assigner la valeur de la ligne à une variable dans ton script.
 
http://msdn.microsoft.com/fr-fr/li [...] .100).aspx

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed