2010-02-09 187 views
2

我不知道是否有可能programmaticaly共享文件夾在Windows 7中的受限制的登錄會話中運行時:Windows 7的文件夾共享API

1)NetShareAdd返回ERROR_ACCESS_DENIED。 2)命令行網絡共享說相同。 3)但是,在不調用UAC的情況下創建新的共享資源管理器沒有問題。它是如何做到的?

任何幫助將不勝感激。

+0

你的意思是非管理員會話嗎? – 2010-02-18 22:16:41

+0

不,它是管理員,但不是真實的管理員(UAC) – GoAvs 2010-02-22 21:09:31

+0

您確定資源管理器實際上正在創建共享嗎?例如,如果我共享某個已分享內容的子目錄,則看不到屏蔽;但是,如果我嘗試分享尚未共享的內容,則會顯示屏蔽圖標。 – 2010-03-09 03:29:20

回答

0

Windows 7中的UAC不像Vista那樣嚴格。 Windows 7將資源管理器視爲受信任的應用程序,因此它會在沒有UAC提示的情況下以靜默方式創建共享(您可以在控制面板中更改此行爲)。

你的應用程序不是一個可信的應用程序(好的,你信任它,但操作系統不)。可能你也沒有在你的應用程序中明確要求管理員權限。在這種情況下,Windows 7會將您的程序視爲非特權,並拒絕訪問,這就是錯誤消息的原因。

一個解決方案可能會在您的程序中添加一個清單,請求requireAdministratior的ExecutingLevel。例如參見Demand UAC elevation for an application by adding a manifest。但那麼你的整個應用程序以管理員身份運行。還有一些更細化的解決方案。

+0

感謝您的解釋(可信應用程序部分) – GoAvs 2010-03-31 23:05:21

+0

什麼是更細粒度的方法?我想避免升級我的應用程序以管理員身份運行,但我需要共享文件夾(例如)。 – gap 2011-03-23 17:37:11