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