次の PowerShell スクリプトを使用して、IBM iSeries 共有フォルダーに入ってくる新しいファイルを監視しています。
# 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 です)
資格情報を使用して何かを行う必要があると確信しています...
奇妙なことは、Windows内から共有フォルダーに完全にアクセスできることです。
誰も私に手がかりやヒントを持っていますか?
PS: 少し詳しく説明します。このトリガーを使用して、タスク シェデュラーを介してこのスクリプトを実行します。
powershell -NoExit -WindowStyle Hidden -File "C:\ASWFORM\watcher.ps1"
しかし、最初に、スクリプトを手動で実行するときに機能する必要があります!