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

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

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

Set-Service (Microsoft.PowerShell.Management)


Set-Service

模块 :Microsoft.PowerShell.Management

启动、停止和挂起服务,以及更改其属性。

句法

Set-Service
   [-Name] <String>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-Status <String>]
   [-SecurityDescriptorSddl <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Service
   [-InputObject] <ServiceController>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-SecurityDescriptorSddl <String>]
   [-Status <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

描述

此 cmdlet 仅适用于 Windows 平台。

Set-Service cmdlet 可更改服务的属性,例如状态说明显示名称启动类型Set-Service 可以启动、停止、挂起或暂停服务。要标识服务,请输入其服务名称或提交服务对象。或者,将服务名称或服务对象沿着管道发送到Set-Service

示例

示例 1:更改显示名称

在此示例中,服务的显示名称已更改。要查看原始显示名称,请使用Get-Service

Set-Service -Name LanmanWorkstation -DisplayName "LanMan Workstation"

Set-Service 使用Name 参数指定服务的名称LanmanWorkstationDisplayName 参数指定新的显示名称LanMan Workstation

示例2:更改服务的启动类型

此示例演示如何更改服务的启动类型。

Set-Service -Name BITS -StartupType Automatic
Get-Service BITS | Select-Object -Property Name, StartType, Status

Name  StartType   Status
----  ---------   ------
BITS  Automatic  Running

Set-Service 使用Name 参数指定服务的名称BITSStartupType 参数将服务设置为自动

Get-Service 使用Name 参数指定BITS 服务并将对象沿管道发送。 Select-Object 使用Property 参数来显示BITS 服务的状态。

示例 3:更改服务的描述

此示例更改 BITS 服务的描述并显示结果。

使用 Get-CimInstance cmdlet 是因为它返回一个 Win32_Service 对象,其中包含服务的描述

Get-CimInstance Win32_Service -Filter 'Name = "BITS"'  | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth. If the service is
              disabled, then any applications that depend on BITS, such as Windows Update or MSN
              Explorer, will be unable to automatically download programs and other information.

Set-Service -Name BITS -Description "Transfers files in the background using idle network bandwidth."
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth.

Get-CimInstance 将对象沿管道发送到 Format-List 并显示服务的名称和描述。为了进行比较,该命令在描述更新之前和之后运行。

Set-Service 使用Name 参数指定BITS 服务。 Description 参数指定服务描述的更新文本。

示例4:启动服务

在此示例中,启动了一个服务。

Set-Service -Name WinRM -Status Running -PassThru

Status   Name               DisplayName
------   ----               -----------
Running  WinRM              Windows Remote Management (WS-Manag...

Set-Service 使用Name 参数指定服务WinRMStatus 参数使用值Running 来启动服务。 PassThru 参数输出一个显示结果的 ServiceController 对象。

示例 5:暂停服务

此示例使用管道暂停服务。

Get-Service -Name Schedule | Set-Service -Status Paused

Get-Service 使用Name 参数指定Schedule 服务,并将对象沿管道发送。 Set-Service 使用Status 参数将服务设置为已暂停

示例 6:停止服务

此示例使用变量来停止服务。

$S = Get-Service -Name Schedule
Set-Service -InputObject $S -Status Stopped

Get-Service 使用Name 参数指定服务Schedule。该对象存储在变量 $S 中。 Set-Service 使用InputObject 参数并指定存储的对象$S状态参数将服务设置为已停止

示例 7:停止远程系统上的服务

此示例停止远程计算机上的服务。有关详细信息,请参阅调用命令。

$Cred = Get-Credential
$S = Get-Service -Name Schedule
Invoke-Command -ComputerName server01.contoso.com -Credential $Cred -ScriptBlock {
  Set-Service -InputObject $S -Status Stopped
}

Get-Credential 提示输入用户名和密码,并将凭据存储在 $Cred 变量中。 Get-Service 使用Name 参数指定Schedule 服务。该对象存储在变量 $S 中。

Invoke-Command 使用ComputerName 参数指定远程计算机。 Credential 参数使用 $Cred 变量登录计算机。 ScriptBlock 调用Set-ServiceInputObject 参数指定存储的服务对象$S状态参数将服务设置为已停止

示例 8:更改服务的凭证

此示例更改用于管理服务的凭据。

$credential = Get-Credential
Set-Service -Name Schedule -Credential $credential

Get-Credential 提示输入用户名和密码,并将凭据存储在 $credential 变量中。 Set-Service 使用Name 参数指定Schedule 服务。 Credential 参数使用 $credential 变量并更新Schedule 服务。

示例 9:更改服务的 SecurityDescriptor

此示例更改服务的SecurityDescriptor

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL

SecurityDescriptor 存储在 $SDDL 变量中。 Set-Service 使用Name 参数指定BITS 服务。 SecurityDescriptorSddl 参数使用 $SDDL 更改 BITS 服务的 SecurityDescriptor

示例10:设置多个服务的启动类型

Set-Service cmdlet 一次仅接受一个服务名称。但是,您可以通过管道将多个服务传递给 Set-Service 来更改多个服务的配置。

Get-Service SQLWriter,spooler |
    Set-Service -StartupType Automatic -PassThru |
    Select-Object Name, StartType

Name      StartType
----      ---------
spooler   Automatic
SQLWriter Automatic

参数

-Confirm

在运行 Set-Service 之前提示您进行确认。

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Credential

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

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

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

笔记

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

此参数是在 PowerShell 6.0 中引入的。

类型 :

PS凭证

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Description

指定服务的新描述。

服务描述出现在计算机管理、服务中。 Description 不是 Get-Service ServiceController 对象的属性。要查看服务描述,请使用 Get-CimInstance 返回代表该服务的 Win32_Service 对象。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-DisplayName

指定服务的新显示名称。

笔记

通常,Set-Service 仅在 Windows 服务上运行,而不在驱动程序上运行。但是,如果您指定驱动程序的名称,Set-Service 可以定位该驱动程序。

类型 :

String

别名:

DN

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Force

指定服务的停止模式。此参数仅在使用 -Status Stopped 时有效。如果启用,Set-Service 将在目标服务停止之前停止相关服务。默认情况下,当其他正在运行的服务依赖于目标服务时,会引发异常。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-InputObject

指定代表要更改的服务的 ServiceController 对象。输入包含对象的变量,或键入获取对象的命令或表达式,例如 Get-Service 命令。您可以使用管道将服务对象发送到Set-Service

类型 :

ServiceController

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-Name

指定要更改的服务的服务名称。不允许使用通配符。您可以使用管道将服务名称发送到Set-Service

笔记

通常,Set-Service 仅在 Windows 服务上运行,而不在驱动程序上运行。但是,如果您指定驱动程序的名称,Set-Service 可以定位该驱动程序。

类型 :

String

别名:

ServiceName, SN

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-PassThru

返回表示已更改的服务的 ServiceController 对象。默认情况下,Set-Service 不会生成任何输出。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-SecurityDescriptorSddl

Sddl 格式指定服务的SecurityDescriptor。使用此参数调用 Set-Service 的帐户必须具有 WRITE_DAC 和 WRITE_OWNER 权限。有关更多信息,请参阅服务安全和访问权限。

类型 :

String

别名:

sd

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-StartupType

指定服务的启动模式。

该参数可接受的值如下:

  • 自动 - 服务在系统启动时启动或由操作系统启动。如果自动启动的服务依赖于手动启动的服务,则手动启动的服务也会在系统启动时自动启动。
  • AutomaticDelayedStart - 系统启动后不久启动。
  • 已禁用 - 该服务已禁用,用户或应用程序无法启动。
  • InvalidValue - 没有效果。该 cmdlet 不会返回错误,但服务的 StartupType 不会更改。
  • 手动 - 该服务仅由用户使用服务控制管理器或应用程序手动启动。
类型 :

服务启动类型

别名:

StartMode, SM, ST, StartType

接受的值:

自动、自动延迟启动、禁用、InvalidValue、手动

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Status

指定服务的状态。

该参数可接受的值如下:

  • 已暂停。暂停服务。
  • 正在运行。启动服务。
  • 已停止。停止服务。
类型 :

String

接受的值:

暂停、运行、停止

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-WhatIf

显示如果 Set-Service 运行会发生什么。该 cmdlet 未运行。

类型 :

SwitchParameter

别名:

wi

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

服务控制器

您可以通过管道将服务对象传递给此 cmdlet。

字符串

您可以通过管道将包含服务名称的字符串传递给此 cmdlet。

输出

默认情况下,此 cmdlet 不返回任何输出。

服务控制器

当您使用 PassThru 参数时,此 cmdlet 将返回一个 ServiceController 对象。

笔记

此 cmdlet 仅适用于 Windows 平台。

Set-Service 需要提升的权限。使用以管理员身份运行选项。

Set-Service 仅当当前用户有管理服务的权限时才能控制服务。如果命令无法正常工作,您可能没有所需的权限。

要查找服务的服务名称或显示名称,请使用 Get-Service。服务名称位于名称列中,显示名称位于DisplayName列中。

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

取消回复欢迎 发表评论:

关灯