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

PowerShell脚本问题:如何远程执行Get-ChildItem获取指定深度目录

问题解决与脚本修改

原脚本的核心问题

  1. 循环变量引用错误:ForEach ($server in $serverList) 里应该用 $server.server 调用服务器名称,而非 $_.server——后者在当前循环上下文里指向的是脚本管道对象,会导致路径无效,默认访问本地机器。
  2. 远程目录访问方式错误:直接用服务器名作为Get-ChildItem的路径无法访问远程机器,必须用UNC共享路径(比如\\服务器名\共享目录),或者通过Invoke-Command远程执行命令。
  3. 输出文件被覆盖:每次循环执行export-csv会覆盖之前的结果,需要添加-Append参数保留所有数据。
  4. 目录筛选冗余:PowerShell 3.0及以上版本可以直接用-Directory参数替代where { $_.PsIsContainer -eq $true },写法更简洁高效。

修改后的脚本方案

方案1:使用UNC路径访问(需目标服务器开启共享,如管理员共享C$)

$serverList = Import-Csv -Path C:\Users\J\Desktop\servers.csv
# 先清空输出文件,避免残留旧数据
if (Test-Path "C:\Users\J\Desktop\output.csv") { Remove-Item "C:\Users\J\Desktop\output.csv" }

foreach ($server in $serverList) {
    $serverName = $server.server
    # 构造UNC路径,这里以C盘管理员共享为例,可根据实际需求修改共享目录
    $remotePath = "\\$serverName\C$"
    
    Get-ChildItem -Path $remotePath -Recurse -Depth 2 -Directory `
        | Select-Object @{Name='ServerName'; Expression={$serverName}}, Name, Mode -Unique `
        | Export-Csv -Path "C:\Users\J\Desktop\output.csv" -Append -NoTypeInformation
}

方案2:使用Invoke-Command远程执行(需目标服务器开启WinRM服务)

$serverList = Import-Csv -Path C:\Users\J\Desktop\servers.csv
if (Test-Path "C:\Users\J\Desktop\output.csv") { Remove-Item "C:\Users\J\Desktop\output.csv" }

foreach ($server in $serverList) {
    $serverName = $server.server
    
    Invoke-Command -ComputerName $serverName -ScriptBlock {
        Get-ChildItem -Path $using:targetPath -Recurse -Depth 2 -Directory `
            | Select-Object Name, Mode -Unique
    } -ArgumentList "C:\" ` # 指定远程机器上的根路径,可按需修改
    | Select-Object @{Name='ServerName'; Expression={$serverName}}, Name, Mode `
    | Export-Csv -Path "C:\Users\J\Desktop\output.csv" -Append -NoTypeInformation
}

关键说明

  • 两种方案都添加了ServerName字段,方便区分不同服务器的结果。
  • 方案1需要你对目标服务器的共享目录有读取权限(比如C$共享默认仅管理员可访问)。
  • 方案2需要目标服务器开启WinRM服务,可通过Enable-PSRemoting命令在远程机器上开启(需管理员权限)。
  • -NoTypeInformation参数用于避免CSV文件开头生成多余的类型信息行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:35:15