簡體   English   中英

ps1在ise中起作用,但在powershell或調度任務中不起作用

[英]ps1 works in ise but not in powershell or schedule task

我現在有點瘋了。 我有一個可以在ise中完美工作的ps1,但是當我使用Powershell或在計划任務中執行相同的腳本時,該ps1無法正常工作。 我認為它只運行一次,然后關閉窗口。 誰能幫我嗎?

這是我試圖在自動任務中使用的腳本:

$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)      
}

嘗試以最高特權運行任務。 這可能是問題所在。 另一個可能的解決方案是:嘗試在計划中添加參數:“ powershell.exe -noexit c:\\ xxxx.ps1”。

圖片顯示了復選框。 最高特權

此圖片顯示“參數”字段“ 參數框”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM