调用一个只有Administrator才能执行的函数,判断返回值。
如NetServerGetInfo成功时返回NERR_Success,权限不够时返回ERROR_ACCESS_DENIED

解决方案 »

  1.   

    DOS命令啦!我贴我贴...
    NET USER 作 用:添加或更改用户帐号或显示用户帐号信息。该命令也可以写为 net users。 命令格式:net user [username [password  *] [options]] [/domain] 参数介绍:   (1)键入不带参数的net user查看计算机上的用户帐号列表。   (2)username添加、删除、更改或查看用户帐号名。   (3)password为用户帐号分配或更改密码。   (4)*提示输入密码。   (5)/domain在计算机主域的主域控制器中执行操作。 简单事例:   (1)net user yfang查看用户YFANG的信息 
      

  2.   

    我没有尝试,但是估计应该是简单的,只不过大家复杂化了。
    在mmc中查看自己当前登陆的用户名是否在Administrator这个用户组中就可以了。
    凡是在这个用户组中的就用Administrator的权限。
    我在用Advanced Server 时好像是这样,现在用Professional,没试,估计是可以的。
    如果不行,献丑了。
      

  3.   

    在NT中,其实用户的权限是非常复杂的,不如所谓的Administrator权限其实不是一个权限,而是Windows事先设置的一组权限,让所有这个组的用户都拥有这个权限。一般来说,在NT中,Administrators组都会拥有非常高的权限(足够高的权限以至于可以获得任何其它系统允许的权限),所以判断是否在这个组中就可以了。但是,即使不在这个组,也可以是超级用户,比如你拥有Take ownership of files or other objects的权限,权限可以通过Local Security Settings来察看;在NT4和Windows2000中,具体的察看的工具也各自不同,不过到很有可能是可以通用的。虽然这些工具都是属于操级用户组的,但是实际上,普通用户也是可以执行的,只是会受到很多限制,如果你发现在本机上被禁止使用,可以从其它计算机上拷贝一个过来,甚至可以在其它计算机中远程访问
      

  4.   

    强烈建议重写winnt/2k登录模块,或重写其中的部分模块!就象我一样!
    你要?给我5000分!我给你原程序!
      

  5.   

    多谢大家出主意:
    to:111222 / kovaschi / duz
    我希望的是用程序判断to: gadfly
    不在Administrator组中也有可能有权限。
      

  6.   

            if( SOCKET_ERROR != WSAIoctl( m_s, SIO_RCVALL , &dwBufferInLen, sizeof(dwBufferInLen),             
                                          &dwBufferLen, sizeof(dwBufferLen),
      &dwBytesReturned , NULL , NULL ) )这个调用在NT下会出错的呀
      

  7.   

    对不起,因为我没有很多时间,不能为你将实际的代码写出来,但可以提供你一些线索,你根据这个查 MSDN 里相关的主题,应该可以找到答案。LookupPrivilegeValue
    AdjustTokenPrivileges里面也许还会用到这两个函数,是用来提供给上面函数做参数的:
    GetCurrentProcess()
    OpenProcessToken(...)具体请查看 MSDN。