首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在非管理员帐户上OpenSCManager()函数返回null

在非管理员帐户上,OpenSCManager()函数返回null的原因是该函数需要管理员权限才能成功执行。OpenSCManager()函数是Windows操作系统提供的一个API函数,用于打开服务控制管理器数据库,以便对系统服务进行操作。

OpenSCManager()函数返回null可能是因为当前用户没有足够的权限来打开服务控制管理器数据库。非管理员帐户通常受到操作系统的安全限制,无法直接访问或操作系统级别的资源。

解决这个问题的方法之一是以管理员身份运行程序。管理员帐户具有更高的权限,可以执行OpenSCManager()函数并成功打开服务控制管理器数据库。

另外,还可以通过修改安全策略或访问控制列表(ACL)来授权非管理员帐户访问服务控制管理器数据库。这需要对操作系统的安全设置进行更改,因此需要谨慎操作,并确保只授予必要的权限。

在腾讯云的产品中,与服务控制管理器数据库相关的产品是腾讯云的云服务器(CVM)和云函数(SCF)。云服务器提供了虚拟化的计算资源,可以在云端运行各种应用程序,包括需要访问服务控制管理器数据库的程序。云函数是一种无服务器计算服务,可以在事件触发时执行代码,也可以用于访问服务控制管理器数据库。

腾讯云云服务器产品介绍链接:https://cloud.tencent.com/product/cvm

腾讯云云函数产品介绍链接:https://cloud.tencent.com/product/scf

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

更多关于任务计划程序的服务帐户使用情况

Windows 10 中任务调度程序的核心进程创建代码实际上是在统一后台进程管理器 (UBPM) DLL中,而不是在任务调度程序本身中。...LPCWSTR Name = UbpmUtilsGetAccountNamesFromSid(PrincipalSid); SC_HANDLE scm = OpenSCManager(NULL...因此,返回的令牌将再次被剥夺SeImpersonatePrivilege,即使它在技术上与当前运行的服务是不同的令牌。 为什么任务调度程序需要一些未记录的函数来获取服务令牌?...只有 SCM(从技术上讲是声称它是 SCM 的第一个进程)被允许使用虚拟服务帐户对令牌进行身份验证。...在我关于创建以TrustedInstaller运行的任务的博客文章中,我暗示它需要管理员访问权限,这是真的,也不是。让我们看看任务调度程序使用的函数来确定调用者是否允许将任务作为指定的主体运行。

94800

【C#】分享基于Win32 API的服务操作类(解决ManagedInstallerClass.InstallHelper不能带参数安装的问题)

这个我认为是托管方法中首选的方法,事实上它就是对上述两个安装类的封装。...看了InstallHelper的源码,发现它会把路径和参数整个套进一对双引号,这样在传递给更底层的安装方法时,底层方法会将该字串视为一个路径,自然不是一个合法的路径。...() { IntPtr scm = Win32Class.OpenSCManager(null, null, Win32Class.SC_MANAGER_ALL_ACCESS...ERROR_MORE_DATA)时才抛异常 { throw new Win32Exception(); } //在非托管区域创建指针...,可选,默认是LocalSystem,即至尊帐户 new[] { "AudioSrv", "WebClient" } // 依赖服务,要填服务名称,没有则为null或空数组,可选

1.4K20
  • CC++ 开发SCM服务管理组件

    OpenSCManager 用于打开服务控制管理器数据库,并返回一个指向服务控制管理器的句柄。通过这个句柄,你可以进行对服务的查询、创建、启动、停止等操作。...函数返回一个指向服务控制管理器的句柄 (SC_HANDLE)。如果操作失败,返回 NULL,可以通过调用 GetLastError 函数获取错误代码。...在使用服务相关的 API 函数时,这些标志会在函数参数中进行指定。...服务表中的每个元素指定了服务的名称和服务入口函数。 该函数返回 BOOL 类型。如果调用成功,返回 TRUE,否则返回 FALSE。...函数返回一个 SC_HANDLE 类型的句柄,该句柄标识了新创建的服务。如果函数调用失败,返回 NULL。可以通过调用 GetLastError 函数获取错误代码。

    32010

    Minfilter过滤框架

    栈上的位置。...SC_HANDLE hService=NULL;// NT驱动程序的服务句柄 //打开服务控制管理器 hServiceMgr = OpenSCManager( NULL, NULL,...相比,简单了许多,只需要调用一个函数FltGetFileNameInformation,这个函数的定义在MSDN中可以查到,所以就不再这里做过多的说明,该函数会返回一个FLT_FILE_NAME_INFORMATION...在Minfilter中R3与R0是通过各自的端口进行通讯的,这个端口与传统意义上的网络的通信端口不同,是一个抽象的概念,不需要太过于关注。...,只有当超时值过了或者R3返回了数据才会返回,在这设置超时值为NULL表示会一直等待,在这返回值也是使用notification做为接受返回值的缓冲,在这不会出现覆盖的情况,因为这个函数在调用后首先是R3

    1.9K32

    windows服务管理操作

    windows上为了管理服务程序提供了一个特别的程序:服务控制管理程序,系统上关于服务控制管理的API基本上都与这个程序打交道。...所用到的函数主要有: OpenSCManager:打开数据库 SC_HANDLE WINAPI OpenSCManager( __in LPCTSTR lpMachineName,...在程序中为了方便一般采用SC_MANAGER_ALL_ACCESS 参数 函数如果调用成功,则会返回一个操作数据库的句柄,以后的关于服务的操作都已这个参数作为第一个参数。...= NULL, cbBufSize = 0,这个时候函数出错并返回所需要的实际大小,然后根据大小动态分陪一个内存缓冲区或者提供一个数组,并传入实际大小,以获取所有服务的信息。...下面提供一个具体的例子: SC_HANDLE scHandle = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if(NULL =

    1.8K11

    psexec原理分析

    Psexec原理分析 环境 win10 ip:192.168.154.7 win server 2008 X64 192.168.154.31 假设已经得到win10主机的system权限 在cs上通过...这里肯定是与直接在win10上通过Psexec管理win2008的流程是不一样的,cs上执行主要目的还是反弹shell到cs上 大致流程为: 1.登陆远程主机 事件ID4624 2.连接admin$..., LPCWSTR lpwsPassword) { // 用于存放SMB共享资源格式 PWCHAR lpwsIPC = new WCHAR[MAX_PATH]; DWORD dwRetVal; // 函数返回值...在目标机器上建立与服务控制管理器的连接,并打开指定的服务控制管理器数据库 然后用CreateService创建一个服务,再通过OpenService,StartService打开并开启服务 BOOL...(lpwsSCMServer, SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS); if (hSCM == NULL) { printf("OpenSCManager

    1.2K40

    驱动开发:文件微过滤驱动入门

    接下来将进入正题,讲解微过滤驱动的API定义规范以及具体的使用流程,并最终实现一个简单的过滤功能,首先你必须在VS上做如下配置,依次打开配置菜单,并增加驱动头文件。...= NULL; // NT驱动程序的服务句柄 // 打开服务控制管理器 hServiceMgr = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS...); if (hServiceMgr == NULL) { // OpenSCManager失败 CloseServiceHandle(hServiceMgr); return FALSE...== lpszDriverName) { return FALSE; } schManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS...,其实摘除回调的方法有多种,常用的第一种通过向过滤驱动中写出一个返回命令让其不被执行从而实现绕过,另一种是找到回调函数并替换为我们自己的回调,而在自己的回调中什么也不做,这里以第二种方法为例,实现替换的代码可以写成如下案例

    46530

    Protected Process Light (PPL) Attack

    lsass.exe为: 同时无法对lsass的内存进行访问: 加载驱动程序获取hash 在 Windows 中,本地用户帐户使用算法 ( NTLM ) 进行哈希处理,并存储在称为 SAM(安全帐户管理器...服务作为受保护启动后,系统上的其他非受保护进程将无法注入线程,也不会允许它们写入受保护进程的虚拟内存。...SC_HANDLE tt = OpenSCManager(NULL, NULL, GENERIC_READ);//建立服务控制管理器的连接 SC_HANDLE windefend_svc = OpenServiceW...当沙盒需要在系统上执行特权操作时,例如保存下载的文件,它可以请求非沙盒“代理”进程代表它执行操作,如果沙盒进程被利用,那么有效负载仅对沙盒可访问的资源造成损害的能力。...中 wow64log.dll与 WoW64 Windows 机制有关,该机制允许在 64 位 Windows 上运行 32 位程序。

    2K20

    8.4 Windows驱动开发:文件微过滤驱动入门

    接下来将进入正题,讲解微过滤驱动的API定义规范以及具体的使用流程,并最终实现一个简单的过滤功能,首先你必须在VS上做如下配置,依次打开配置菜单,并增加驱动头文件。...; // SCM管理器的句柄 SC_HANDLE hService = NULL; // NT驱动程序的服务句柄 // 打开服务控制管理器 hServiceMgr = OpenSCManager...(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (hServiceMgr == NULL) { // OpenSCManager失败...== lpszDriverName) { return FALSE; } schManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS...,其实摘除回调的方法有多种,常用的第一种通过向过滤驱动中写出一个返回命令让其不被执行从而实现绕过,另一种是找到回调函数并替换为我们自己的回调,而在自己的回调中什么也不做。

    91710

    由SharpNoPSExec看lateral movement

    前言 Github上发布了一款名叫SharpNoPSExec的工具,地址为https://github.com/juliourena/SharpNoPSExec 主要功能就是后渗透中的横向移动。...而横向移动也一直是老生常谈的话题,无论是PSexec还是wmi等等都是为了快速获取其他目标的权限,而目前各类的杀软、EDR也已经对此类攻击方式做了许多的防御,那PSexec来说,默认情况下是使用服务来在目标机器上来执行代码...分析 在分析该工具之前,我们先来了解服务创建、执行的基本步骤。...(target, null, 0xF003F); } } } 服务打开后我们该使用下面的api ChangeServiceConfigA来进行操作,函数原型如下: BOOL..., null, null, null, null, null); 此时便可以将指定服务的程序,替换为自定义程序。

    68720

    驱动开发:文件微过滤驱动入门

    接下来将进入正题,讲解微过滤驱动的API定义规范以及具体的使用流程,并最终实现一个简单的过滤功能,首先你必须在VS上做如下配置,依次打开配置菜单,并增加驱动头文件。...; // NT驱动程序的服务句柄// 打开服务控制管理器hServiceMgr = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);if (hServiceMgr...== NULL){// OpenSCManager失败CloseServiceHandle(hServiceMgr);return FALSE;}// OpenSCManager成功 // 创建驱动所对应的服务...== lpszDriverName){return FALSE;}schManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);if (NULL...,其实摘除回调的方法有多种,常用的第一种通过向过滤驱动中写出一个返回命令让其不被执行从而实现绕过,另一种是找到回调函数并替换为我们自己的回调,而在自己的回调中什么也不做,这里以第二种方法为例,实现替换的代码可以写成如下案例

    42950

    内网渗透 | 了解和防御Mimikatz抓取密码的原理

    •判断锁屏状态 这里的思路是通过判断GetForegroundWindow()这个函数的返回值来确定是否锁屏。...在锁屏状态下GetForegroundWindow()这个函数返回值为NULL,在非锁屏状态下GetForegroundWindow()这个函数返回值为非空。...实际上,这将防止用户(通常是管理员)在 RDP 进入受感染主机后从内存中读取他们的凭据。为防止凭据存储在远程计算机上,受限管理员更改了远程桌面协议,使其使用网络登录而不是交互式登录进行身份验证。...(S-1-5-113),所有本地帐户继承自此SID;本地帐户和管理组成员,LOCAL_ACCOUNT_AND_MEMBER_OF_ADMINISTRATORS_GROUP(S-1-5-114),所有管理员组的本地用户继承此...S-1-5-114这里在中文操作系统中提供的翻译是“NTAUTHORITY\本地帐户和管理员组成员”,但实际上是“所有本地Administrators组中的本地帐户”,即域用户即使被加入到了本地Administrators

    7K10

    Permission elevation

    令牌类型 主令牌:每个进程都有一个主令牌,它描述了与当前进程相关的用户帐户的安全上下文。主令牌只能附加到进程。 模拟令牌:它允许服务器应用程序暂时成为客户端在访问安全对象方面 。...在启用了 UAC 后,所有用户帐户(包括管理帐户)都将使用标准用户权限运行,因此当管理组中的用户需要以管理员身份运行某程序时,Windows就提弹出提示。...(需要输入密码) 2 #在安全桌面上同意提示(即需要确认是否以管理员权限运行) 3 #提示凭据(需要输入密码) 4 #同意提示(即需要确认是否以管理员权限运行) 5 #非...(非管理员组用户,运行文件会提示验证)。...获取组策略凭据 在大型环境环境或域环境中,管理员往往会通过下发组策略对所有加入域的计算机的本地管理员密码进行批量修改; 新建一个组策略后,域控制器会在SYSVOL共享目录中生成一个XML文件,在文件保存了组策略更新后的密码

    95140

    浅谈VMware环境去虚拟化

    最近在调试一个病毒样本,外壳加了VMP3.5,虚拟化工具和反调试使得在原虚拟机系统上不是那么的方便。由于我使用的是OD,分析绕过的只有VMP的反调试,所以我选择寻求去虚拟化系统来减少工作量(嘿嘿)。...这里我在吾爱破解论坛上找到份18年的比赛作品,从8个方面检测虚拟机环境: 查询I/O通信端口 通过MAC地址检测 CPUID检测 通过主板序列号、型号、系统盘所在磁盘名称等其他硬件信息 搜索特定进程检测...的虚拟机检测时也需要在cpuid上断点置eax为0,这里CPUID就算完成了,接下来我们需要对关键进程和服务进行隐藏。...int menu = 0; SC_HANDLE SCMan = OpenSCManager(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE); //打开服务控制管理器...if (SCMan == NULL) { cout << GetLastError() << endl; printf("OpenSCManager Eorror/n");

    8.5K20

    详解反虚拟机技术

    为了避免执行全指令模拟造成的巨大性能损失,VMware允许一些特定指令在没有正确虚拟化的前提下运行。最终,这意味着某些指令序列在VMware虚拟机而不是在物理机中运行时返回不同的结果。...负担;另一种方法就是windows API函数SetThreadAffinityMask()将线程限制在单处理器上执行,当执行此测试时只能准确地将线程执行环境限制在本地处理器,而对于将线程限制在VM处理器上就可能行不通了...,因为VM是计划在各处理器上运行的,VM线程在不同的处理器上执行时,IDT值将会发生变化,因此此方法也很少被使用。...如代码所示setz指令在magic数与VMXh匹配时设置返回值rc为1,如果在真实的机器上运行会触发EXCEPTION_EXECUTE_HANDLER异常,在异常处理中设置返回值rc为0。...函数功能是检测自己是否处于相应的虚拟机中,是返回TRUE,否则返回FALSE。函数的原型都是typedef BOOL (WINAPI* Type_CheckXXXXXX)();。

    1.4K41

    域提权漏洞系列分析-Zerologon漏洞分析

    Hash,这一步可以使用Mimikatz来进行Dcsync并获取域管理员帐户或 KRBTGT 帐户的哈希值即可,如图6- 所示。...将身份验证结果返回到底座系统上的 Netlogon 服务 在前面中我们都知道:在网络登陆(NTLM)中为了对用户进行身份验证,服务器将用户凭据安全地传递给用户帐户域中的域控制器DC,在将登录请求传递给...失败返回一个非零错误代码 客户端利用session_key和ClientChallenge函数计算ClientCredential并发送给服务端进行校验,如图6-所示。...图6- 发送大量ClientCredential 图6- 认证通过 利用点三:利用NetrServerPasswordSet2方法重置DC机器帐户密码 在通过认证之后,我们就可以调用RPC函数了,在漏洞的...中指定的加密的新密码 返回值:方法成功返回0x00000000;否则,返回一个非零错误代码 那么发送NetrServerPasswordSet2 (30)请求,将NL_TRUST_PASSWORD结构中的

    2.3K30

    域内定位个人PC的三种方式

    会话搜集 在cmd下调用query session命令可以获得当前环境下的windows会话 NetSessionEnum 这个函数不允许直接查询是谁登陆,但是它允许查询是谁在访问此工作站的网络资源时所创建的网络会话...out] LPDWORD resume_handle ); 第一个参数是servername,我们可以通过servername指定一个远程的主机,然后这个 API 会去调用远程主机的 RPC,然后返回其他用户在访问这台远程主机的网络资源时所创建的网络会话...从这个网络会话中可以看到哪个域用户来自哪个 IP,并且该 API 不需要在远程主机上有管理员权限 返回值有点特殊,NERR_Success和ERROR_MORE_DATA都是证明函数使用成功 level...通过 GPO,管理员可以下发策略来配置用户和计算机的系统设置,以实现统一的管理和控制。 在 GPO 管理环境下,管理员可以使用 query user 命令来查询当前连接到计算机的用户的信息。...管理员可以将 query user 命令的输出写入到 sysvol 目录中,以便对用户登录情况进行记录和统计。sysvol 目录是 Windows 中一个共享目录,用于存储域控制器上的组策略文件。

    71330
    领券