当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] New-Service (Microsoft.PowerShell.Management)

作者:精品下载站 日期:2024-12-14 02:11:39 浏览:15 分类:玩电脑

New-Service (Microsoft.PowerShell.Management)


New-Service

模块 :Microsoft.PowerShell.Management

创建新的 Windows 服务。

句法

New-Service
   [-Name] <String>
   [-BinaryPathName] <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-SecurityDescriptorSddl <String>]
   [-StartupType <ServiceStartupType>]
   [-Credential <PSCredential>]
   [-DependsOn <String[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

描述

此 cmdlet 仅适用于 Windows 平台。

New-Service cmdlet 在注册表和服务数据库中为 Windows 服务创建一个新条目。新服务需要在服务期间运行的可执行文件。

通过此 cmdlet 的参数,您可以设置服务的显示名称、描述、启动类型和依赖项。

示例

示例 1:创建服务

New-Service -Name "TestService" -BinaryPathName 'C:\WINDOWS\System32\svchost.exe -k netsvcs'

此命令创建一个名为 TestService 的服务。

示例 2:创建一个包含描述、启动类型和显示名称的服务

$params = @{
  Name = "TestService"
  BinaryPathName = 'C:\WINDOWS\System32\svchost.exe -k netsvcs'
  DependsOn = "NetLogon"
  DisplayName = "Test Service"
  StartupType = "Manual"
  Description = "This is a test service."
}
New-Service @params

此命令创建一个名为 TestService 的服务。它使用 New-Service 的参数来指定新服务的描述、启动类型和显示名称。

示例3:查看新服务

Get-CimInstance -ClassName Win32_Service -Filter "Name='testservice'"

ExitCode  : 0
Name      : testservice
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

此命令使用 Get-CimInstance 获取新服务的 Win32_Service 对象。该对象包括启动方式和服务描述。

示例4:创建服务时设置服务的SecurityDescriptor。

此示例添加正在创建的服务的SecurityDescriptor

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
$params = @{
  BinaryPathName = 'C:\WINDOWS\System32\svchost.exe -k netsvcs'
  DependsOn = "NetLogon"
  DisplayName = "Test Service"
  StartupType = "Manual"
  Description = "This is a test service."
  SecurityDescriptorSddl = $SDDL
}
New-Service @params

SecurityDescriptor 存储在 $SDDLToSet 变量中。 SecurityDescriptorSddl 参数使用 $SDDL 设置新服务的 SecurityDescriptor

参数

-BinaryPathName

指定服务的可执行文件的路径。此参数是必需的。

服务二进制文件的完全限定路径。如果路径包含空格,则必须用引号引起来,以便正确解释。例如,d:\my share\myservice.exe 应指定为 '"d:\my share\myservice.exe"'

该路径还可以包含自动启动服务的参数。例如,'“d:\my share\myservice.exe”arg1 arg2'。这些参数被传递到服务入口点。

有关更多信息,请参阅 CreateServiceW API 的 lpBinaryPathName 参数。

类型 :

String

别名:

Path

位置:

1

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-Confirm

在运行 cmdlet 之前提示您进行确认。

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Credential

将服务使用的帐户指定为服务登录帐户。

键入用户名,例如 User01Domain01\User01,或输入 PSCredential 对象,例如由 Get 生成的对象-Credential cmdlet。如果您键入用户名,此 cmdlet 会提示您输入密码。

凭证存储在 PSCredential 对象中,密码存储为 SecureString。

笔记

有关 SecureString 数据保护的更多信息,请参阅 SecureString 的安全性如何?。

类型 :

PS凭证

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-DependsOn

指定新服务所依赖的其他服务的名称。要输入多个服务名称,请使用逗号分隔名称。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Description

指定服务的描述。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-DisplayName

指定服务的显示名称。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Name

指定服务的名称。此参数是必需的。

类型 :

String

别名:

ServiceName

位置:

0

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-SecurityDescriptorSddl

Sddl 格式指定服务的SecurityDescriptor

类型 :

String

别名:

sd

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-StartupType

设置服务的启动类型。该参数可接受的值为:

  • 自动 - 服务在系统启动时启动或由操作系统启动。如果自动启动的服务依赖于手动启动的服务,则手动启动的服务也会在系统启动时自动启动。
  • AutomaticDelayedStart - 系统启动后不久启动。
  • 已禁用 - 该服务已禁用,用户或应用程序无法启动。
  • InvalidValue - 不支持此值。使用该值会导致错误。
  • 手动 - 该服务仅由用户使用服务控制管理器或应用程序手动启动。

默认值为自动

类型 :

服务启动类型

接受的值:

自动、手动、禁用、AutomaticDelayedStart、InvalidValue

位置:

命名

默认值:

自动的

必需的:

False

接受管道输入:

False

接受通配符:

False

-WhatIf

显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。

类型 :

SwitchParameter

别名:

wi

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

您无法通过管道将对象传递到此 cmdlet。

输出

服务控制器

此 cmdlet 返回一个表示新服务的对象。

笔记

此 cmdlet 仅在 Windows 平台上可用。

要运行此 cmdlet,请使用以管理员身份运行选项启动 PowerShell。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯