我不知道是否有可能programmaticaly共享文件夹在Windows 7中的受限制的登录会话中运行时:Windows 7的文件夹共享API
1)NetShareAdd返回ERROR_ACCESS_DENIED。 2)命令行网络共享说相同。 3)但是,在不调用UAC的情况下创建新的共享资源管理器没有问题。它是如何做到的?
任何帮助将不胜感激。
我不知道是否有可能programmaticaly共享文件夹在Windows 7中的受限制的登录会话中运行时:Windows 7的文件夹共享API
1)NetShareAdd返回ERROR_ACCESS_DENIED。 2)命令行网络共享说相同。 3)但是,在不调用UAC的情况下创建新的共享资源管理器没有问题。它是如何做到的?
任何帮助将不胜感激。
Windows 7中的UAC不像Vista那样严格。 Windows 7将资源管理器视为受信任的应用程序,因此它会在没有UAC提示的情况下以静默方式创建共享(您可以在控制面板中更改此行为)。
你的应用程序不是一个可信的应用程序(好的,你信任它,但操作系统不)。可能你也没有在你的应用程序中明确要求管理员权限。在这种情况下,Windows 7会将您的程序视为非特权,并拒绝访问,这就是错误消息的原因。
一个解决方案可能会在您的程序中添加一个清单,请求requireAdministratior的ExecutingLevel。例如参见Demand UAC elevation for an application by adding a manifest。但那么你的整个应用程序以管理员身份运行。还有一些更细化的解决方案。
你的意思是非管理员会话吗? – 2010-02-18 22:16:41
不,它是管理员,但不是真实的管理员(UAC) – GoAvs 2010-02-22 21:09:31
您确定资源管理器实际上正在创建共享吗?例如,如果我共享某个已分享内容的子目录,则看不到屏蔽;但是,如果我尝试分享尚未共享的内容,则会显示屏蔽图标。 – 2010-03-09 03:29:20