C# WMI 多跳
C# WMI Multi hop
我写了一个 C# 代码来同步一些 Analysis Services 多维数据集。
此同步的一个阶段是将文件夹从 AS 服务器复制到另一个。
要求是同步可以是来自第三台主机的 运行,所以我们有一个 double hop。
要复制我从主机A连接到AS源的文件夹,在服务器B上,使用WMI协议,然后我远程运行,在服务器B上,robocopy 将文件夹从源B复制到目标服务器C。
问题是当执行 robocopy 时,连接没有原始凭据,并且它没有在目标服务器上写入的权限。我认为 ANONYMOUS LOGON 用户用于执行操作,因此,仅出于测试目的,我为其分配了对共享 C 的写入权限,但这样 robocopy 也会失败,出现 ERROR 5 (0x00000005) 访问目标目录.
有办法执行这个双跳还是我不得不放弃使用主机 A 的想法?
@利亚姆是正确的。这只是部分编程问题。主要问题是您的第二跳(从 A 从 B 到 C 的连接)需要 delegation to be enabled in AD. Once you've gotten your delegation settings correct, THEN it becomes a programming issue because you must specify a username and password in your SWbemLocater.ConnectServer 调用,但这是真正简单的部分。
PS - 事后思考...如果您将 robocopy 设置为计划任务,然后从 A 远程执行计划任务怎么办?我认为这可能是一种解决方法,因为计划任务将 运行 在任务中设置的权限,因此 技术上,没有第二个跃点。
PPS - 我可以验证这是否有效。在 B 上创建一个复制到 C 的计划任务。确保使用在两台机器上都具有权限的凭据。然后从 A 您可以 运行 B 上的计划任务,它将您的数据复制到 C。这避免了委派问题。
我写了一个 C# 代码来同步一些 Analysis Services 多维数据集。
此同步的一个阶段是将文件夹从 AS 服务器复制到另一个。
要求是同步可以是来自第三台主机的 运行,所以我们有一个 double hop。
要复制我从主机A连接到AS源的文件夹,在服务器B上,使用WMI协议,然后我远程运行,在服务器B上,robocopy 将文件夹从源B复制到目标服务器C。
问题是当执行 robocopy 时,连接没有原始凭据,并且它没有在目标服务器上写入的权限。我认为 ANONYMOUS LOGON 用户用于执行操作,因此,仅出于测试目的,我为其分配了对共享 C 的写入权限,但这样 robocopy 也会失败,出现 ERROR 5 (0x00000005) 访问目标目录.
有办法执行这个双跳还是我不得不放弃使用主机 A 的想法?
@利亚姆是正确的。这只是部分编程问题。主要问题是您的第二跳(从 A 从 B 到 C 的连接)需要 delegation to be enabled in AD. Once you've gotten your delegation settings correct, THEN it becomes a programming issue because you must specify a username and password in your SWbemLocater.ConnectServer 调用,但这是真正简单的部分。
PS - 事后思考...如果您将 robocopy 设置为计划任务,然后从 A 远程执行计划任务怎么办?我认为这可能是一种解决方法,因为计划任务将 运行 在任务中设置的权限,因此 技术上,没有第二个跃点。
PPS - 我可以验证这是否有效。在 B 上创建一个复制到 C 的计划任务。确保使用在两台机器上都具有权限的凭据。然后从 A 您可以 运行 B 上的计划任务,它将您的数据复制到 C。这避免了委派问题。