Powershell: не удается отправить сообщение в Slack с работающим сценарием

Я совершенно новичок в Powershell, но мне нужно было решение для всех окон для бота Slack, который отслеживает локальные папки.

Я могу использовать CLI для пост провисит успешно следующие две команды:

$postSlackMessage = @{token="";channel="#general";text="Test message";username="Bot User"}

Invoke-RestMethod -Uri https://slack.com/api/chat.postMessage -Body $postSlackMessage

Я также могу контролировать папку, используя скрипт, предоставленный на этот суперпользователя ответ by @nixda.

моя версия это отличное решение не резать. Вот это:

### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
    $watcher = New-Object System.IO.FileSystemWatcher
    $watcher.Path = "C:Location"
    $watcher.Filter = "*.*"
    $watcher.IncludeSubdirectories = $false
    $watcher.EnableRaisingEvents = $true  

### DEFINE ACTIONS AFTER A EVENT IS DETECTED
    $action = { $path = $Event.SourceEventArgs.FullPath
                $changeType = $Event.SourceEventArgs.ChangeType
                $token = ""
                $channel = "$general"
                $text = "$changeType, $path"
                $username = "Bot User"
                $postSlackMessage = @{token=$token; channel=$channel; text=$text; username=$username}
                Invoke-RestMethod -Uri https://slack.com/api/chat.postMessage -Body $postSlackMessage
              }    
### DECIDE WHICH EVENTS SHOULD BE WATCHED + SET CHECK FREQUENCY  
    $created = Register-ObjectEvent $watcher "Created" -Action $action
    $changed = Register-ObjectEvent $watcher "Changed" -Action $action
    $deleted = Register-ObjectEvent $watcher "Deleted" -Action $action
    $renamed = Register-ObjectEvent $watcher "Renamed" -Action $action
    while ($true) {sleep 5}

Я пытался количество различных вариантов этого, и я не уверен, что я делаю неправильно. Я могу заставить скрипт nixda работать и писать в txt-файл, но изменение действия для вызова-RestMethod не работает.

это проблема синтаксиса, которую я не получаю, или что-то большее, что мне не хватает?

27
задан Community
21.02.2023 19:58 Количество просмотров материала 3386
Распечатать страницу

1 ответ

Так как есть несколько мнений по этому поводу, я опубликую исправленный скрипт, как указал Techie007. Это была лишь незначительная опечатка, и это сообщения, чтобы ослабить, если вы хотите использовать сценарии Powershell для просмотра папок в Windows:

### SET FOLDER TO WATCH + FILES TO WATCH + SUBFOLDERS YES/NO
    $watcher = New-Object System.IO.FileSystemWatcher
    $watcher.Path = "C:\Location\"
    $watcher.Filter = "*.*"
    $watcher.IncludeSubdirectories = $false
    $watcher.EnableRaisingEvents = $true  

### DEFINE ACTIONS AFTER A EVENT IS DETECTED
    $action = { $path = $Event.SourceEventArgs.FullPath
                $changeType = $Event.SourceEventArgs.ChangeType
                $token = ""
                $channel = "#general"
                $text = "$changeType, $path"
                $username = "Bot User"
                $postSlackMessage = @{token=$token; channel=$channel; text=$text; username=$username}
                Invoke-RestMethod -Uri https://slack.com/api/chat.postMessage -Body $postSlackMessage
              }    
### DECIDE WHICH EVENTS SHOULD BE WATCHED + SET CHECK FREQUENCY  
    $created = Register-ObjectEvent $watcher "Created" -Action $action
    $changed = Register-ObjectEvent $watcher "Changed" -Action $action
    $deleted = Register-ObjectEvent $watcher "Deleted" -Action $action
    $renamed = Register-ObjectEvent $watcher "Renamed" -Action $action
    while ($true) {sleep 5}
0
отвечен ezgoodnight 2023-02-23 03:46

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх