【问题标题】:C# WMI Multi hopC# WMI 多跳
【发布时间】:2016-05-11 09:20:24
【问题描述】:

我编写了一个 C# 代码来同步一些 Analysis Services 多维数据集。 此同步的一个阶段是将文件夹从 AS 服务器复制到另一个。
要求是同步可以从第三台主机运行,所以我们有一个双跳。

为了复制我从主机 A 连接到 AS 源的文件夹,在服务器 B 上,使用 WMI 协议,然后我在服务器 B 上远程运行 robocopy 来复制文件夹从源 B 到目标服务器 C。
问题是当执行 robocopy 时,连接没有原始凭据,也没有在目标服务器上写入的权限。我认为 ANONYMOUS LOGON 用户用于执行该操作,因此,仅出于测试目的,我为其分配了共享 C 上的写入权限,但也以这种方式 robocopy 失败,ERROR 5 (0x00000005) Accessing Destination Directory 。

有办法执行这种双跳还是我不得不放弃使用主机 A 的想法?

【问题讨论】:

  • 这不是一个真正的编程问题。 superuser.com 可能更好。唯一的 C# 元素是我编写的神秘 C# 代码

标签: c# networking active-directory wmi robocopy


【解决方案1】:

@Liam 是正确的。这只是部分编程问题。主要问题是您的第二跳(从 A 到 B 的连接)需要在 AD 中启用 delegation。一旦你的delegation settings 正确,那么它就会成为一个编程问题,因为你必须在SWbemLocater.ConnectServer 调用中指定用户名和密码,但这是非常简单的部分。


PS - 事后想...如果您将 robocopy 设置为计划任务,然后从 A 远程执行计划任务怎么办?我认为这可能是一种解决方法,因为计划任务将以任务中设置的权限运行,因此技术上,没有第二跳。


PPS - 我可以验证这是否可行。在 B 上创建一个复制到 C 的计划任务。确保使用在两台计算机上都具有权限的凭据。然后从 A 中您可以在 B 上运行计划任务,这会将您的数据复制到 C。这避免了委派问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-25
    相关资源
    最近更新 更多