请求编写适用于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
相关产品推荐
相关产品推荐

