我编写了一个需要使用本地管理员帐户登录的程序。 但是每台PC的本地管理员帐户名称都不同,因此我无法对用户名进行硬编码。
以下代码仅检索Administrators组中的用户,但不检索身份验证。可以帮助? 1.如何认证用户名&密码? 2.如何强制用户仅使用本地用户帐户登录。
Dim localMachine As New DirectoryEntry("WinNT://" & "localhost")
Dim admGroup As DirectoryEntry = localMachine.Children.Find("Administrators", "group")
Dim members As Object = admGroup.Invoke("members", Nothing)
For Each groupMember As Object In CType(members, IEnumerable)
Dim member As New DirectoryEntry(groupMember)
MsgBox(member.Name)
Next
答案 0 :(得分:0)
确保您的应用程序以管理权限运行的最佳和最简单的方法是embed a manifest,这就是这样的需求。
您应该从不硬编码这样的任何内容,并且UAC的存在意味着无法保证作为Administrators组成员的用户目前对您的流程具有管理权限
VB.NET编译器会自动将默认清单嵌入到您的应用程序中,但该默认清单不会请求管理权限。所以你需要添加一个自定义清单 要获得一个,请按照以下步骤操作:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />