【发布时间】:2020-08-26 15:35:47
【问题描述】:
我使用以下 PowerShell 脚本监控新创建文件的映射驱动器并将这些更改写入 csv 文件。
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = 'Z:\'
$action =
{
$path = $event.SourceEventArgs.FullPath
$changetype = $event.SourceEventArgs.ChangeType
Write-output "$path was $changetype at $(get-date)" >> C:\temp\HostFileList.csv
}
Register-ObjectEvent $watcher 'Created' -Action $action
Get-EventSubscriber
while($true){ sleep -seconds 1 }
我运行此脚本的计算机被多个用户大量使用。每个用户将使用自己的配置文件登录计算机,单击桌面批处理文件以映射网络驱动器文件夹并将他们的工作保存在那里。我的脚本在本地组策略中设置为在启动时运行。据我所知,脚本在后台运行并监听映射的驱动器文件夹没有任何问题。我的问题是脚本拒绝将输出文件写入指定位置。如果我手动运行脚本,它会很好地创建输出文件。此外,当我在启用本地 GP 启动脚本的情况下手动运行脚本时,我的文件中有两个条目,这让我相信脚本在本地 GP 上运行良好。谁能告诉我为什么我的脚本在我手动运行时会创建输出文件,而不是在启动时运行时?非常感谢任何反馈。
【问题讨论】:
标签: powershell