【发布时间】:2018-10-06 04:06:43
【问题描述】:
我需要使用 psexec 获取远程计算机上的文件夹大小(命令限制为 255 个字符)。
主要内容:
- psexec [限制为 255 个字符] - oneliner
- 从 cmd 执行的 powershell
- 按字节排序
- 消除小于 MB 的值
我设法做到了这一点(没有排序/大于):
powershell -exe bypass -c "gci -Force | ?{ $_.PSIsContainer } | ForEach-Object { $_.Name + ': ' + '{0:N2} MB' -f ((gci $_ -Recurse -ErrorAction SilentlyContinue | Measure-Object -ErrorAction SilentlyContinue Length -Sum ).Sum / 1MB)}"
但我还想按字节输出排序或/并消除大小小于(或至少以 0,xx 开头)的文件夹。
感谢您的帮助。
--------- 更新 ---------
远程执行的命令太糟糕了(在下面的答案中提供)会产生很多错误并且不能很好地完成。 我有另一个适用于所有系统的命令,但不知道如何按字节/第二列排序输出和不要超过 255 个字符。
这里是命令 [234 个字符]:
powershell -exe bypass -c "gci -Force | ?{ $_.PSIsContainer } | ForEach-Object { $_.Name + ': ' + '{0:N2} MB' -f ((gci $_ -Recurse -ErrorAction SilentlyContinue | Measure-Object -ErrorAction SilentlyContinue Length -Sum ).Sum / 1MB)}"
还有更短的版本 [173 个字符]:
powershell -exe bypass -c "gci -Force | ?{ $_.PSIsContainer } | % { $_.Name + ': ' + '{0:N2} MB' -f ((gci $_ -Recurse -EA 0 | Measure-Object -EA 0 Length -Sum ).Sum / 1MB)}"
有人知道如何解决这个问题吗?
【问题讨论】:
-
是否有理由坚持使用 PSExec 而不是直接通过网络执行,可能使用 WMI?
-
是的,我坚持认为这是限制为 255 个字符的 oneliner - 包括 powershell -exe bypass -c " "
标签: powershell sorting size directory psexec