在非成员服务器的域帐户下运行Windows服务

我有一个独立的Windows Server 2003运行SQL Server 2005和Windows Server 2003的Active Directory域控制器。 使用维护计划/ SQL Server代理,我试图将数据库转储从独立框写入DC上的共享。 我知道关于访问远程共享的通常规则(例如,必须使用具有适当权限的login帐户等)。 实际上,将转储写入与DC相同的域中的另一个非DC服务器可以正常工作。

我试图将SQL Server代理帐户的login凭据设置为“域\用户名”(或用户名@ addomainname)。 如果我以“domain \ username”的forms指定一个用户名,我得到的错误(不pipe密码)是:

“帐户名称无效或不存在,或者密码对于指定的帐户名称无效”。

如果我以“user @ addomainname”的forms指定用户名,我得到的错误(不pipe密码)是:

“指定的域名不存在或无法联系。”

我已经在DC上启用了login失败审计,并且在日志中没有看到任何失败,这意味着该机器甚至不尝试进行身份validation,而是在此之前失败。

我知道非成员服务器上的用户可以对DC上的共享进行身份validation,因为执行交互式login(例如“net use * \ dcname \ c $ / user:username @ addomainname”或使用其他forms的用户名)工作正常。

上面的例子是关于SQL Server,但适用于任何Windows服务。

为什么不能使用域帐户login服务,而是使用同一帐户的交互式login(驱动器映射)工作?

借助Rackspace(托pipe此特定configuration)的支持,我现在了解情况。

“networking使用* …”驱动器映射示例和服务示例是一个苹果与橙子的比较。 使用驱动器映射的情况下,这只是一个正在发生的身份validation。 在服务案例中,我实际上试图在域凭证下运行本地进程,根据定义,这是不可能的,因为服务器不在域中。 不在域=不能在域凭据下执行。 驱动器映射工程,因为我不是试图执行一个进程作为域帐户 – 我只是传递凭据。

这个限制适用于任何types的进程,不pipe它是交互式的还是基于服务的。

你可以使用净使用从SQL服务器访问共享吗? 如果是这样,我帮不了你。 如果没有,这听起来像是一个DNS问题,find一个域控制器进行身份validation。 尝试从命令提示符

nslookup set type=all _ldap._tcp.dc._msdcs.Domain_Name 

其中Domain_Name是您的域的名称。 这应该为您提供域中DC的IP地址,如果不是,则它会validation是否存在从独立计算机parsing域的SRVlogging时出现问题的情况。