首页 > 解决方案 > Powershell 使用远程连接返回不同的信息

问题描述

在 PowerShell 中的目标计算机上,我运行命令 $FolderSize =(Get-ChildItem "C:\Users\JDoe" -force -Recurse -ErrorAction SilentlyContinue | Measure-Object length -sum).sum

我得到一个 0.76 gb 的值,它准确地对应于磁盘上文件夹的压缩大小。但是,当我尝试在远程计算机上使用

$folderSize = Invoke-Command -ComputerName "computername" {(Get-ChildItem -Path "C:\Users\JDoe" -Recurse -force -ErrorAction SilentlyContinue | Measure-Object -Property Length -sum).sum} 我得到一个不同的,更大的数字,17 GB。

我尝试在 pssession 中运行第一个命令,但仍然得到 17gb 的结果。我也尝试过使用

psexec \\\computername powershell "(Get-ChildItem "C:\Users\JDoe" -force -Recurse -ErrorAction SilentlyContinue | Measure-Object length -sum).sum"但仍然得到更大的数字。

我不明白为什么在本地检查时远程获得的结果与文件夹的实际大小不同。至少所有远程结果都是一致的,这告诉我他们都在测量同一件事。

标签: powershellget-childitem

解决方案


感谢所有的建议!最终,我选择使用 Sysinternals “du” 应用程序并在远程作业中捕获输出,以最大限度地减少网络流量。

再次感谢!


推荐阅读