1
我的服務程序執行本身的另一個實例,實質上是CreateProcess(GetCommandLine())
。子進程然後使用OpenProcess
獲取其父進程的句柄(以便它可以檢測父進程何時停止運行)。對於某些客戶,OpenProcess
因ERROR_ACCESS_DENIED
而失敗。我試圖確定原因並重現內部測試的情況。什麼會報告帳戶的權限?
我想要一些我可以發送給客戶的東西(程序或使用已經安裝在Windows服務器上的程序的說明)以供它們運行並生成報告,其中包含服務運行的帳戶和特權該帳戶及其組已被授予或拒絕。我怎樣才能從客戶收集這些信息?
我可能可以使用它。但是,我將傳遞給GetKernelObjectSecurity的內核對象是什麼?我猜GetCurrentProcess,因爲我想知道當前進程允許做什麼。 MSDN說我需要READ_CONTROL權限才能調用這個函數,但這不應該是一個問題,因爲這個進程正在請求關於它自己的信息,對吧? – 2010-08-19 19:41:50
是的,你會想要當前的進程句柄(我認爲)。是的,我認爲你幾乎總是有權查看,但很難說 - 它可能會設置一些權限來防止這種情況發生。 – 2010-08-19 21:35:29