sc 命令是 Windows 操作系统中的一个命令行工具,用于与 Windows 服务控制管理器进行交互。它允许用户创建、删除、启动、停止、查询和配置 Windows 服务。sc 命令提供了对服务的全面管理功能,适用于系统管理员和高级用户。对应等效powershell命令

sc.exe create | Microsoft Learn

使用 SC 控制服务 - Win32 apps | Microsoft Learn

 

sc Command PowerShell Equivalent Command Description
sc query Get-Service Query the status of a service.
sc queryex Get-WmiObject -Class Win32_Service Query extended status of a service (returns more detailed information).
sc start Start-Service Start a service.
sc pause Suspend-Service Pause a service.
sc interrogate Send-ServiceCommand -Name <ServiceName> -Command <CommandName> Send INTERROGATE command to a service (PowerShell lacks a direct equivalent; use Send-ServiceCommand).
sc continue Resume-Service Resume a paused service.
sc stop Stop-Service Stop a service.
sc config Set-Service -Name <ServiceName> -StartupType <StartupType> Change the configuration of a service.
sc description Set-Service -Name <ServiceName> -Description <Description> Set or change the description of a service.
sc failure Set-WmiInstance -Class Win32_Service -Name <ServiceName> -FailureActions <FailureActions> Set actions for when a service fails.
sc failureflag Set-WmiInstance -Class Win32_Service -Name <ServiceName> -FailureActionsFlag <FailureFlag> Set failure actions flag.
sc sidtype Set-WmiInstance -Class Win32_Service -Name <ServiceName> -SIDType <SIDType> Change the service SID type.
sc privs Set-WmiInstance -Class Win32_Service -Name <ServiceName> -RequiredPrivileges <Privileges> Set required privileges for a service.
sc managedaccount Set-WmiInstance -Class Win32_Service -Name <ServiceName> -ManagedAccount <ManagedAccount> Set the service to use a managed account for the service password.
sc qc Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Query configuration details of a service.
sc qdescription Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Query the description of a service.
sc qfailure `Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Select-Object FailureActions`
sc qfailureflag `Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Select-Object FailureActionsFlag`
sc qsidtype `Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Select-Object SIDType`
sc qprivs `Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Select-Object RequiredPrivileges`
sc qtriggerinfo `Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Select-Object TriggerInfo`
sc qpreferrednode `Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Select-Object PreferredNode`
sc qmanagedaccount `Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Select-Object ManagedAccount`
sc qprotection `Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Select-Object ProtectionLevel`
sc quserservice `Get-WmiObject -Class Win32_Service -Filter "Name='<ServiceName>'" Select-Object UserServiceTemplate`
sc delete Remove-Service -Name <ServiceName> Delete a service from the registry.
sc create New-Service -Name <ServiceName> -Binary <Path> -Description <Description> Create a new service and add it to the registry.
sc control Send-ServiceCommand -Name <ServiceName> -Command <CommandName> Send control commands to a service (using Send-ServiceCommand).
sc sdshow Get-ServiceSecurity -Name <ServiceName> Show the security descriptor for a service.
sc sdset Set-ServiceSecurity -Name <ServiceName> -Descriptor <SecurityDescriptor> Set the security descriptor for a service.
sc showsid Get-ServiceSID -Name <ServiceName> Show the SID of a service.
sc triggerinfo Set-ServiceTrigger -Name <ServiceName> -Trigger <TriggerSettings> Configure the service's trigger parameters.
sc preferrednode Set-ServicePreferredNode -Name <ServiceName> -Node <NUMA_Node> Set the preferred NUMA node for a service.
sc GetDisplayName `Get-Service -Name <ServiceName> Select-Object DisplayName`
sc GetKeyName `Get-Service -Name <ServiceName> Select-Object ServiceKeyName`
sc EnumDepend Get-ServiceDependency -Name <ServiceName> Enumerate service dependencies.

C:\Users\Administrator>sc /?

sc 命令是 Windows 操作系统中的一个命令行工具,用于与 Windows 服务控制管理器进行交互。它允许用户创建、删除、启动、停止、查询和配置 Windows 服务。sc 命令提供了对服务的全面管理功能,适用于系统管理员和高级用户。

主要功能

  • 创建服务: 使用 sc create 命令可以注册新的服务。
  • 删除服务: 使用 sc delete 命令可以删除已注册的服务。
  • 启动和停止服务: 使用 sc start 和 sc stop 命令可以控制服务的运行状态。
  • 查询服务状态: 使用 sc query 命令可以获取服务的当前状态和配置信息。
  • 配置服务: 使用 sc config 命令可以更改服务的启动类型、依赖关系等设置。

描述:
        SC 是用来与服务控制管理器和服务进行通信的命令行程序。
用法:
        sc <server> [command] [service name] <option1> <option2>...


        <server> 选项的格式为 "\\ServerName"可通过键入以下命令获取有关命令的更多帮助: "sc [command]"
        命令:
          sc query-----------查询服务的状态, 或枚举服务类型的状态。
         sc  queryex---------查询服务的扩展状态, 或枚举服务类型的状态。
         sc   start-----------启动服务。
          sc  pause-----------向服务发送 PAUSE 控制请求。
           sc interrogate-----向服务发送 INTERROGATE 控制请求。
          sc  continue--------向服务发送 CONTINUE 控制请求。
          sc  stop------------向服务发送 STOP 请求。
           sc config----------更改服务的配置(永久)。
          sc  description-----更改服务的描述。
          sc  failure---------更改失败时服务执行的操作。
          sc  failureflag-----更改服务的失败操作标志。
          sc  sidtype---------更改服务的服务 SID 类型。
          sc  privs-----------更改服务的所需特权。
          sc  managedaccount--更改服务以将服务帐户密码标记为由 LSA 管理。
          sc  qc--------------查询服务的配置信息。
          sc  qdescription----查询服务的描述。
         sc   qfailure--------查询失败时服务执行的操作。
          sc  qfailureflag----查询服务的失败操作标志。
         sc   qsidtype--------查询服务的服务 SID 类型。
          sc  qprivs----------查询服务的所需特权。
           sc qtriggerinfo----查询服务的触发器参数。
         sc   qpreferrednode--查询服务的首选 NUMA 节点。
         sc   qmanagedaccount-查询服务是否将帐户与 LSA 管理的密码结合使用。
         sc   qprotection-----查询服务的进程保护级别。
         sc   quserservice----查询用户服务模板的本地实例。
        sc    delete ----------(从注册表中)删除服务。
        sc    create----------创建服务(并将其添加到注册表中)。
        sc    control---------向服务发送控制。
       sc     sdshow----------显示服务的安全描述符。
        sc    sdset-----------设置服务的安全描述符。
        sc    showsid---------显示与任意名称对应的服务 SID 字符串。
        sc    triggerinfo-----配置服务的触发器参数。
        sc    preferrednode---设置服务的首选 NUMA 节点。
        sc    GetDisplayName--获取服务的 DisplayName。
         sc  GetKeyName------获取服务的 ServiceKeyName。
        sc    EnumDepend------枚举服务依赖关系。

        以下命令不需要服务名称:
        sc <server> <command> <option>
          boot------------(ok | bad)指示是否应将上一次启动另存为最近一次已知的正确启动配置
          Lock------------锁定服务数据库
          QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
        sc start MyService


QUERY 和 QUERYEX 选项:
        如果查询命令带服务名称,将返回该服务的状态。其他选项不适合这种情况。如果查询命令不带参数或带下列选项之一,将枚举此服务。
    type=    要枚举的服务的类型(driver, service, userservice, all)
             (默认 = service)
    state=   要枚举的服务的状态 (inactive, all)
             (默认 = active)
    bufsize= 枚举缓冲区的大小(以字节计)
             (默认 = 4096)
    ri=      开始枚举的恢复索引号
             (默认 = 0)
    group=   要枚举的服务组
             (默认 = all groups)

语法示例
sc query                - 枚举活动服务和驱动程序的状态
sc query eventlog       - 显示 eventlog 服务的状态
sc queryex eventlog     - 显示 eventlog 服务的扩展状态
sc query type= driver   - 仅枚举活动驱动程序
sc query type= service  - 仅枚举 Win32 服务
sc query state= all     - 枚举所有服务和驱动程序
sc query bufsize= 50    - 枚举缓冲区为 50 字节
sc query ri= 14         - 枚举时恢复索引 = 14
sc queryex group= ""    - 枚举不在组内的活动服务
sc query type= interact - 枚举所有不活动服务
sc query type= driver group= NDIS     - 枚举所有 NDIS 驱动程序


 


SC 命令的详细功能分类和细化表格。SC 是 Windows 系统中的服务控制工具,允许用户与 Windows 服务交互,包括查询、配置、启动、停止、删除等操作。

功能类别 命令 描述 备注
服务查询与状态 sc query 查询服务的状态。 显示服务的运行状态,如运行中、暂停等。
  sc queryex 查询服务的扩展状态。 返回更详细的服务状态信息,如服务标识符等。
服务操作 sc start 启动指定服务。 启动服务之前,服务必须已创建。
  sc stop 停止指定服务。 停止一个运行中的服务。
  sc pause 暂停指定服务。 服务必须支持暂停功能。
  sc continue 继续已暂停的服务。 恢复一个已暂停的服务。
  sc interrogate 向服务发送询问请求,返回当前状态。 查询服务当前状态。
服务配置管理 sc config 修改服务的配置。 修改服务的启动类型、依赖项等配置。
  sc description 修改服务的描述信息。 更新服务的描述字段。
  sc failure 配置服务失败后的处理行为。 设置服务失败时的恢复策略(如重启服务等)。
  sc failureflag 设置服务失败时的处理标志。 控制服务失败后的动作。
  sc sidtype 修改服务的 SID 类型。 配置服务的安全标识符(SID)。
  sc privs 设置服务的权限。 配置服务运行所需的特定权限。
  sc managedaccount 配置服务账户为管理密码。 配置服务为使用 LSA 管理的账户。
服务查询命令 sc qc 查询服务的配置信息。 显示服务的配置信息,如启动类型、依赖项等。
  sc qdescription 查询服务的描述信息。 返回服务的描述内容。
  sc qfailure 查询服务的失败处理策略。 返回服务的失败恢复策略。
  sc qfailureflag 查询服务的失败标志。 显示服务的失败标志。
  sc qsidtype 查询服务的 SID 类型。 查询服务的安全标识符(SID)。
  sc qprivs 查询服务的权限配置。 返回服务的权限要求。
  sc qtriggerinfo 查询服务的触发信息。 显示服务的触发条件和事件。
  sc qpreferrednode 查询服务的首选 NUMA 节点。 显示服务使用的首选 NUMA 节点信息。
  sc qmanagedaccount 查询服务是否使用 LSA 管理的账户。 检查服务是否使用由 LSA 管理的密码。
  sc qprotection 查询服务的进程保护级别。 返回服务的进程保护信息。
  sc quserservice 查询用户服务模板实例。 返回与用户服务相关的模板实例信息。
服务删除与创建 sc delete 删除指定服务。 从服务管理器中删除服务,无法恢复。
  sc create 创建一个新服务。 创建新的服务并将其添加到服务管理器中。
服务控制 sc control 向服务发送控制请求。 允许用户向服务发送特定控制命令,如暂停、继续等。
服务安全管理 sc sdshow 显示服务的安全描述符。 显示服务的权限设置和安全描述信息。
  sc sdset 设置服务的安全描述符。 修改服务的安全权限和访问控制列表(ACL)。
服务信息与识别 sc showsid 显示服务的 SID(服务标识符)。 显示服务对应的 SID 字符串。
  sc triggerinfo 配置或查询服务触发参数。 配置服务的触发事件与参数。
  sc preferrednode 配置服务的首选 NUMA 节点。 设置服务在 NUMA 节点上的运行首选项。
  sc GetDisplayName 获取服务的显示名称。 查询服务的 DisplayName 信息。
  sc GetKeyName 获取服务的服务键名称。 查询服务的注册表键名称。
  sc EnumDepend 枚举并显示服务的依赖项。 查询服务依赖的其他服务。
系统配置管理 sc boot 指定是否将最后的启动保存为“最后已知的良好配置”。 配置系统启动时的恢复选项。
服务数据库管理 sc Lock 锁定服务数据库。 防止对服务数据库进行修改。
  sc QueryLock 查询服务数据库的锁定状态。 查询当前服务数据库是否被锁定。

 

功能分类小结:

 

  1. 服务查询与状态管理:涉及查询服务的状态、扩展信息、显示描述等。
  2. 服务操作管理:用于启动、停止、暂停、恢复服务等操作。
  3. 服务配置管理:用于修改服务的配置、描述、失败策略、权限等。
  4. 服务查询命令:查询服务的各种配置信息、权限、触发条件等。
  5. 服务删除与创建:包括创建和删除服务,管理服务生命周期。
  6. 服务安全管理:修改或查询服务的安全描述符(ACLs)和权限设置。
  7. 系统配置管理:管理系统启动时的配置选项。
  8. 服务数据库管理:锁定服务数据库或查询锁定状态,以防止对服务的修改。

 

这份细化表格展示了 SC 命令行工具在 Windows 系统中的广泛应用,涵盖了服务管理的各个方面,从查询、操作、配置到安全管理等多个功能类别。

 


SC 命令:Windows 服务管理的强大工具

在 Windows 操作系统中,sc 命令(Service Control)是一个非常强大的命令行工具,用于管理本地或远程计算机上的服务及驱动程序。通过 sc 命令,你可以方便地启动、停止、查询、创建、删除服务,甚至可以修改服务的配置及其行为。本文将详细介绍一些常见的 sc 命令及其使用方法,帮助你更好地管理 Windows 系统中的服务。

常见的 sc 命令用法

1. 查询服务状态

要查询某个服务的当前状态,可以使用以下命令:

bashCopy Code
sc query serviceName

其中,serviceName 是你希望查询的服务名称。此命令将返回该服务的当前状态、进程 ID(PID)以及服务的类型等信息。

2. 启动服务

若要启动一个已存在的服务,可以使用以下命令:

bashCopy Code
sc start serviceName

这会启动指定的服务,前提是该服务已经正确配置并处于停止状态。

3. 停止服务

停止某个正在运行的服务,可以使用:

bashCopy Code
sc stop serviceName

此命令会发送停止请求,停止指定的服务。

4. 安装服务

若要安装一个新服务,可以使用 sc create 命令,指定服务的名称和可执行文件路径:

bashCopy Code
sc create serviceName binPath= "C:\path\to\executable.exe" [option1=value1 option2=value2 ...]
  • serviceName:要创建的服务名称。
  • binPath:服务可执行文件的路径。
  • 可选参数:你可以通过附加选项来设置服务的其他属性,例如启动类型、显示名称、描述等。

安装服务后,你可以使用 sc start 命令启动它。

5. 卸载服务

若要卸载一个服务,可以使用 sc delete 命令:

bashCopy Code
sc delete serviceName

该命令会从系统中删除指定的服务。

sc 命令的高级选项

除了上述常见的命令,sc 还提供了许多高级选项,能够帮助你更细致地管理服务。以下是一些常用的命令:

查询服务的详细信息

要查询服务的配置信息,可以使用:

bashCopy Code
sc qc serviceName

此命令将显示指定服务的配置信息,如二进制文件路径、启动类型等。

更改服务配置

如果你需要永久更改某个服务的配置,可以使用:

bashCopy Code
sc config serviceName option=value

这允许你修改服务的启动类型、登录帐户等配置。例如:

bashCopy Code
sc config MyService start= disabled

该命令将 MyService 服务的启动类型设置为禁用。

修改服务描述

使用 sc description 可以修改服务的描述:

bashCopy Code
sc description serviceName "New Description"

该命令会更新服务的描述信息,帮助管理员更好地了解服务的功能。

修改服务的失败操作

你可以设置服务在失败时的行为,使用以下命令:

bashCopy Code
sc failure serviceName reset= 60 actions= restart/5000

这会配置当服务失败时,自动重新启动服务,并在 5 秒钟内尝试。

查询服务的依赖关系

要查询服务的依赖关系,可以使用:

bashCopy Code
sc qc serviceName

这个命令会显示服务所依赖的其他服务和驱动程序。

sc 命令语法示例

查询服务

查询 eventlog 服务的状态:

bashCopy Code
sc query eventlog

查询所有活动服务:

bashCopy Code
sc query state= all

查询仅活动的驱动程序:

bashCopy Code
sc query type= driver

查询某个服务的扩展状态:

bashCopy Code
sc queryex eventlog

启动服务

启动 MyService 服务:

bashCopy Code
sc start MyService

停止服务

停止 MyService 服务:

bashCopy Code
sc stop MyService

安装服务

安装新服务 MyService,并指定其可执行文件路径:

bashCopy Code
sc create MyService binPath= "C:\path\to\myservice.exe"

删除服务

删除 MyService 服务:

bashCopy Code
sc delete MyService

其他有用命令选项

  • sc queryex:显示服务的扩展状态,提供比 sc query 更多的详细信息。
  • sc pause:向服务发送 PAUSE 请求,暂停服务。
  • sc continue:向服务发送 CONTINUE 请求,恢复已暂停的服务。
  • sc control:向服务发送控制请求,如暂停、继续、停止等。
  • sc sdshow:显示服务的安全描述符。
  • sc sdset:设置服务的安全描述符。
  • sc showsid:显示与任意名称对应的服务 SID 字符串。

 

sc 命令是 Windows 操作系统中一个非常有用的工具,可以帮助管理员快速而高效地管理服务。无论是查询服务状态、启动/停止服务,还是配置服务属性,sc 都提供了丰富的命令选项,适用于各种场景。掌握这些常用的 sc 命令,可以让你更加得心应手地进行系统服务的管理。


sc sdset 命令用于设置 Windows 服务的安全描述符。安全描述符(Security Descriptor,简称 SD)包含了对服务对象的安全信息,决定了哪些用户或组具有访问该服务的权限,以及这些权限的详细设置。

在你的例子中:

bashCopy Code
sc sdset servername d:(a;;ka;;;wd)

我们可以拆解它的各个部分来进行详细说明:

命令格式

Copy Code
sc sdset <service_name> <sd_string>
  • service_name: 指定服务的名称,或者在此示例中是 scmanager(表示 SCM,即服务控制管理器)。
  • sd_string: 是一个用 DACL(Discretionary Access Control List,分配控制列表)定义的安全描述符字符串。

安全描述符(SD)字符串结构

sc sdset 中,安全描述符字符串的格式为:

Copy Code
d:(DACL)
  • d: 表示安全描述符中的 DACL(Discretionary Access Control List),它定义了允许或拒绝对对象的访问。
  • DACL 是一种列表,其中每个元素称为 访问控制条目(ACE)。ACE 定义了某个特定用户或组对服务的访问权限。

d:(a;;ka;;;wd) 分解

d:(a;;ka;;;wd) 是一个具体的 DACL 字符串,表示设置某些权限。它的格式是:

Copy Code
a;;ka;;;wd

这个格式具体分为几部分:

  • a:表示一个 访问控制条目(ACE),即授予访问权限。
  • ;;:分隔符,分隔每个权限项。
  • ka:权限标识符,表示被授予权限的对象类型。在这里,ka 代表 服务控制管理器(SCM) 的权限。
  • ;;;:分隔符,后面是空字段,表示没有指定任何特定条件(如用户或组)。
  • wd:表示 写入数据 权限,指的是 wd 的用户可以修改服务管理器的权限。

解释各个部分

d:(a;;ka;;;wd) 的意思如下:

  • a:这表示一个 ACE(访问控制条目)项,指明访问类型。
  • ka:表示将权限授予 服务控制管理器(SCM)。
  • wd:表示授予 "写入数据" 权限,通常对应 WRITE_DAC 权限。这个权限允许修改对象的 DACL。换句话说,这样的权限让 servername 这个服务的 DACL 可以被修改。

总结

此命令实际上是在设置 servername(服务控制管理器)服务的安全描述符,授予某些用户或组(如 ka写入数据wd)的权限。

  • servername 是服务控制管理器的名称,管理着所有的 Windows 服务。
  • wd(写入数据权限)使得具有该权限的用户可以修改服务控制管理器的访问控制列表(ACL),从而可能影响服务的启动和管理。

如果该命令成功执行,意味着指定用户或组(在此为 ka)获得了对服务控制管理器的 WRITE_DAC 权限,可以修改该服务的安全设置。

额外注意

  • 权限修改可能带来安全风险,所以在使用 sc sdset 命令时应谨慎操作,确保没有无意中授予过多权限给不应访问这些资源的用户或组。
  • 需要管理员权限才能执行 sc sdset 命令。

sc sdshowsc sdset 两个命令的对比,展示它们在 Windows 系统服务管理中的不同功能和作用:

命令 功能描述 作用 用法示例 备注
sc sdshow 显示服务的安全描述符 用于显示指定服务的安全描述符(Security Descriptor,简称 SD),即该服务的权限设置和访问控制列表(ACL)。 sc sdshow <服务名> 显示服务的安全描述符。返回的描述符包含服务的权限信息。
sc sdset 设置服务的安全描述符 用于修改指定服务的安全描述符。通过此命令,管理员可以设置服务的访问控制列表(ACL),控制谁可以访问服务及其权限。 sc sdset <服务名> <新的安全描述符> 修改服务的安全描述符。需要提供新的安全描述符字符串。
返回结果 安全描述符信息 返回服务的当前安全描述符,包括服务的访问控制列表(ACL),例如服务允许哪些用户或组访问,允许的操作权限等。 显示类似以下格式:D:(A;;CCLCSWRPWPDTLOCRRC;;;BA) 返回的是服务的安全描述符字符串,详细描述权限设置。
影响 只会显示当前服务的安全描述符,不会修改服务的任何属性。 无操作。 该命令仅用于查看,不会修改任何服务配置。
操作权限 无修改权限 只能用于查询和查看服务的安全描述符,无法直接修改服务配置。 无直接修改操作。 sc sdshow 不会对服务产生任何修改,仅作查询用途。
使用场景 查询服务的权限设置 用于管理员查询服务的安全设置,查看哪些用户和组有权访问服务,权限级别如何。 管理员查看服务的安全配置。 用于审核、检查服务的访问权限等。
使用场景 修改服务的权限设置 用于管理员设置服务的权限,定义哪些用户或组对该服务有访问权限以及允许的操作类型。 管理员根据需要配置服务的访问权限。 在修改服务权限时,要小心权限设置,避免意外修改权限导致的访问问题。
参数 无修改参数,只有查询功能 必须指定新的安全描述符(ACL),该描述符必须符合正确的格式和语法。 无特殊参数,直接查看;sc sdset <服务名> <描述符> sc sdset 需要提供一个符合格式的安全描述符字符串作为参数。
安全性 只读,安全性无风险 修改服务的权限时,需要非常小心,错误的安全描述符可能导致服务无法启动或不必要的权限暴露。 查看时无风险,修改时可能带来安全隐患。 修改服务权限时,要确保描述符格式正确,并了解其权限含义。

总结:

  • sc sdshow 用于查询服务的当前安全描述符,允许用户查看服务的权限配置,但不会修改任何内容。
  • sc sdset 用于设置服务的安全描述符,修改服务的权限和访问控制,管理员可以通过该命令更改谁可以访问服务,以及允许哪些操作。

这两条命令通常配合使用:sc sdshow 用于查看服务的安全设置,而 sc sdset 用于更改服务的权限设置。


sc sdset 命令中,访问控制列表(ACL,Access Control List)用于定义对服务的访问权限。ACL 是一个包含多个访问控制条目(ACE,Access Control Entry)的列表,每个 ACE 定义了一个主体(如用户或组)及其对应的权限。以下是 sc sdset 中常见的 ACL 参数的完整表格,展示了各种可用的权限和格式。

ACL 格式说明

ACL 描述符遵循特定的格式,通常以 D: 开头,后面跟着多个访问控制条目(ACE)。每个 ACE 定义了对服务的访问权限,ACE 的格式如下:

Copy Code
(A;;<权限>; <用户/组标识符>;;<标志>)
  • A 表示访问允许(Allow)。
  • D 表示访问拒绝(Deny)。
  • <权限> 是具体的权限标识符。
  • <用户/组标识符> 是要授予权限的用户或组。
  • <标志> 表示权限的附加条件或特性。

常见权限(<权限>):

权限名称 简写 描述
CCL CreateContainer 创建容器对象的权限(如文件夹或服务)
CLCS CreateLink 创建链接对象的权限
SWRP SetAttributes 设置对象的属性权限
WP Write 写操作权限,允许对服务或对象进行修改
DTLOCR Delete 删除权限
CR Read 读取权限,允许读取服务或对象的内容
RP ReadProperties 读取对象的属性权限
SP SetProperties 设置对象的属性权限
WP WriteProperties 设置对象的属性权限

标志(<标志>

标志名称 描述
G 公共标志,表示规则适用于全体用户或所有进程
S 系统标志,表示规则只适用于系统
U 用户标志,表示规则仅适用于特定用户
O 操作员标志,表示规则适用于具有管理员权限的用户

用户或组标识符

标识符 描述
BA BUILTIN\Administrators(管理员组)
IU 用户(User)
S-1-5-32-544 Administrators(管理员组标识符)
S-1-5-32-545 Users(普通用户组标识符)
Everyone 任何用户,通常表示所有用户

ACL 完整的示例和表格:

参数 简要描述
D:(A;;CCLCSWRPWPDTLOCRRC;;;BA) 表示允许 BUILTIN\Administrators 组进行完整的服务管理操作(包括创建、写、删除等权限)。
D:(A;;CCLCSWRPWPDTLOCRRC;;;IU) 表示允许 用户组 进行服务的所有管理操作。
D:(A;;CCLCSWRPWPDTLOCRRC;;;S-1-5-32-544) 设置管理员组的访问控制权限,允许他们执行所有操作。
D:(A;;CCLCSWRPWPDTLOCRRC;;;S-1-5-32-545) 设置普通用户组的访问控制权限,允许他们执行有限的操作。

示例 sc sdset 命令:

假设要修改服务的权限,以便仅允许 Administrators 组进行所有操作,其他用户没有访问权限,可以使用如下命令:

Copy Code
sc sdset <服务名> D:(A;;CCLCSWRPWPDTLOCRRC;;;BA)

这个命令表示允许 BA(Administrators 组)对服务进行所有权限操作,其他用户没有任何权限。

备注:

  • sc sdset 修改的安全描述符遵循 Windows 安全描述符格式。
  • 需要特别小心修改权限,因为不当的设置可能会导致服务无法正常运行,或者使服务的安全性降低。

 

posted @ 2023-06-30 07:28  suv789  阅读(968)  评论(0)    收藏  举报