我有以下设置。
1 台主机位于域 A 中 1 台 PDC 位于虚拟机中,该虚拟机运行在仅有主机的网络适配器上,并运行其自己的 AD 林(域 B) 1 台服务器在域 B 中运行,它也位于仅有主机的网络适配器上,但具有通过 VirtualBox 以 NAT 模式运行的辅助适配器(PDC 在同一个 VirtualBox 实例中运行)。
我需要将域 A 中的文件使用 ROBOCOPY 复制到不存在信任关系的域 B,域 B 是完全隔离的,并且绝对不允许以任何方式与域 A 对话。
一种方法是使用 sysinternals 中的 PSEXEC,并使用网络路径将文件复制到域 B 中的文件,这种方法已被完全排除,原因多种多样,其中之一是时间和重新制定流程会花费太长时间(尽管这是可能的)
我可以使用带有开关的 runas 复制文件,/netonly
而无需在运行时从 cmd 行手动输入运行作为密码,这一切都有效。
问题是我正在从 rake 命令内部运行此副本,该命令使用 MSBuild 扩展调用 Robocopy(仅执行 Robocopy.exe)。
是否有第三方的 runas 或等效工具允许使用/netonly
给定的密码作为开关来执行 runas 行为?
runas 的等效语法(如果 runas 支持此行为)如下:
runas /user:[email protected] /password:password /netonly "c:\system32\robocopy.exe C:\somedir \"\\TARGETSERVER\c$\somedir\" \"*.*\" /MIR /A-:R"
答案1
您可以使用语法通过不同的安全上下文简单地连接到目标共享net use \\targetserver\c$\somedir /USER:DOMAIN\user password
。
在调用中省略驱动器号将net use
在给定的安全上下文中创建到远程共享的经过身份验证的 SMB 连接域\用户。建立连接后,您可以在调用\\targetserver\c$\somedir
中使用引用robocopy
。
答案2
如果您可以使用除 SMB 之外的其他协议,我建议使用 (S)FTP(S)。
答案3
您只需在 Windows 凭证管理器中输入目标服务器的密码即可。
在搜索窗口中输入“凭据管理器”或在控制面板中查找。此方法是最简单的。
对于地址类型,targetserveraddress 用户名的地址应采用以下格式:targetdomain\username password=password
瞧!