다음 powershell 스크립트를 사용하여 IBM iSeries 공유 폴더에있는 의 새 파일을 모니터하고 있습니다.iSeries 공유에서 Powershell FileSystemWatcher 사용
# variables
#$folder = "\\10.10.0.120\transform\BE\FORM"
#$folder = "C:\Users\Administrator.ALI\Desktop\AS400"
#$folder = "\\nb091002\Temp"
$folder = "I:\"
$filter = "*.txt"
$aswform = "C:\ASWFORM\aswform.exe"
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $folder
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $false
$watcher.NotifyFilter = [System.IO.NotifyFilters]::LastWrite -bor [System.IO.NotifyFilters]::FileName
while($TRUE){
$result = $watcher.WaitForChanged([System.IO.WatcherChangeTypes]::Changed -bor [System.IO.WatcherChangeTypes]::Renamed -bOr [System.IO.WatcherChangeTypes]::Created, 2000);
if($result.TimedOut){
continue;
}
Write-Host $result.Name
#$aswform $folder
}
로컬 폴더 또는 도메인 공유에서 제대로 작동하는 것 같습니다.
iSeries 공유 폴더를 네트워크 드라이브에 매핑하려고 시도했지만 작동하지 않습니다.
이상한 것은 내가 완벽하게 윈도우 내에서 공유 폴더에 액세스 할 수 있습니다 .... 나는 그것을 자격 증명으로 뭔가를 가지고 확신
(10.10.0.120는 AS400)입니다.
누구에게도 단서 또는 팁이 있습니까?
추신 : 작은 세부 사항, 나는이 트리거
powershell -NoExit -WindowStyle Hidden -File "C:\ASWFORM\watcher.ps1"
와 함께 작업 sheduler 통해이 스크립트를 실행 할 수 있습니다하지만 먼저 내가 수동으로 스크립트를 실행할 때 작동해야합니다!
좋아, 나는 궁금하다. 이것을 모니터링하려는 목적은 무엇인가? – WarrenT
인쇄물을 출력하기 위해 파일이이 디렉토리로 출력되고 있으며이 파일을 xml로 변환해야합니다. 그것은 투명한 과정이어야합니다. – grmbl
왜 Windows 서버에있는 파일 대신 해당 디렉토리에 파일을 작성합니까? 파일이 실제 Windows 시스템에 있기 때문에 FileSystemWatcher를 크게 도와야합니다. – user2338816