使用VB.NET将域组添加到本地管理员组 [英] Add a domain group to local administrators group using VB.NET

查看:168
本文介绍了使用VB.NET将域组添加到本地管理员组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好我正在尝试编写一个程序,使用vb.net将一个组添加到我的本地管理员组。我发现很多文章都在谈论如何添加用户,但只有少数人谈论如何添加组。每次我尝试运行它时,错误都显示在

 Dim myGrp As DirectoryEntry = rootEntry.Children.Find(GrpName,group)

我不知道为什么。



我的尝试:



 Dim localComp As string = System.Environment.MachineName()
尝试
Dim localMachine As New DirectoryEntry(WinNT://& localComp&,computer)
Dim AdminGrp As DirectoryEntry = localMachine.Children.Find(Administrators,group)

Dim rootEntry As New DirectoryEntry(LDAP:// DOMAINNAME)
Dim myGrp As DirectoryEntry = rootEntry .Children.Find(GrpName,group)'ERROR

AdminGrp.Invoke(Add,New Object(){myGrp.Path.ToString()})
AdminGrp.CommitChanges ()
localMachine.Close()


Catch ex As Exception
MessageBox.Show(ex.ToString)
结束尝试

解决方案

如果可能,请使用System.DirectoryServices.Ac而不是countManagement。



  Dim  LocalMachineContext  As  DirectoryServices.AccountManagement.PrincipalContext 
Dim LocalGroupPrincipal As DirectoryServices。 AccountManagement.GroupPrincipal
Dim DomainContext As DirectoryServices.AccountManagement.PrincipalContext
Dim DomainGroupPrincipal As DirectoryServices.AccountManagement.GroupPrincipal

' 获取本地计算机上下文
LocalMachineContext = DirectoryServices.AccountManagement.PrincipalContext (DirectoryServices.AccountManagement.ContextType.Machine)
' 获取本地组的主体
LocalGroupPrincipal = DirectoryServices.AccountManagement.GroupPrincipal.FindByIdentity(LocalMachineContext, 管理员

' 获取域上下文
DomainContext = DirectoryServices.AccountManagement.PrincipalContext(DirectoryServices.AccountManagement.ContextType.Domain, DC = Domain,DC = Com UserName 密码
' 获取域组的主体
DomainGroupPrincipal = DirectoryServices.AccountManagemen t.GroupPrincipal.FindByIdentity(DomainContext, DnsAdmins

' 将域组主体添加到本地组成员集合
LocalGroupPrincipal.Members.Add(DomainGroupPrincipal)
' 提交对本地组的更改
LocalGroupPrincipal.Save()


Hi I'm trying to write a program that adds a group to my local administrators group using vb.net. I found many articles talking about how to add a user, but only few of them talking about how to add a group. Everytime I try to run it, an error shows up at

Dim myGrp As DirectoryEntry = rootEntry.Children.Find(GrpName, "group")

And I'm not sure why.

What I have tried:

Dim localComp As string = System.Environment.MachineName()
Try
    Dim localMachine As New DirectoryEntry("WinNT://" & localComp & ",computer")
    Dim AdminGrp As DirectoryEntry = localMachine.Children.Find("Administrators", "group")

    Dim rootEntry As New DirectoryEntry("LDAP://DOMAINNAME")
    Dim myGrp As DirectoryEntry = rootEntry.Children.Find(GrpName, "group") 'ERROR

    AdminGrp.Invoke("Add", New Object() {myGrp.Path.ToString()})
    AdminGrp.CommitChanges()
    localMachine.Close()


Catch ex As Exception
    MessageBox.Show(ex.ToString)
End Try

解决方案

If possible, use System.DirectoryServices.AccountManagement instead.

Dim LocalMachineContext As DirectoryServices.AccountManagement.PrincipalContext
Dim LocalGroupPrincipal As DirectoryServices.AccountManagement.GroupPrincipal
Dim DomainContext As DirectoryServices.AccountManagement.PrincipalContext
Dim DomainGroupPrincipal As DirectoryServices.AccountManagement.GroupPrincipal

' Get local machine context
LocalMachineContext = New DirectoryServices.AccountManagement.PrincipalContext(DirectoryServices.AccountManagement.ContextType.Machine)
' Get principal for local group
LocalGroupPrincipal = DirectoryServices.AccountManagement.GroupPrincipal.FindByIdentity(LocalMachineContext, "Administrators")

' Get domain context
DomainContext = New DirectoryServices.AccountManagement.PrincipalContext(DirectoryServices.AccountManagement.ContextType.Domain, "Domain", "DC=Domain,DC=Com", "UserName", "Password")
' Get principal for domain group
DomainGroupPrincipal = DirectoryServices.AccountManagement.GroupPrincipal.FindByIdentity(DomainContext, "DnsAdmins")

' Add domain group principal to local group members collection
LocalGroupPrincipal.Members.Add(DomainGroupPrincipal)
' Commit changes to local group
LocalGroupPrincipal.Save()


这篇关于使用VB.NET将域组添加到本地管理员组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆