您的位置:首页 > 运维架构 > Shell

PowerShell Function之获取service信息

2015-11-08 17:55 543 查看
PowerShell Function之获取service信息,很自然会想到这次用到的class是Win32_Service啦~~~~通过前面两篇function的文章,相信大家都应该属性套路了,知道怎么写这个语句了。那么,我们究竟需要获取service的什么信息呢?

正在运行的?已经停止的?

其实都不是,我们比较关心的是应该运行的且已经停止的服务有哪些。那么,哪些才是应该运行的呢?默认来讲,启动模式是自动运行的,就应该是需要运行的。通过运行Get-WmiObject -class Win32_Service看看是否就有我们想要的信息了。如下截图:



很好,的确就有了StartMode和State。那么命令很快就可以写出来了,如下:



除了这两个信息,可能我们还还想知道这个异常的服务是哪个登录账号登录的,那么还是需要ExpandProperty的属性哦。

因此,整个脚本如下:

function Get-InfoBadService {
[CmdletBinding()]
param(
[Parameter(Mandatory=$True)][string]$ComputerName
)
$svcs = Get-WmiObject -class Win32_Service -ComputerName $ComputerName -Filter "StartMode='Auto' AND State<>'Running'"
foreach ($svc in $svcs) {
$props = @{'ServiceName'=$svc.name;
'LogonAccount'=$svc.startname;
'DisplayName'=$svc.displayname}
New-Object -TypeName PSObject -Property $props
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: