Access / Excel中的用户安全性 – 检索域/机器名称

我正在使用environ(“用户名”),然后移动到:

Private Declare PtrSafe Function apiGetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Function fOSUserName() As String ' Returns the network login name Dim lngLen As Long, lngX As Long Dim strUserName As String strUserName = String$(254, 0) lngLen = 255 lngX = apiGetUserName(strUserName, lngLen) If (lngX > 0) Then fOSUserName = Left$(strUserName, lngLen - 1) Else fOSUserName = vbNullString End If End Function 

但我想能够检查域名是什么,如果它是一个实际的域名或只是一个本地机器名称等…这可能吗?

我已经有了关于设置域组/安全组等等的讨论,所以不需要关于这些谢谢你的input。

那么, Environ("USERDOMAIN")应该得到的域名,但如果你想使用API​​声明,那么你将需要:

 Private Declare Function LookupAccountName Lib "advapi32" Alias "LookupAccountNameA" (ByVal lpSystemName As String, _ ByVal lpAccountName As String, Sid As Byte, cbSid As Long, ByVal DomainName As String, _ cbDomainName As Long, peUse As Long) As Long 

一个例子可以在这里find