$ask1 = Read-Host -Prompt "1 for single server, 2 for multiple"
if ($ask1 -eq 1) {
$service = Read-Host -Prompt "enter process"
$server = Read-Host -Prompt "enter server name"
Get-Service -Name $service -ComputerName $server
} else {
$invoke1 = Invoke-Item "u:\Scripts\Servers.txt"
$invoke2 = Invoke-Item "u:\Scripts\Process.txt"
$ask2 = Read-Host -Prompt "press 1 to continue"
while ($ask1 -eq 2) {
if ($ask2 -eq 1) {
$content1 = Get-Content "U:\Scripts\process.txt"
$content2 = Get-Content "U:\Scripts\servers.txt"
Write-Host "servers are " $content2
Write-Host "process looking for are " $content1
foreach ($item in $content1) -and ($item2 in $content2) {
Get-Service -name $item -ComputerName $item2 | Format-List -Property MachineName,status,Displayname
}
}
break
}
}
如果你看到这部分
foreach($ item1中的$ item) - 和$ content2中的$ item2 {
Get-Service -name $ item -ComputerName $ item2 | Format-List -Property MachineName,status,Displayname
}
你会看到我试图获取2个不同地方的内容。一个用于服务器,一个用于服务。反正有没有包括第二个forea循环?
答案 0 :(得分:3)
如果两个文件的行数相同,则可以使用经典的for循环:
$content1
如果您尝试在$content2
中列出的每台计算机上检索foreach($serviceName in $content1)
{
foreach($computerName in $content2)
{
Get-Service -Name $serviceName -ComputerName $computerName
}
}
中列出的所有服务,请使用嵌套循环:
fractal