|
Пытаюсь создать скрипт, но не выходит | ☑ | ||
---|---|---|---|---|
0
VID1234
18.10.23
✎
12:10
|
Здравствуйте. Подскажите пожалуйста, мне необходимо поймать событие при изменении, удалении и создании в определенном каталоге, вроде как написал код правильно, но он не срабатывает.
PS C:\Users\PC-Sir> $watcher=New-Object System.IO.FileSystemWatcher PS C:\Users\PC-Sir> $watcher.Path="Z:новая папка" PS C:\Users\PC-Sir> $action = { >> >> $path = $event.SourceEventArgs.FullPath >> >> $name = $event.SourceEventArgs.Name >> >> $changetype = $event.SourceEvenAtrgs.ChangTeype >> >> Add-Content -Path Z:\A.txt -Value "$Name ; $path ; $changettype ; $(get-date)" >> >> } PS C:\Users\PC-Sir> $watcher.EnableRaisingEvents=$true PS C:\Users\PC-Sir> Register-ObjectEvent $watcher Created Action -Action $action Id Name PSJobTypeName State HasMoreData Location Command -- ---- ------------- ----- ----------- -------- ------- 1 Action NotStarted False ... PS C:\Users\PC-Sir> $action >> $path = $event.SourceEventArgs.FullPath >> $name = $event.SourceEventArgs.Name >> $changetype = $event.SourceEvenAtrgs.ChangTeype >> Add-Content -Path Z:\A.txt -Value "$Name ; $path ; $changettype ; $(get-date)" >> PS C:\Users\PC-Sir> При этом если запускаю такой код, то строка добавляется в текстовый файл 1 PS C:\Users\PC-Sir> Add-Content -Path Z:\A.txt -Value "$name ; $path ; $changettype ; $(get-date)" Как будто бы не срабатывает действие. |
|||
1
VID1234
18.10.23
✎
12:30
|
А все разобрался, нужно было из под админа выполнять
|
|||
2
VID1234
18.10.23
✎
12:32
|
как только теперь запустить этот скрипт как службу
|
|||
3
Волшебник
18.10.23
✎
12:50
|
||||
4
arsik
18.10.23
✎
13:15
|
(2) Может через аудит + подписку на события делать?
https://oblako.kz/help/windows/audit-dostpa-k-failam-windows-server |
|||
5
VID1234
24.10.23
✎
21:08
|
(3) Здравствуйте. Пробовал, служба появилась, но не работает. При этом если построчно все вывожу или запускаю его через cmd все работает. Пробовал и через планировщик и через службу
|
|||
6
ЯнСмит
24.10.23
✎
22:28
|
(2) попробуйте через http://nssm.cc - работает безотказно
|
|||
7
Волшебник
24.10.23
✎
22:36
|
(6)🔥 Классное название
|
|||
8
VID1234
25.10.23
✎
16:37
|
я через через эту программу, но не получилось
установил nssm и далее $NSSMPath = (Get-Command "C:\ProgramData\chocolatey\lib\nssm\tools\nssm.exe").Source $NewServiceName = “CheckKatalogSrv” $PoShPath= (Get-Command powershell).Source $PoShScriptPath = “C:\stavnenie.ps1” $args = '-ExecutionPolicy Bypass -NoProfile -File "{0}"' -f $PoShScriptPath & $NSSMPath install $NewServiceName $PoShPath $args Start-Service $NewServiceName Служба появилась и она работает, но не работает код со скрипта, а там он только один раз должен запуститься и работать, до перезагрузки виндовс Это код самого скрипта: $watcher=New-Object System.IO.FileSystemWatcher $watcher.Path='C:\Katalog' $action = { $path = $event.SourceEventArgs.FullPath $name = $event.SourceEventArgs.Name $changetype = $event.SourceEventArgs.ChangeType Add-Content -Path C:\A.txt -Value "$Name ; $path ; $changetype ; $(get-date);>" } $watcher.EnableRaisingEvents=$true $watcher.IncludeSubdirectories=$true Register-ObjectEvent $watcher "Created" -Action $action Register-ObjectEvent $watcher "Deleted" -Action $action Register-ObjectEvent $watcher "Renamed" -Action $action |
|||
9
VID1234
25.10.23
✎
18:20
|
Все разобрался, всем спасибо.
в программе исполнителе прописал полный путь к PowerShell, а в аргументы -noexit C:\stavnenie.ps1 -gettedServerName "имясервера" Вдруг пригодится. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |