首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用来自NetServerEnum的NetApi32时拒绝访问

在使用来自NetServerEnum的NetApi32时拒绝访问
EN

Stack Overflow用户
提问于 2016-05-23 10:39:39
回答 1查看 789关注 0票数 0

我正在尝试使用来自NetServerEnum dll的NetApi32函数,但我得到的只是错误代码5:“访问被拒绝”。下面是我对外部dll函数的调用。

代码语言:javascript
复制
NetError nEr;
SERVER_TYPE type = SERVER_TYPE.SV_TYPE_WORKSTATION | SERVER_TYPE.SV_TYPE_SERVER; // SV_TYPE_WORKSTATION = 0x00000001 and SV_TYPE_SERVER = 0x00000002
IntPtr bufPtr;
uint entriesread;
uint totalentries;
UInt32 resume_handle_value = 0;
uint MAX_PREFERRED_LENGTH = 0xFFFFFFFF;

nEr = (NetError)NetServerEnum(null, 100, out bufPtr, MAX_PREFERRED_LENGTH, out entriesread, out totalentries, (uint)type, null, ref resume_handle_value);

if (nEr != NetError.NERR_Success)
{
    NetApiBufferFree(bufPtr);
    throw new InvalidOperationException(nEr);//Throws here with error code 5 -> "Access was denied."
}

函数是这样声明的,

代码语言:javascript
复制
[DllImport("Netapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern int NetServerEnum([MarshalAs(UnmanagedType.LPWStr)]string servername, uint level, out IntPtr bufptr, uint prefmaxlen, out uint entriesread, out uint totalentries, uint servertype, [MarshalAs(UnmanagedType.LPWStr)]string domain, ref uint resume_handle);

我尝试将我的域名添加到函数调用中,并使用不同的信息级别进行调用,但这也不起作用。

下面是指向该函数的microsoft文档的链接:https://msdn.microsoft.com/en-us/library/windows/desktop/aa370623%28v=vs.85%29.aspx

这个函数调用需要一组特定的权限吗?我显然在这里遗漏了什么,但我想不出是什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-02 13:51:18

对于来自未来的任何一个寻找类似问题的答案的人,我已经想出了答案。

我在模拟一个Active Directory域管理员帐户,该帐户不是域‘域管理员’组的一部分。将管理员帐户添加为“域管理员”的成员解决了这个问题。

因此,这是一个版权问题,我猜这与本地计算机的帐户管理系统和安全设置有关,因为我在其中发现‘MY\Administrators’包含‘MY-Domain’。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37388802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档