如何使用PowerShell管理Windows服务
【TechTarget中国原创】 作为一名系统管理员,最常见的任务之一就是学会管理Windows服务,这是保证Windows服务器和客户端正常运行的重要内容。 许多操作系统和应用程序都依赖于这些服务。 Microsoft Management Console窗口是我们非常熟悉的一款Windows服务,通过该服务,管理员可以在本地或者远程计算机上操控服务。但是,一时间还不能改变几十台甚至几百台机器。 此时,PowerShell就派上用场了。 PowerShell应用几个本地Cmdlet来管理Windows服务。 Get-Command * Service* -Module Microsoft.PowerShell.Management 图1. 几个本地Cmdlets管理员可以使用该命令管理Windows服务 这些Cmdlets可以在任何一个服务上执行许多命令。 Get-Service是一种非常常见的Cmdlets。最基础的层面,无需任何参数,Get-Service便可以在本地计算机上显示所有服务,但是,大多数管理员需要通过远程计算机来查询服务。使用ComputerName参数便可以满足以上需求。 Get-Service –ComputerName CLIENT1 图2. 没有使用任何参数,Get-Service Cmdlets在一台本地计算机上显示了一些服务内容 使用Get-Service可以显示出远程客户端上所有服务内容。 如何处理服务设备 如果你想要查看多个计算机上的服务怎么办?也许,你曾将收到过许多一系列文本形式的计算机名称,这些计算机名称通过以下几种途径得到的:Active Directory、一些业务应用程序、客户管理系统以及定制数据库。PowerShell中有一款叫做Get-Content 的Cmdlet,通过使用Foreach循环方法,它可以读取每一个计算机名称。这样,我们运行Get- Service就可以获取到这些计算机名称了。 Get-Content C:\Computers.txt | foreach {Get-Service –ComputerName $_} 使用PowerShell更改计算机服务 让我们一起对这些服务进行一些深入研究,并做出一些更改。通常的做法是,如果运行出错或者应用发生变化,那么就需要重新启动服务。例如,我们曾重启过列表中所陈列的计算机上Application Layer Gateway(简称ALG)服务。指定用于查找的特定服务,然后,将该服务引入 Restart-Service中,实现这种操作问题不大。 Get-Content C:\Computers.txt | foreach {Get-Service –ComputerName $_ -Name ALG | Restart-Service } 如果服务出现停止运行的情况,Restart-Service将会自动重启该服务。 Set-Service Cmdlet进一步掌控Windows服务 Set-Service是另外一种Cmdlet,对Windows服务许多属性进行了更改,例如,服务启动模式的配置方式。我们可以这样定义,当操作系统启动时,无论服务是否启动都可以手动启动或者禁用。Set-Service中有一个StartupType参数,可以更改其属性。 下面的这段命令语句设置了ALG服务的启动类型,使其无法在计算机C盘.txt文件中运行。 Get-Content C:\Computers.txt | foreach {Get-Service –ComputerName $_ -Name ALG | Set-Service –StartupType Disabled } 合并PowerShell和WMI获取更多功能 如下有几个错误的服务命令,这些命令既没有提供足够的信息,也没有成功的修改目标属性。我们可以使用 Windows Management Instrumentation (简称WMI)解决以上问题。WMI中包含Win32_Service,可以通过使用Get-CimInstance或者Get-WmiObject实现调用操作。 Get-CimInstance –ComputerName client1 –ClassName Win32_Service 图3. 集合使用PowerShell和WMI Win32_Service可以获取到计算机上更多关于Windows服务的信息 当管理员想要通过WMI查询服务时,使用带星号标记的Property参数,就可以获取到更多关于服务的信息了。 Get-CimInstance –ComputerName CLIENT1 –ClassName Win32_Service –Property * 图4. Win32_Service中的Property参数可以提供更多关于Windows服务的细节信息 深入细节 要想更深入研究错误的服务命令,你可以参考WMI服务实例对象。 Get-WmiObject –ComputerName CLIENT1 –Class Win32_Service | Get-Member –MemberType Method 图5. WMI服务实例对象使用的测试方法 利用调用技术,可以在服务对象中执行以上这些方法。 Get-WmiObject –ComputerName CLIENT1 –Class Win32_Service –Filter "Name='ALG'" | foreach {$_.StopService()} 通过以上的例子可以看出来,我通过使用Filter参数就可以将ALG服务单独选择出来。我将该服务连接到ForEach-Object中,并调用StopService,反过来,可以停止服务运行。
TechTarget中国原创内容,原文链接: http://www.searchsv.com.cn/showcontent_92334.htm
© TechTarget中国:http://www.techtarget.com.cn
如何使用PowerShell管理Windows服务的更多相关文章
- 玩转Windows服务系列——命令行管理Windows服务
说到Windows服务的管理就不得不说通过命令行的方式管理Windows服务,因为无论是系统管理员,还是通过编程的方式调用cmd命令,命令行都是非常方便以及强大的工具. 接下来就看一下如何通过cmd命 ...
- 玩转Windows服务系列——命令行管理Windows服务
原文:玩转Windows服务系列——命令行管理Windows服务 说到Windows服务的管理就不得不说通过命令行的方式管理Windows服务,因为无论是系统管理员,还是通过编程的方式调用cmd命令, ...
- [转]玩转Windows服务系列——命令行管理Windows服务
本文转自:http://www.cnblogs.com/hbccdf/p/managewindowsservicewithcmd.html 说到Windows服务的管理就不得不说通过命令行的方式管理W ...
- Windows Server 2016-命令行方式管理Windows服务
Microsoft Windows 服务(过去称为 NT 服务)允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序. 这些服务可在计算机启动时自动启动,可以暂停和重启,并且不显 ...
- 第十三篇 一个安装、管理windows服务的桌面程序
在网上看到一个修改程序入口的程序去把windows 服务修改成控制台的程序,然后利用控制台的程序把服务安装和管理,也想起自己原来也写了一个对windows 报务管理的程序,不过是winform的. ...
- python管理Windows服务
上一篇介绍了pywin32模块,它的win32service子模块提供了对服务管理API的包装,相关API如下: ChangeServiceConfig ChangeServiceConfig2 Cl ...
- 使用Topshelf管理Windows服务
目的:以控制台方式开发Windows服务程序,调试部署方便. https://www.cnblogs.com/itjeff/p/8316244.html https://www.cnblogs.com ...
- C#管理windows服务
.NET Framework中提供了现成的类库可以很方便的实现对windows服务的安装.卸载.启动.停止.获取运行状态等功能.这些类都在System.ServiceProcess命名空间下. 安装w ...
- 使用 Windows PowerShell 管理Windows Azure映像
你可以使用 Azure PowerShell 模块中的 cmdlet 管理可供你的 Azure 订阅使用的映像.这包括 Azure 提供的映像以及你上载的映像.对于某些映像任务,你还可以使用 Azur ...
随机推荐
- 域名带与不带www的区别
首先我们来说下为什么会产生带www与不带www的两种域名. 不带www的域名为顶级域名或一级域名,如qiankoo.com.带www的为二级域名,如www.qiankoo.com. 在购买域名时,域名 ...
- iOS JS 交互之利用系统JSContext实现 JS调用OC方法以及Objective-C调用JavaScript方法
ios js 交互分为两块: 1.oc调用js 这一块实现起来比较简单, 我的项目中加载的是本地的html,js,css,需要注意的是当你向工程中拖入这些文件时,选择拷贝到工程中,(拖入的文件夹是蓝色 ...
- uLua学习之调用Lua函数(五)
前言 在我开始这个系列的第一篇文章中,我就提到了Lua脚本用来实现宿主脚本的配置性和扩展性.上节说到的调用外部Lua脚本就对应了它的两大特性之一的配置性,那么另一大特性如何来体现呢?这就要说我们今天的 ...
- C# sftp通过秘钥上传下载
一.适用场景 我们平时习惯了使用ftp来上传下载文件,尤其是很多Linux环境下,我们一般都会通过第三方的SSH工具连接到Linux,但是当我们需要传输文件到Linux服务器当中,很多人习惯用ftp来 ...
- 查看mysql表和数据库的大小
转自:http://xiaosu.blog.51cto.com/2914416/687835 1.查看数据库的大小 use 数据库名SELECT sum(DATA_LENGTH)+sum(INDEX_ ...
- NopCommerce 3.80框架研究(二) MVC 表示层与数据验证
表示层框架结构 /Views/Shared/_Root.Head.cshtml /Views/Shared/_Root.cshtml /Views/Shared/_ColumnsOne.cshtml ...
- pta 编程题8 Tree Traversals Again
其它pta数据结构编程题请参见:pta 这次的作业考察的是树的遍历. 题目的输入通过栈的pop给出了树的中序遍历的顺序.根据push和pop的顺序构造树的方法为:定义一个变量father来确定父节点, ...
- linux 命令——33 df(转)
linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [文件] 2.命 ...
- 快速排序算法思路分析和C++源代码(递归和非递归)
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试喜欢考这个. 快速排序是C.R.A.Hoar ...
- [C++]#if !defined 的作用
当你用VC的菜单新增一个类,你会发现自动生成的代码总是类似下面的样子: #if !defined(AFX_XXXX__INCLUDED_) #define AFX_XXXX__INCLUDED_ 具 ...