我想用C#来
我的代码:
PrincipalContext ctx = new PrincipalContext(ContextType.Machine);
UserPrincipal newuser = new UserPrincipal(ctx, "newuser", "password", true);
newuser.Save();
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx,"Users");
using (DirectoryEntry groupEntry = group.GetUnderlyingObject() as DirectoryEntry )
using (DirectoryEntry userEntry = newuser.GetUnderlyingObject() as DirectoryEntry)
{
groupEntry.Invoke( "Add", new object[] { userEntry.Path } );
userEntry.RefreshCache();
userEntry.Properties["msNPAllowDialin"].Value = true;
userEntry.Properties["msTSRemoteControl"].Value = false;
userEntry.CommitChanges();
}
帐户创建和用户组流程运行正常,
userEntry.Properties["msNPAllowDialin"].Value = true;
userEntry.Properties["msTSRemoteControl"].Value = false;
两者都会产生错误
在缓存
中找不到目录属性
我花了2个小时谷歌搜索,但仍然无法找到任何有效的解决方案。
答案 0 :(得分:1)
您正在创建本地计算机帐户(ContextType.Machine
),但之后尝试设置特定于Active Directory用户帐户的属性。那不会起作用。
如果您想将它们限制在服务器的VPN中,那么这取决于您使用的VPN类型。