使用PowerShell脚本从远程计算机下载日志文件

时间:2017-06-26 21:37:26

标签: powershell csv import-csv

我有一个包含200多个以逗号分隔的远程计算机名称的文本文件。每台机器都有日志文件,我想下载到我的机器上。如果机器无法访问(离线),我希望脚本捕获错误并将其写入单独的failures.log文件。

我已经阅读了几个线程并尝试了多种不同的方法,但似乎无法让脚本正常工作。这是我最近的尝试:

$csv = Import-Csv "C:\MasterTestGroup.txt"

foreach($item in $csv) {
    try {
        Copy-Item -Path ("\\" + $item + "\c$\Windows\AppLogs\LoginScript_Policy\ClearCredMgrRUN.log") -Destination ("C:\ClearCredMgr_Logs\" + $item + "_ClearCredMgr.log")
    } catch {
        $_ | Out-File "C:\ClearCredMgr_Logs\Failures\failures.log" -Append
    }
}

这是MasterTestGroup.txt文件的一个片段:

486937CPTR,487060CPTR,490028CPTR,499037CPTR,502537CPTR,506342CPTR,507627CPTR,507670CPTR,...

1 个答案:

答案 0 :(得分:1)

问题是您没有合适的CSV文件。您要做的只是将其作为文本文件读取,并将其拆分为逗号。这应该做你想要的:

$rawtext = Get-Content "C:\MasterTestGroup.txt"
$csv = $rawtext -split ','

foreach($item in $csv) {
    try {
        Copy-Item -Path ("\\" + $item + "\c$\Windows\AppLogs\LoginScript_Policy\ClearCredMgrRUN.log") -Destination ("C:\ClearCredMgr_Logs\" + $item + "_ClearCredMgr.log")
    } catch {
        $_ | Out-File "C:\ClearCredMgr_Logs\Failures\failures.log" -Append
    }
}