用于检查网络共享中日志文件内容的 PowerShell 脚本

问题描述 投票:0回答:1

我正在尝试编写一个 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

我已经尝试了上面列出的脚本,并希望列出的连续剧如果存在的话,会显示在它们旁边。

powershell networking share logfile
1个回答
0
投票

鉴于您的代码不存在概念问题,根据您的评论,您的问题可能只需要耐心等待处理即可完成

    如果目标目录树很大,特别是在
  • network

    驱动器上,

    循环中的每个 
    Get-ChildItem -Filter ... -Recurse ...
    调用可能需要很长时间才能完成。

  • 由于您正在修改
  • foreach

    数组中的所有

    对象,因此可能需要很长时间才能到达
    $data调用并生成文件输出。
    
    

    以下代码的 PowerShell 惯用重新表述使用了
  • 单管道
,并通过

输出到目标 CSV 文件,使用简单的 Export-Csv 命令在每当发出新的输出对象时发出信号(导致输出文件一次填充一行):

Write-Host

因此,即使
total
运行时间很大,您也应该在终端中看到“徘徊的点”,每个点代表一个正在发出/导出的新对象。

© www.soinside.com 2019 - 2024. All rights reserved.