我必须查询400多个服务器以找到已安装的业务应用程序/服务,不需要所有默认服务。
我从默认系统中获得了服务列表,并将它们放在 csv 文件中,但似乎不想排除它们。这是我到目前为止的内容:
{$excludelist = "c:\powershell\service_name.csv"
get-service -ComputerName servername -Exclude $excludelist
| Out-File C:\PowerShell\services.txt}
答案 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
在这种情况下,它是一个字符串数组(或单个字符串)。