Запускать скрипты в Powershell ISE из командного файла - PullRequest
0 голосов
/ 29 октября 2018

Я выполняю свой командный файл, который открывает Powershell ISE и загружает скрипт, но ничего не делает ... Мне все равно нужно было бы запустить его вручную. Я что-то здесь упускаю?

Пакетный файл для вызова Powershell:

Powershell_ise.exe C:\Users\Desktop\myscript.ps1

Код, используемый для отслеживания изменений файла в папке и для отправки по электронной почте:

Function Register-Watcher {
    param ($folder)
    $filter = "logfile.txt" #all files
    $watcher = New-Object IO.FileSystemWatcher $folder, $filter -Property @{ 
        IncludeSubdirectories = $false
        EnableRaisingEvents = $true
    }

    $changeAction = [scriptblock]::Create('
        # This is the code which will be executed every time a file change is detected
        $path = $Event.SourceEventArgs.FullPath
        $name = $Event.SourceEventArgs.Name
        $changeType = $Event.SourceEventArgs.ChangeType
        $timeStamp = $Event.TimeGenerated 
        Write-Host "The file $name was $changeType at $timeStamp"
        Send-email
    ')

    Register-ObjectEvent $Watcher "Changed" -Action $changeAction
}

Function Send-email{

    $SMTPServer = "smtp.gmail.com"
    $SMTPPort = "587"
    $Username = "*****@gmail.com"
    $Password = "*******"

    $to = "*****@gmail.com"
    $subject = "Email Subject"
    $body = "Insert body text here"
    $attachment = "C:\Users\Desktop\AccountMapping.sdl"

    $message = New-Object System.Net.Mail.MailMessage
    $message.subject = $subject
    $message.body = $body
    $message.to.add($to)
    $message.from = $username
    $message.attachments.add($attachment)

    $smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort);
    $smtp.EnableSSL = $true
    $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password);
    $smtp.send($message)
    Write-Host "Mail Sent"
}

 Register-Watcher "C:\Users\Desktop"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...