【发布时间】:2018-03-29 08:26:41
【问题描述】:
我编写了一个 PowerShell 脚本来监视特定文件夹的更改,例如:创建/删除/重命名项目。
然后它将所有这些操作写入日志文件。它工作正常。唯一的问题是,它仅在控制台打开时才有效。
每当我尝试使用批处理文件运行它时,它似乎都不起作用(写入日志文件)。我正在尝试将其作为后台进程运行。
这是监控功能:
function CreateMonitor($folder)
{
$folder = 'C:\Users\...\Monitored Folder\' # Enter the root path you want to monitor.
$filter = '*.*' # You can enter a wildcard filter here.
$fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $false;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'}
Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action {
$name = $Event.SourceEventArgs.Name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$name' was $changeType at $timeStamp" -fore green
Out-File -FilePath C:\Users\...\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"}
}
这是批处理文件的内容:
powershell.exe -windowstyle hidden -file C:\Users\....ps1
如何让它在后台/作为进程运行?
【问题讨论】:
-
不要使用写主机。
标签: powershell process monitor