powershell - 从域中的远程机器获取服务
问题描述
尝试获取具有特定服务的域中所有机器的列表
通过这里的所有帖子进行了尝试,每台机器都有帮助,但是如果我在多台机器上使用文本文件,它会失败
$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
表中具有服务的机器的预期列表,而不是错误:此操作可能需要其他权限
相同的脚本,但具有直接的机器名称,就像一个魅力。任何线索有什么问题?
解决方案
为什么不使用:
Invoke-Command -ComputerName $computers -ScriptBlock {Get-Service -Name *crystal*}
最终,您可以将调用的结果存储到变量中并使用它。使用 insted foreach 的 Invoke-Command 的好处是 Invoke 是并行工作的,而 foreach 是串行的......
希望能帮助到你!
此致,
伊万
推荐阅读
- android - 在 Kotlin 中执行第二个函数之前,如何等待第一个函数完成?
- django - Django中有条件“ON DELETE CASCADE”这样的东西吗?
- visual-studio - 未执行 dockerfile 中的 RUN 命令
- google-apps-script - 如何使用 Google Places API 将 Google Maps 信息拉入 Google Sheet?
- linux - chmod 后无法运行 bin 文件
- python - 在python中灵活解包返回的元组
- asp.net - AjaxControlToolkit MaskedEditExtender 显示额外的零
- matlab - 在 Matlab 中为图形添加参数
- arduino - 当我运行我的 arduino 代码时出现错误:“RightForward”未在此范围内声明。有谁知道如何解决这个问题?
- c# - Windows 窗体应用程序:应用投影效果时自定义窗体周围的白色边框