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

如何使用PowerShell执行远程删除并获取操作结果(成功/失败+异常)

PowerShell远程删除文件并捕获详细操作结果

原命令执行删除后不会返回任何操作详情,也没有错误捕获机制,所以无法得知哪些文件成功删除、哪些失败及原因。以下是改进后的脚本,能直接获取每个文件的操作状态和异常信息:

$results = Invoke-Command -ComputerName $remoteComputers -ScriptBlock {
    Get-ChildItem "C:\tmp" | Where-Object { $_.Name -like "*MATCHINGfiles*" } | ForEach-Object {
        $file = $_
        try {
            Remove-Item -Path $file.FullName -ErrorAction Stop
            # 返回成功操作的详情对象
            [PSCustomObject]@{
                ComputerName = $env:COMPUTERNAME
                FilePath     = $file.FullName
                Status       = "Success"
                ErrorMessage = $null
            }
        }
        catch {
            # 返回失败操作的详情对象,包含具体错误信息
            [PSCustomObject]@{
                ComputerName = $env:COMPUTERNAME
                FilePath     = $file.FullName
                Status       = "Failed"
                ErrorMessage = $_.Exception.Message
            }
        }
    }
}

关键改进说明

  • 用ForEach-Object逐个处理文件,确保每个文件的操作结果都能被单独捕获
  • 添加-ErrorAction Stop参数,让删除操作出错时自动触发catch块
  • 返回自定义的PSCustomObject,包含远程计算机名、文件路径、操作状态、错误信息四个核心字段,方便后续筛选和分析

查看结果的常用方式

  • 查看所有操作的汇总表格:
    $results | Format-Table -AutoSize
    
  • 筛选出删除失败的条目(便于排查问题):
    $results | Where-Object { $_.Status -eq "Failed" } | Format-List
    
  • 导出结果到CSV文件(方便存档或用其他工具分析):
    $results | Export-Csv -Path "C:\RemoteDeleteResults.csv" -NoTypeInformation -Encoding UTF8
    

内容的提问来源于stack exchange,提问作者Μenelaοs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 19:56:04