2010-07-29 4 views
3

J'essaye d'écrire un script powershell qui prendra dans un fichier texte (ou un fichier xml ou tout ce que je veux ti être) avec une liste de nom de serveur et certains noms de service sur ce serveur pour arrêter. Je peux obtenir powershell à lire dans une ligne à partir d'un fichier texte, mais je ne peux pas comprendre comment obtenir PowerShell pour importer les données dans une variable séparée pour moi de passer à d'autres fonctions. Si cela était arguemnts, cela semble trivial, mais il doit y avoir un moyen simple de le faire plutôt que d'utiliser une regex sur chaque ligne.structure de données pour script powershell

Répondre

6

Tenir compte du XML ci-dessous:

$xml = [xml]@" 
<Servers> 
    <Server name="SERVER1"> 
     <Process>Process1</Process> 
     <Process>Process2</Process> 
    </Server> 
    <Server name="SERVER2"> 
     <Process>Process3</Process> 
    </Server> 
</Servers> 
"@ 

Vous pourriez traiter la variable $xml comme ceci:

foreach ($server in $xml.Servers.Server) { 
    foreach ($process in $server.Process) { 

     # Execute your kill script here. 

    } 
} 

Pour un script kill sur des machines distantes, vous pouvez utiliser l'applet de commande Invoke-Script (EXIGE PSRemoting être activé), ou PsExec, ou WMI, celui avec lequel vous êtes le plus à l'aise. Les variables $server et $process seront nécessaires pour exécuter le kill sur le bon processus sur le bon serveur.

Questions connexes