You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Powershell查询Win32_Service时如何为每条服务添加指定标注

修改后可实现标注功能的完整代码

Get-CimInstance Win32_Service |
  Where-Object { $_.PathName -like '*.exe*'} | 
    Select-Object Name, State, Pathname, StartName |
      ForEach-Object {
        $_.PathName = ($_.PathName -split '(?<=\.exe\b)')[0].Trim('"')
        # 新增错误忽略参数,避免无权限读取路径时脚本中断
        Add-Member -PassThru -InputObject $_ Acl (Get-Acl -LiteralPath $_.PathName -ErrorAction SilentlyContinue)
      } | 
        Where-Object { 
          $null -ne $_.Acl -and $_.Acl.Access.Where({
             $_.IdentityReference -ceq 'BUILTIN\Utilisateurs' -and 
              $_.FileSystemRights -eq 'FullControl' 
          }, 'First').Count -gt 0
        } |
        # 新增标注注入逻辑,给所有符合条件的记录加固定标注
        Add-Member -PassThru -NotePropertyName 'RiskLabel' -NotePropertyValue 'Service exploitable'

实现说明

  • 你原本的筛选逻辑完全可用,只需要在管道末尾追加Add-Member调用即可注入自定义标注属性,-PassThru参数保证对象可以继续向下传递,支持后续导出、二次筛选操作
  • 新增的RiskLabel属性会作为独立字段存在,导出为CSV、JSON等格式时会完整保留标注信息
  • 如果仅需要控制台可视化查看标注,不需要保留属性,可把最后一行替换为以下代码,输出时会直接生成标注列:
    | Select-Object Name, State, Pathname, StartName, @{Name='风险标注'; Expression={'Service exploitable'}}
    

内容的提问来源于stack exchange,提问作者Boosted bug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:24:03