[玩转系统] 如何使用PowerShell管理Windows服务?
作者:精品下载站 日期:2024-12-14 20:10:58 浏览:14 分类:玩电脑
如何使用PowerShell管理Windows服务?
您不仅可以通过 services.msc 管理单元或 sc.exe 命令行工具管理 Windows 服务,还可以使用 PowerShell。在本文中,我们将考虑使用 PowerShell 管理 Windows 服务的不同场景。
用于管理 Windows 服务的 PowerShell Cmdlet
有八个基本服务 cmdlet 可用于查看 Windows 服务的状态并管理它们。要获取服务管理 cmdlet 的完整列表,请运行以下命令:
Get-Help \*-Service
Get-Service — 允许获取本地或远程计算机上处于运行或停止状态的服务;
-
New-Service - 创建服务。该 cmdlet 在注册表和服务数据库中为 Windows 服务创建一个新条目;
Restart-Service - 重新启动服务。该cmdlet通过Windows服务控制器发送重启消息;
Resume-Service - 恢复服务。该 cmdlet 向 Windows 服务管理器发送恢复消息;
Set-Service — 更改本地或远程服务的设置,包括其状态、描述、显示名称或启动模式。您还可以使用此 cmdlet 来启动、停止或暂停服务;
Start-Service - 启动服务;
Stop-Service - 停止服务(cmdlet 向 Windows 服务管理器发送停止消息);
暂停服务 - 暂停服务。挂起的服务仍在运行,但在使用(例如,使用 Resume-Service cmdlet)恢复之前它不会执行任何操作。
您可以通过 Get-Help 获取使用特定 cmdlet 的详细说明和示例:
Get-Help Start-Service
如何使用 Get-Service 检查 Windows 服务状态?
您可以使用 Get-Service cmdlet 获取本地或远程计算机上的服务列表及其状态(正在运行/已停止)。 -Name 参数允许按名称选择服务。可以使用通配符指定服务名称
*
。
如果您不知道确切的服务名称,可以使用 -DisplayName 参数通过显示的名称找到它。您可以使用值和通配符列表。
使用带有 -ComputerName 参数的 Get-Service cmdlet 来获取远程计算机上的服务状态。您可以通过指定以逗号分隔的名称来同时查询多台远程计算机上的服务状态。例如,下面显示的命令获取远程计算机 ny-prnt1 和 ny-prnt2 上的 Spooler 服务状态。
Get-Service spooler -ComputerName ny-prnt1,ny-prnt2
Status Name DisplayName
------ ---- -----------
Running spooler Print Spooler
Stopped spooler Print Spooler
要显示服务的所有属性,请使用 Select-Object cmdlet:
Get-Service spooler | Select-Object *
Select-Object cmdlet 允许获取服务的特定属性。例如,您要查看 Spooler 服务的名称、状态和可用选项:
Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*
Get-Service cmdlet 有两个参数可让您查看服务依赖关系:
-
-DependentServices 允许显示依赖于给定服务的服务
-RequiredServices 显示给定服务所依赖的服务
以下命令显示启动 Spooler 服务所需的服务:
Get-Service -Name Spooler -RequiredServices
以下命令显示依赖于 Spooler 的服务:
Get-Service -Name Spooler -DependentServices
如果您想要查找具有特定状态或参数的服务,请使用 Where-Object cmdlet。例如,让我们获取正在运行的服务列表:
Get-Service | Where-Object {$_.status -eq 'running'}
要显示手动启动类型的服务,请运行以下命令:
Get-Service | Where-Object {$_.starttype -eq 'Manual'}
使用以下 PowerShell 脚本检查当前计算机上是否存在特定的 Windows 服务:
if (Get-Service "ServiceTest" -ErrorAction SilentlyContinue)
{
Write-host "ServiceTest exists"
}
如何使用 PowerShell 停止、启动或重新启动服务?
您可以使用Stop-Service cmdlet 停止服务。要停止后台处理程序,请运行以下命令:
Stop-Service -Name spooler
Stop-Service cmdlet 执行后不会显示任何内容。要查看结果,请使用-PassThru 参数。
请注意,并非所有服务都可以停止。如果有任何依赖服务,您将看到错误:
Cannot stop service because it has dependent services. It can only be stopped if force flag set.
要强制停止服务,请使用-Force 参数。您应该记住,所有依赖服务也将停止:
Stop-Service samss -Force -Passthru
如果指定的服务(位、假脱机程序)处于“正在运行”状态,以下命令将停止它们:
get-service bits,spooler | where {$_.status -eq 'running'} | stop-service -passthru
有时服务会挂在“Stopping”状态,必须强行终止。
Start-Service cmdlet 启动已停止的服务:
Start-Service -Name spooler -PassThru
如果某个服务的任何依赖服务停止,则该服务将不会启动。要查找并启动它们,请使用以下 PowerShell 语句:
get-service samss | Foreach { start-service $_.name -passthru; start-service $_.DependentServices -passthru}
如果服务支持此状态,Suspend-Servce cmdlet 可以暂停服务。要了解是否可以暂停服务,请使用带有 CanPauseAndContinue 属性的 Get-Service cmdlet。
Get-Service samss | Format-List name, canpauseandcontinue
要显示可能暂停的所有服务的列表,请运行以下命令:
Get-Service | Where-Object {$_.canpauseandcontinue -eq "True"}
让我们暂停 SQLBrowser 服务:
Suspend-Service -Name SQLBrowser
要恢复暂停的服务,请使用 Resume-Service cmdlet:
Resume-Service -Name SQLBrowser
以下命令将恢复所有暂停的服务:
get-service | where-object {$_.Status -eq "Paused"} | resume-service
Restart-Service cmdlet 将重新启动服务:
Restart-Service -Name spooler
此命令启动计算机上所有已停止的网络服务:
get-service net* | where-object {$_.Status -eq "Stopped"} | restart-service
这些命令没有 -ComputerName 参数,但您可以使用 Invoke-Command cmdlet 或管道在远程计算机上运行它们。
例如,要重新启动远程计算机 ny-prnt1 上的打印后台处理程序,请运行以下命令:
Get-Service Spooler -ComputerName ny-prnt1 | Start-Service
默认情况下,只有管理员可以启动/停止 Windows 服务,但您可以授予非管理员用户对特定服务的启动/停止/重新启动权限。
使用 Set-Service 更改服务设置
Set-Service cmdlet 允许您更改本地或远程计算机上服务的任何参数或设置。由于服务的状态是一个属性,因此您可以使用此 cmdlet 来启动、停止或挂起服务。 Set-Service 具有-StartupType 参数,允许更改服务的启动类型。
让我们将 Spooler 启动类型更改为自动:
Set-Service spooler -startuptype automatic -passthru
您可以设置手动启动类型:
Set-Service spooler -startuptype manual -passthru
如何通过PowerShell创建或删除Windows服务?
New-Service - 是用于在 Windows 中创建新服务的 cmdlet。指定新服务的名称和可执行文件(您甚至可以将 PowerShell 脚本作为 Windows 服务运行)。
让我们创建一个名为 TestSvc 的新服务:
new-service -name TestSvc -binaryPathName "C:\WINDOWS\System32\svchost.exe -k netsvcs"
使用 Get-WmiObject cmdlet 获取有关服务的启动类型和描述的信息。
get-wmiobject win32_service -filter "name='testservice'"
您可以使用以下命令更改新服务的设置:
Set-Service -Name TestSvc -Description ‘My Service’ -StartupType Manual
要删除服务,请运行以下命令:
(Get-WmiObject win32_service -Filter ″name=′TestSvc′″).delete()
更改运行 Windows 服务的用户帐户
您可以使用 PowerShell 更改用于启动服务的用户帐户。获取用于启动 TestSvc 的帐户名称:
get-wmiobject win32_service -filter "name='TestSvc'" | Select name,startname
要更改 Windows 服务的用户名和密码,请运行以下命令:
$svc = get-wmiobject win32_service -filter "name='TestSvc'"
$svc.GetMethodParameters("change")
将显示 Change() 方法参数的列表。计算 StartName 和 StartPassword 参数的位置:它们分别位于第 20 和 21st 位置。
$svc | Invoke-WmiMethod -Name Change -ArgumentList @ ($null,$null,$null,$null,$null,$null,$null, $null,$null,$null,$null,$null,$null,$null,$null,$null, $null,$null,$null,"Administrator","!123Pa$$w0rd")
或者您可以输入 gMSA 帐户的名称(本例中不指定帐户密码)。
如您所见,PowerShell 可以轻松管理 Windows 服务。您可以创建、停止、启动或恢复服务,以及更改其属性。大多数 cmdlet 允许管理远程计算机上的服务。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[短剧合集] 2025年06月2日 精选+付费短剧推荐39部
[软件合集] 25年6月2日 精选软件18个
[软件合集] 25年6月1日 精选软件15个
[短剧合集] 2025年06月1日 精选+付费短剧推荐59部
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag