首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算Invoke-Command的结果

计算Invoke-Command的结果
EN

Stack Overflow用户
提问于 2019-08-21 22:08:46
回答 2查看 168关注 0票数 0

我有一个任务,它会在一系列服务器上检查占用CPU时间超过5分钟的指定windows进程。

进程和服务器是通过数组提供的,并通过一些循环循环,这很好地工作。

然而,我想要做的是计算每个进程在循环过程中找到了多少结果。

在本例中,设置的变量为

代码语言:javascript
复制
$seconds = 300
$server = "SERVER1"
$process = "notepad.exe"

我运行的命令如下所示

代码语言:javascript
复制
$list = (Invoke-Command -ComputerName $server -ScriptBlock {
    Param($Rseconds, $Rprocess)
    Get-Process | Where {
        ($_.CPU -gt $Rseconds) -and
        ($_.Path -like "*$Rprocess”)
    } | ForEach-Object {
        $_.Kill()
    }
} -ArgumentList $seconds, $process)

就终止进程而言,它工作得很好,并且尊重输入的值,但我不能让它做的是计算它杀死了多少个进程

我已经尝试在ForEach-Object块中简单地递增计数器,并尝试在不同的位置粘贴Measure-Object以尝试并返回值,因此我可以调用如下内容

代码语言:javascript
复制
$list.Count

但似乎什么都不起作用。它只是返回一个空值。

EN

回答 2

Stack Overflow用户

发布于 2019-08-21 22:33:12

使用带有参数-PassThruStop-Process,而不是在循环中调用Kill()

代码语言:javascript
复制
$list = Invoke-Command -ComputerName $server -ScriptBlock { 
    Param($Rseconds, $Rprocess)
    Get-Process | Where-Object {
        $_.CPU -gt $Rseconds -and
        $_.Path -like "*$Rprocess"
    } | Stop-Process -Force -PassThru
} -ArgumentList $seconds, $process

如果您只想返回计数而不是process对象的列表,则可以执行以下操作:

代码语言:javascript
复制
$list = Invoke-Command -ComputerName $server -ScriptBlock { 
    Param($Rseconds, $Rprocess)
    $proc = Get-Process | Where-Object {
        $_.CPU -gt $Rseconds -and
        $_.Path -like "*$Rprocess"
    }
    $proc | Stop-Process -Force
    $proc.Count
} -ArgumentList $seconds, $process
票数 0
EN

Stack Overflow用户

发布于 2019-08-21 23:05:25

找到了答案

代码语言:javascript
复制
$listCount = (Invoke-Command -ComputerName $server -ScriptBlock { param($Rseconds,$Rprocess) Get-Process | Where { ($_.CPU -gt $Rseconds) -and ($_.Path -like "*$Rprocess”) }  | Measure-Object } -ArgumentList $seconds,$process)

我不得不添加Measure-Object,但我也被我自己的设置欺骗了。我将服务器范围限制在一台服务器上,但我检查错了一台服务器,因此我走进了一条死胡同,似乎我以前已经有了解决方案

现在全部正常工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57593597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档