-1

我有一个包含 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,...

4

1 回答 1

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
    }
}
于 2017-06-26T21:46:45.447 回答