Powershell get-server-排除列表中的那些

时间:2018-08-20 20:50:03

标签: powershell

我必须查询400多个服务器以找到已安装的业务应用程序/服务,不需要所有默认服务。

我从默认系统中获得了服务列表,并将它们放在 csv 文件中,但似乎不想排除它们。这是我到目前为止的内容:

{$excludelist = "c:\powershell\service_name.csv"
get-service -ComputerName servername -Exclude $excludelist
| Out-File C:\PowerShell\services.txt}

2 个答案:

答案 0 :(得分:0)

我自己尝试了此方法之后…Ifound认为exclude属性需要服务的名称:

get-service -Exclude (get-service w*).name

是不是您获得的不仅仅是名字?

答案 1 :(得分:0)

这取决于CSV的结构。如果仅是名称列表,则可以使用Get-Content,如:

Get-Content -Path $Excludelist

get-service -ComputerName servername -Exclude (Get-Content -Path $Excludelist) | Out-File C:\PowerShell\services.txt

如果CSV实际上是结构化CSV,则可以使用Import-CSV,但是属性名称取决于结构。

get-service -ComputerName servername -Exclude (Import-CSV -Path $Excludelist).name | Out-File C:\PowerShell\services.txt

使用get-help可以了解参数需要的数据类型。

Get-Help Get-Service -Parameter ComputerName
-ComputerName <String[]>
    Gets the services running on the specified computers. The default is the local computer.

    Type the NetBIOS name, an IP address, or a fully qualified domain name of a remote computer. To specify the local
    computer, type the computer name, a dot (.), or "localhost".

    This parameter does not rely on Windows PowerShell remoting. You can use the ComputerName parameter of Get-Service
    even if your computer is not configured to run remote commands.

    Required?                    false
    Position?                    named
    Default value                Local computer
    Accept pipeline input?       true (ByPropertyName)
    Accept wildcard characters?  false

在这种情况下,它是一个字符串数组(或单个字符串)。