必须有更好的方法
$server = (Get-ADComputer -Filter * -Properties *).name
foreach ($s in $server)
{
Get-WmiObject Win32_Service -filter 'STARTNAME LIKE "%serviceaccount%"' -computername $s
}
我想在域中的所有服务器上搜索服务帐户。上面的方法可以满足我的需求,但它不会返回在哪个服务器上找到该服务帐户。预先感谢。
答案 0 :(得分:1)
这就是我使用G-WO
查找可以为您提供所需信息的对象属性的含义。 [咧嘴]
可以通过给LocalSystem
调用系统列表来大大加快这一步。我现在还没有准备好编写代码。懒... [脸红]
它做什么...
NetworkService
和Get-ADComputer
帐户。 [咧嘴] G-WO
。请确保任一在循环中使用属性名称,或者使您的查询仅返回实际名称 value 。[PSCustomObect]
获取使用目标帐户的服务$Result
$TargetAccount = 'LocalSystem'
$ComputerList = @(
'LocalHost'
'127.0.0.1'
$env:COMPUTERNAME
)
$Result = foreach ($CL_Item in $ComputerList)
{
# i didn't want a gazillion services, so this uses array notation to grab the 1st item
# if you want all the items, remove the trailing "[0]"
$GWMI_Result = @(Get-WmiObject -Class Win32_Service -Filter "STARTNAME LIKE '%$TargetAccount%'" -ComputerName $CL_Item)[0]
[PSCustomObject]@{
ComputerName = $GWMI_Result.SystemName
AccountName = $GWMI_Result.StartName
ServiceName = $GWMI_Result.Name
}
}
$Result
集合代码...
ComputerName AccountName ServiceName
------------ ----------- -----------
MySysName LocalSystem AMD External Events Utility
MySysName LocalSystem AMD External Events Utility
MySysName LocalSystem AMD External Events Utility
输出...
"{Path}":"Report/xxx/Finalized_Reports/2014/2014_01/"