导出后,我需要帮助来完成此脚本以及其他详细信息。我需要做的是将其运行到多台计算机上并导出到CSV。我想在第一栏中输入计算机名称,然后在第二栏中输入包含错误的字符串。我想将CSV导出到\\servername\folder\...
。
Get-Content "$env:windir\Panther\setuperr.log" | Where-Object {
$_.Contains("Can't retrieve group.........")
} | Select-Object -Last 1
答案 0 :(得分:0)
您可以通过PowerShell remoting执行此操作。由于您没有发布有关要查询的计算机的任何信息,因此我假设以下内容:
如果是这样,则可以通过Invoke-Command
或-ComputerName
参数集通过组合使用-Session
。这是Invoke-Command
documentation。简单的例子:
$computerNames = "pc1.domain", "pc2.domain"
$results = @()
foreach ($computerName in $computerNames) {
$session = New-PSSession -ComputerName $computerName -Credential (Get-Credential)
$result = Invoke-Command -Session $session -ScriptBlock {
# Lets assume that this code from OP is correct
$foundRow = Get-Content "$env:windir\Panther\setuperr.log" | Where-Object {
$_.Contains("Can't retrieve group.........") } | Select-Object -Last 1
# Return custom object to caller
[PSCustomObject]@{
FoundRow = $foundRow
ComputerName = $env:COMPUTERNAME
}
}
$results += $result
}
$results
是一个对象数组,其中每个对象都包含一个FoundRow
和ComputerName
属性。该对象通过管道传递到Export-Csv
(docu)cmdlet:
$results | Export-Csv -NoTypeInformation -Path C:\temp\your.csv
如果不想每次都键入凭据,则可以创建一个包含计算机名和加密凭据的CSV文件。该link说明了如何以加密方式存储凭据。要遍历数据,可以使用Get-Content
和ConvertFrom-Csv
cmdlet。
希望有帮助。