首页 > 解决方案 > 从域中的远程机器获取服务

问题描述

尝试获取具有特定服务的域中所有机器的列表

通过这里的所有帖子进行了尝试,每台机器都有帮助,但是如果我在多台机器上使用文本文件,它会失败

$computers = Get-Content c:\script\computers.txt
$service = "*crystal*"

foreach ($computer in $computers) {
$servicestatus = Get-Service -ComputerName $computer -Name $service

}

$Data = $servicestatus | Select-Object Name,Machinename | Format-Table -AutoSize

Write($Data) | Out-File c:\script\output.txt -Append

表中具有服务的机器的预期列表,而不是错误:此操作可能需要其他权限

相同的脚本,但具有直接的机器名称,就像一个魅力。任何线索有什么问题?

标签: powershellpowershell-2.0powershell-remoting

解决方案


为什么不使用:

Invoke-Command -ComputerName $computers -ScriptBlock {Get-Service -Name *crystal*} 

最终,您可以将调用的结果存储到变量中并使用它。使用 insted foreach 的 Invoke-Command 的好处是 Invoke 是并行工作的,而 foreach 是串行的......

希望能帮助到你!

此致,

伊万


推荐阅读