我正在尝试创建一个应用程序,该应用程序会自动在同一本地网络中的两台 PC 之间创建和配置合并复制。
为此,我需要以编程方式在两台 PC 上分别创建一个用户,该用户应具有与复制所需的完全相同的用户名和密码。
网络上没有 DOMAIN。
我在两台机器上都使用 GUI 完成了所有操作,并且复制工作正常,现在我需要使用 C# 来完成。复制部分使用 SQL Server 2012 RMO 和 SMO SDK 完成。
在谷歌搜索时,我发现了这个(以及许多其他或多或少与此相同的结果)。但我相信,这些所有示例都是针对本地 PC 的,因为似乎人们并没有像我一样遇到错误。
我的示例代码是:
DirectoryEntry directoryEntry = new DirectoryEntry(@"WinNT://WORKGROUP/WIN7-PC,computer", @"admin", "123456");
DirectoryEntry user = directoryEntry.Children.Add("RepTest", "user");
user.Invoke("SetPassword", new object[] { "rep123" });
user.CommitChanges();
我user.CommitChanges()
这么说时出错了Access is denied
,所以我认为我在提供给的身份验证详细信息中犯了一个错误new DirectoryEntry(...
。我解决了这个问题并再次尝试:
DirectoryEntry directoryEntry = new DirectoryEntry(@"WinNT://WORKGROUP/WIN7-PC,computer", @"win7-pc\admin", "123456");
DirectoryEntry user = directoryEntry.Children.Add("RepTest", "user");
user.Invoke("SetPassword", new object[] { "rep123" });
user.CommitChanges();
现在我得到了错误的.Children.Add(...
说明Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed.
当我第一次这样做时,我检查了Path
对象user
,这是WinNT://WORKGROUP/WIN7-PC/RepTest
,不确定它是否与任何事情有关,但也许它在以管理员用户身份连接时尝试使用尚未创建的新用户文件夹?
有没有办法让这件事继续下去?