我正在尝试编写一个 PS 脚本来检查包含已擦除系统日志文件的网络文件夹,当运行擦除时,输出包含系统序列号,作为日志文件名称的一部分,因此无需滚动或搜索网络手动共享 我需要一个脚本来检查网络共享中 CSV 中的一系列序列号。
目前我正在尝试这个,但失败了:
$cred = Get-Credential
$sourceFolder = '\\domain\share\share\'
$data = Import-Csv -Path 'C:\folder\Serials.csv'
foreach ($item in $data) {
$search = Get-ChildItem -Path $sourceFolder -Filter $item.Serial -File -Recurse -ErrorAction SilentlyContinue |
Select-Object -First 1
$item | Add-Member -MemberType NoteProperty -Name Present -Value (@($search).Count -gt 0)
}
$data | Export-Csv -Path 'C:\folder\results.csv' -NoTypeInformation
我已经尝试了上面列出的脚本,并希望列出的连续剧如果存在的话,会显示在它们旁边。
鉴于您的代码不存在概念问题,根据您的评论,您的问题可能只需要耐心等待处理即可完成:
驱动器上,
循环中的每个Get-ChildItem -Filter ... -Recurse ...
调用可能需要很长时间才能完成。
foreach
数组中的所有
对象,因此可能需要很长时间才能到达
$data
调用并生成文件输出。
以下代码的 PowerShell 惯用重新表述使用了流输出到目标 CSV 文件,使用简单的 Export-Csv
命令在每当发出新的输出对象时发出信号(导致输出文件一次填充一行):
Write-Host
因此,即使total运行时间很大,您也应该在终端中看到“徘徊的点”,每个点代表一个正在发出/导出的新对象。