Ari*_*rin 2 windows batch-file winrm winrs
我正在使用WinRS在远程计算机上运行可执行文件.反过来,该可执行文件需要访问UNC网络共享.我在使用AD的Windows网络上运行,并将所有内容作为域管理员帐户(不是本地帐户)运行,该帐户是相关服务器的计算机管理员,并且具有网络共享的完全控制(文件夹和共享).但是,当我使用WinRS运行远程进程时,该远程进程似乎没有网络访问权限.我可以将其提炼出来的最简单的例子是:
winrs -r:RedServer dir \\BlueServer\SomeSharedFolder
Run Code Online (Sandbox Code Playgroud)
这给出了错误
访问被拒绝.
请注意,WinRS本身适用于RedServer,因为它运行良好:
winrs -r:RedServer dir C:
Run Code Online (Sandbox Code Playgroud)
所以,这听起来像权限问题,对吗?但为了证明此帐户确实具有对\\BlueServer\SomeSharedFolder共享的完全控制权,我使用相同的帐户登录RedServer并在命令提示符下运行:
dir \\BlueServer\SomeSharedFolder
Run Code Online (Sandbox Code Playgroud)
它运行正常,给我该文件夹的内容.它只是导致错误的WinRS + UNC路径的组合.
有什么我需要配置不同,或者这是Windows的限制/保护?我对Sysinternals的PsExec.exe也有类似的限制; 我可以访问目标计算机上的任何内容,但网络上没有任何内容.顺便说一句,我在这里发现了一个有点相关的问题:" 使用winrs创建映射驱动器时出错 ",但没有答案.
您所描述的是双跃点场景,需要在客户端和服务器上进行额外配置才能支持.双跃点方案是远程登录到Windows服务器,然后访问远程网络共享:
client -> server -> file share
您可以通过CredSSP或Kerberos委派来完成此任务.
CredSSP身份验证适用于无法使用Kerberos委派的环境.添加了对CredSSP的支持,以允许用户连接到远程服务器并能够访问第二跳机器,例如文件共享.
虽然我没有尝试过这些说明,但它们似乎是一个合理的起点.此外,Travis Gan的这篇博客文章似乎也很有帮助.