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

请求编写适用于NinjaOne的PowerShell脚本,用于检测指定文件路径并输出符合条件的设备列表

请求编写适用于NinjaOne的PowerShell脚本,用于检测指定文件路径并输出符合条件的设备列表

没问题,我来帮你搞定这个适用于NinjaOne的PowerShell脚本!下面是完全符合你需求的解决方案,我会一步步给你解释清楚:

完整PowerShell脚本

# 定义需要检测的两个路径
$targetPaths = @(
    "C:\Oracle\product\12.2.0\client_1\deinstall",
    "C:\app\client\product\12.2.0\client_1\deinstall"
)

# 标记是否找到任一目标路径
$pathFound = $false

# 遍历每个路径进行检测
foreach ($path in $targetPaths) {
    if (Test-Path -Path $path -PathType Container) {
        $pathFound = $true
        break # 找到一个就停止检测,提升效率
    }
}

# 根据检测结果输出内容(适配NinjaOne的自动化输出)
if ($pathFound) {
    Write-Output "$($env:COMPUTERNAME): 检测到目标路径存在"
} else {
    Write-Output "$($env:COMPUTERNAME): 未检测到目标路径"
}

脚本说明

  • 路径定义:用数组$targetPaths存储你需要检测的两个文件夹路径,后续要加新路径直接在数组里添加就行。
  • 路径检测:使用Test-Path命令,加上-PathType Container确保检测的是文件夹(避免和同名文件混淆)。
  • 设备名称获取:通过$env:COMPUTERNAME自动获取当前设备的名称,不用手动配置。
  • 输出逻辑:找到任一目标路径就标记为存在,输出带设备名的结果,方便后续在NinjaOne里汇总。

NinjaOne自动化配置注意事项

  • 在NinjaOne里创建新的自动化脚本任务时,直接把上面的代码粘贴进去。
  • 任务范围选择“所有添加的设备”,或者根据你的需求调整目标设备组。
  • 执行完成后,你可以在NinjaOne的任务结果里筛选出包含“检测到目标路径存在”的条目,这些就是符合条件的设备列表。
  • 如果需要更结构化的输出(比如JSON格式方便后续处理),可以把输出改成:
if ($pathFound) {
    [PSCustomObject]@{
        ComputerName = $env:COMPUTERNAME
        PathFound = $true
        DetectedPaths = $targetPaths | Where-Object { Test-Path $_ -PathType Container }
    } | ConvertTo-Json
} else {
    [PSCustomObject]@{
        ComputerName = $env:COMPUTERNAME
        PathFound = $false
        DetectedPaths = @()
    } | ConvertTo-Json
}

这样NinjaOne会返回结构化的JSON数据,你可以更方便地导出或者分析结果。

备注:内容来源于stack exchange,提问作者pboden-pcs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 07:54:38