如何从本地获取远程服务器上的一个网络映射盘里的文件的MD5?


PowerShell交流中心如何从本地获取远程服务器上的一个网络映射盘里的文件的MD5?
0
pwshroad asked 6 年 ago

远程服务器A上映射了一个B的共享文件夹为X盘,并在X盘建了个1.rar的文件,在本地执行:

invoke-command -session $s -scriptblock{[system.io.file]::exists(“x:\1.rar”)}

返回false,

或执行invoke-command -session $s -scriptblock{get-childitem x:\}

提示找不到x驱动器,

请问老师,如何检查A上有1.rar,并与本地上1.rar比较MD5?

2 Answers
0
蜗牛 answered 6 年 ago

判断文件是否存在:
test-path X:\111\222\FileName.docx
获取MD5:
dir “映射盘路径” -File -Recurse | Get-FileHash -Algorithm MD5 | ConvertTo-Json | Out-File d:\hash-list.json
“映射盘路径”可以是目录,也可以是文件
判断文件和MD5都有历史提问的,我也是从站内搜索学习到的,这里内容挺多的,多用搜索功一般自己就能搞定。

pwshroad replied 6 年 ago

invoke-command远程执行会提示找不到映射盘,

蜗牛 replied 6 年 ago

直接本地执行即可,不需要使用invoke-command远程执行。

0
Mooser Lee 管理员 answered 6 年 ago

这个问题的主要症结在于用户@pwshroad 没有从本地直接访问共享目录,需要在远程机器上才能访问共享目录,所以才可能选择了在远程机器上挂载。
然后核心问题就变成了invoke-command中访问不到挂载的X目录,这是因为你的invoke-command使用的权限,没有通过远程机器传递给共享目录,这之间有一个【权限代理】的概念,需要额外的配置。
请参考另外两篇帖子:

蜗牛 replied 6 年 ago

抱歉是我没有理解提问~
谢谢Mooser Lee,学习了。

pwshroad replied 6 年 ago

是这样子的,谢谢了。