ps1 работает в ise, но не в powershell или расписании - PullRequest
0 голосов
/ 16 октября 2018

Я сейчас немного сумасшедший.У меня есть этот PS1, который прекрасно работает в ISE, но когда я выполняю тот же сценарий с PowerShell или в расписании задачи не работает.Я думаю, что это работает только один раз, после этого окно закрывается.Кто-нибудь может мне помочь, пожалуйста?

Это сценарий, который я пытаюсь использовать в автоматическом задании:

$MonitorFolder = "\\sharedfolder"
$MonitorStopFile = "monitor.die"
$smtpServer = "xxx"
$smtpFrom = "xxx"
$smtpTo = "xxx"
#$smtpSubject = "Asignacion tarea LDA"
$smtpSubject = "Asignacion tarea LDA $($MonitorFolder)."
$smtpPort = "25"

$mailparam =@{
    To = $smtpTo
    From = $smtpFrom
    Subject = $smtpSubject
    Body = $smtpBody
    SmtpServer = $smtpServer
    Port = $smtpPort
    #Credential = $smtpCred
}

$SourceID = "MonitorFiles"
$IncomingFiles = Get-ChildItem $MonitorFolder

$smtp = New-Object -TypeName "Net.Mail.SmtpClient" -ArgumentList $smtpServer

$watcher = New-Object System.IO.FileSystemWatcher $MonitorFolder
#Files only. Default is files + directory
$watcher.NotifyFilter = [System.IO.NotifyFilters]'FileName,LastWrite'

$newFileSubscription = Register-ObjectEvent -InputObject $watcher -EventName Created -SourceIdentifier NewFileCreated -Action { 
Write-Host "New file named '$($Event.SourceEventArgs.Name)' arrived in $($MonitorFolder)"

$smtpBody += "`n[$(Get-Date -Format HH:mm:ss)]`tNew file named '$($Event.SourceEventArgs.Name)' arrived in $($MonitorFolder)"

if($Event.SourceEventArgs.Name -eq $MonitorStopFile) {
    Write-Host "Monitoring stopped"
    #Stop monitoring
    Unregister-Event -SubscriptionId $newFileSubscription.Id
    #Dispose FileSystemWatcher
    $watcher.Dispose()
}
$smtp.Send($smtpFrom, $smtpTo, $smtpSubject, $smtpBody)      
}

1 Ответ

0 голосов
/ 16 октября 2018

Попробуйте запустить Задачу с самыми высокими привилегиями.Это может быть проблемой.Другое возможное решение может быть следующим: Попытайтесь добавить Аргумент: "powershell.exe -noexit c: \ xxxx.ps1" в Расписание.

На рисунках изображен флажок. Высшие привилегии

На этом рисунке показано поле аргумента Поле аргумента

...