[英]Creating a watch event using powershell at logon
在登录时,任务计划程序将运行BAT文件。 BAT文件运行以下命令:powershell.exe -ExecutionPolicy Bypass-命令“ C:\\ BITS \\ PSScript \\ MonitorSO.ps1” monitorsSO.ps1脚本删除一个文件(该文件已删除,因此该脚本正在运行),然后创建用户事件监视文件夹。 该事件不起作用。 它没有列出,当我将文件放入目录中时,不会触发该事件。
我尝试直接在登录时运行脚本,但是从BAT文件运行时似乎运行得更好。
Unregister-Event FileChanged
if (Test-Path C:\BITSOP\SALNEW11AL.PDF) { Remove-Item C:\BITSOP\SALNEW11AL.PDF }
$folder = 'C:\BITSOP' # Enter the root path you want to monitor.
$filter = 'SALNEW11AL.pdf' # 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 Changed -SourceIdentifier FileChanged -Action {
$name = $Event.SourceEventArgs.Name
$oldname = "C:\BITSOP\" + $name
$changeType = $Event.SourceEventArgs.ChangeType
$timeStamp = $Event.TimeGenerated
Write-Host "The file '$oldname' was $changeType at $timeStamp" -fore white
$newhandle = "C:\BITSOP\BITSOP" + [datetime]::now.ToString('_yyyyMMdd_hhmmssfff')
$newname = $newhandle + ".PDF"
Rename-Item $oldname $newname
Start-Process java.exe -Wait -NoNewWindow -ArgumentList "-jar T:\BITS\Javadev\SOPrinter\dist\SOPrinter.jar $newhandle"
}
显然,脚本在删除项正在运行时正在运行,但注册事件却没有。 是否可以注册事件使其始终运行? 它可以在我家里的独立PC上很好地运行,但是当我将其带入目标域(即域)时,似乎不再注册该事件。 我猜想这与事件注册的范围有关,但是我找不到任何告诉我如何控制该事件的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.