Service Control Manager privileges<div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold"><br></span></span></div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold">I am trying to open service control manager of a remote machine using </span></span><div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold">OpenSCManager(machinename,NULL,SC_MANAGER_ALL_ACCESS);</span></span></div><div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold">But I am getting error 5 from GetLastError(); which means access is denied.</span></span></div><div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold">What are the privileges that are needed for running the above code?</span></span></div><div><br></div><div> </div>© 2009 Microsoft Corporation. All rights reserved.Wed, 18 Feb 2009 17:49:38 Zff6f1784-83e9-48c1-bd85-81a89b4f44fehttp://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#ff6f1784-83e9-48c1-bd85-81a89b4f44fehttp://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#ff6f1784-83e9-48c1-bd85-81a89b4f44feSumedh Sakdeohttp://social.microsoft.com/Profile/en-US/?user=Sumedh%20SakdeoService Control Manager privileges<div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold"><br></span></span></div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold">I am trying to open service control manager of a remote machine using </span></span><div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold">OpenSCManager(machinename,NULL,SC_MANAGER_ALL_ACCESS);</span></span></div><div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold">But I am getting error 5 from GetLastError(); which means access is denied.</span></span></div><div><span class=Apple-style-span style="color:rgb(102, 51, 0)"><span class=Apple-style-span style="font-weight:bold">What are the privileges that are needed for running the above code?</span></span></div><div><br></div><div> </div>Tue, 25 Nov 2008 10:44:20 Z2008-11-25T10:44:20Zhttp://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#d34b395f-06ae-4c82-8443-f51691451291http://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#d34b395f-06ae-4c82-8443-f51691451291Bill Wesse MSFThttp://social.microsoft.com/Profile/en-US/?user=Bill%20Wesse%20MSFTService Control Manager privilegesGood morning Sumedh - the solution is to have the SE_DEBUG_NAME enabled on your process token. I have inserted a code sample below. On Windows Vista/2008, the process will need to be run with Admin privileges.<br><br>Please let me know if this meets your needs!<br><br>Regards,<br>Bill Wesse<br><span style="font-size:10pt;color:black;font-family:'Arial','sans-serif'">MCSE, MCTS / Senior Escalation Engineer, US-CSS DSC PROTOCOL TEAM</span><br><br><br> <div style="border-right:#7f9db9 1px solid;border-top:#7f9db9 1px solid;font-size:11px;overflow:auto;border-left:#7f9db9 1px solid;line-height:100%! important;border-bottom:#7f9db9 1px solid;font-family:Courier New;background-color:white"> <table style="border-top-width:0px;border-left-width:0px;margin:2px 0px;width:99%;border-bottom:#eee 0px solid;border-collapse:collapse;background-color:#fff;border-right-width:0px" cellspacing=0 cellpadding=0> <colgroup> <col style="padding-left:10px;font-size:11px;border-bottom:#f7f7f7 1px solid;font-family:Courier New;white-space:nowrap"> <tbody> <tr> <td><font style="font-size:11px">#ifndef _WIN32_WINNT  </font></td></tr> <tr> <td style="background-color:#f7f7f7">#define _WIN32_WINNT 0x0600 // Windows Vista  </td></tr> <tr> <td>#endif  </td></tr> <tr> <td style="background-color:#f7f7f7">#include </font><font style="color:blue">&lt;</font><font style="font-size:11px">windows.h</font><font style="color:blue">&gt;</font><font style="font-size:11px"> </font></td></tr> <tr> <td>#include </font><font style="color:blue">&lt;</font><font style="font-size:11px">tchar.h</font><font style="color:blue">&gt;</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr> <tr> <td>BOOL EnablePrivilege(LPTSTR Name) {  </td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr> <tr> <td>    HANDLE hProcess;  </td></tr> <tr> <td style="background-color:#f7f7f7">    HANDLE hToken;  </td></tr> <tr> <td>    BOOL   </font><font style="color:red">Result</font><font style="font-size:11px"> = </font><font style="color:blue">FALSE</font><font style="font-size:11px">;  </font></td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr> <tr> <td>    </font><font style="color:red">hProcess</font><font style="font-size:11px"> = ::GetCurrentProcess();  </font></td></tr> <tr> <td style="background-color:#f7f7f7">    if (::OpenProcessToken(hProcess,  </td></tr> <tr> <td>            TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES,  </td></tr> <tr> <td style="background-color:#f7f7f7">            &amp;hToken))  </td></tr> <tr> <td>    {  </td></tr> <tr> <td style="background-color:#f7f7f7">        TOKEN_PRIVILEGES tp;  </td></tr> <tr> <td>        LUID             Luid;  </td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr> <tr> <td>        if (LookupPrivilegeValue(NULL, Name, &amp;Luid))  </td></tr> <tr> <td style="background-color:#f7f7f7">        {  </td></tr> <tr> <td>            </font><font style="color:red">tp.PrivilegeCount</font><font style="font-size:11px"> = </font><font style="color:blue">1</font><font style="font-size:11px">;  </font></td></tr> <tr> <td style="background-color:#f7f7f7">            tp.Privileges[0]</font><font style="color:red">.Luid</font><font style="font-size:11px"> = Luid;  </font></td></tr> <tr> <td>            tp.Privileges[0]</font><font style="color:red">.Attributes</font><font style="font-size:11px"> = </font><font style="color:blue">SE_PRIVILEGE_ENABLED</font><font style="font-size:11px">;  </font></td></tr> <tr> <td style="background-color:#f7f7f7">            if (::AdjustTokenPrivileges(hToken, FALSE, &amp;tp,  </td></tr> <tr> <td>                sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES)NULL,  </td></tr> <tr> <td style="background-color:#f7f7f7">                (PDWORD)NULL))  </td></tr> <tr> <td>            {  </td></tr> <tr> <td style="background-color:#f7f7f7">                </font><font style="color:red">Result</font><font style="font-size:11px"> = </font><font style="color:blue">TRUE</font><font style="font-size:11px">;  </font></td></tr> <tr> <td>            }  </td></tr> <tr> <td style="background-color:#f7f7f7">        }  </td></tr> <tr> <td>        ::CloseHandle(hToken);  </td></tr> <tr> <td style="background-color:#f7f7f7">    }  </td></tr> <tr> <td>    ::CloseHandle(hProcess);  </td></tr> <tr> <td style="background-color:#f7f7f7">    return Result;  </td></tr> <tr> <td>}  </td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr> <tr> <td> </td></tr> <tr> <td style="background-color:#f7f7f7">int _tmain(int argc, _TCHAR* argv[])  </td></tr> <tr> <td>{  </td></tr> <tr> <td style="background-color:#f7f7f7">    return EnablePrivilege(SE_DEBUG_NAME)  </td></tr> <tr> <td>        ? 0  </td></tr> <tr> <td style="background-color:#f7f7f7">        : 1;  </td></tr> <tr> <td>}  </td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr></tbody></table></div><hr class="sig">Escalation EngineerTue, 25 Nov 2008 14:22:45 Z2008-11-25T14:22:45Zhttp://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#ee9dfd16-3964-45a0-aedf-b05d8edf19d2http://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#ee9dfd16-3964-45a0-aedf-b05d8edf19d2Sumedh Sakdeohttp://social.microsoft.com/Profile/en-US/?user=Sumedh%20SakdeoService Control Manager privilegesHi Bill,<div><br></div><div>  I tried executing your code </div><div>  after a call to enableprivilege() from main function I  try to call openSCmanager.</div><div><span class=Apple-style-span style="border-collapse:collapse;color:rgb(8, 8, 8);font-family:'Courier New';font-size:11px;line-height:11px"><span class=Apple-tab-span style="white-space:pre"> </span><span class=Apple-style-span style="color:rgb(51, 51, 153)">LookupPrivilegeValue(remotemachineName, Name, &amp;Luid)</span></span><span class=Apple-style-span style="color:rgb(51, 51, 153)"><br></span></div><div><span class=Apple-style-span style="border-collapse:collapse;font-family:'Courier New';font-size:11px;line-height:11px"><span class=Apple-tab-span style="white-space:pre"><span class=Apple-style-span style="color:rgb(51, 51, 153)"> </span></span><span class=Apple-style-span style="color:rgb(51, 51, 153)">openScmanager(remotemachineName,NULL,SC_MANAGER_CONNECT); here I am getting getlasterror() 977. </span></span></div><div><span class=Apple-style-span style="border-collapse:collapse;color:rgb(8, 8, 8);font-family:'Courier New';font-size:11px;line-height:11px"><br></span></div><div><span class=Apple-style-span style="border-collapse:collapse;color:rgb(8, 8, 8);font-size:11px;line-height:11px"><span class=Apple-style-span style="font-size:14px">Also is this kind of opening sc manager on remote machine/local machine in debug mode? Could you explain more on this. </span></span></div><div><span class=Apple-style-span style="border-collapse:collapse;color:rgb(8, 8, 8);font-size:11px;line-height:11px"><span class=Apple-style-span style="font-size:14px"><br></span></span></div><div><span class=Apple-style-span style="border-collapse:collapse;color:rgb(8, 8, 8);font-size:11px;line-height:11px"><span class=Apple-style-span style="font-size:14px">regards,</span></span></div><div><span class=Apple-style-span style="border-collapse:collapse;color:rgb(8, 8, 8);font-size:11px;line-height:11px"><span class=Apple-style-span style="font-size:14px">Sumedh</span></span></div>Mon, 01 Dec 2008 14:01:56 Z2008-12-01T14:01:56Zhttp://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#7ce911e3-8a49-4696-bc13-dbd43f38bc6fhttp://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#7ce911e3-8a49-4696-bc13-dbd43f38bc6fBill Wesse MSFThttp://social.microsoft.com/Profile/en-US/?user=Bill%20Wesse%20MSFTService Control Manager privileges<p> Sumedh - sorry I didn't catch your follow up question earlier - is the process running with Administrator privileges?</p> <p>Regards,</p> <p>Bill Wesse</p> <p> </p><hr class="sig">Escalation EngineerThu, 08 Jan 2009 17:11:56 Z2009-01-08T17:11:56Zhttp://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#da9a7339-49a7-4b8a-8c3f-1023fb67fafehttp://social.microsoft.com/Forums/en-US/interopscenarios/thread/ff6f1784-83e9-48c1-bd85-81a89b4f44fe#da9a7339-49a7-4b8a-8c3f-1023fb67fafeBill Wesse MSFThttp://social.microsoft.com/Profile/en-US/?user=Bill%20Wesse%20MSFTService Control Manager privileges Sumedh - Please let me know if I have answered your questions satisfactorily; if so, I will consider your question resolved. Thanks for contacting us - it was my pleasure to help.<br><br>Regards,<br>Bill Wesse<br><hr class="sig">Escalation EngineerWed, 11 Feb 2009 21:00:20 Z2009-02-11T21:00:20Z