2010-07-29 30 views
3

我想寫一個PowerShell腳本,將採取一個文本文件(或xml文件或任何我想ti是)與服務器名稱列表和服務器上的一些服務名稱停止。我可以讓PowerShell從文本文件中讀取一行,但我無法弄清楚如何讓PowerShell將數據導入到單獨的變量中,以便傳遞給其他函數。如果這是爭論似乎微不足道,但必須有一個簡單的方法來做到這一點,而不是我在每一行上使用正則表達式。PowerShell腳本的數據結構

回答

6

考慮下面的XML:

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

你可以處理$xml變量,像這樣:

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

     # Execute your kill script here. 

    } 
} 

對於在遠程機器上一個kill腳本,您可以使用調用腳本cmdlet的(需要PSRemoting被啓用),或PsExec或WMI,無論你最喜歡哪一個。將需要$server$process變量來針對正確的服務器上的正確過程執行kill。