PDA

Показать полную графическую версию : [решено] powershell vs bat


servad
10-08-2021, 16:31
Доброго дня, уважаемые читатели. Прошу помощи или с powershell или bat.

Написал скрипт на powershell:

$Date = Get-Date -Format yyyy-mm-dd-hh:mm:ss
$filename = $args[0]
$process = @()
$process += Get-Process wmail -ea SilentlyContinue
if ($process[0]){
echo "$date 1" > $filename
}
else{
echo "$date 0" > $filename
}

При этом в планировщике создал задачу с аргументом -executionpolicy unrestricted -file "C:\monitoring\monscript.ps1" "C:\monitoring\OUT\vivod.txt"
Суть скрипта проста- смотрит в процессы и если wmail есть, то выводит в отдельный файл 1, если нет то 0.

При этом, если нажать в планировщике "Выполнить", то файл создается в каталоге, а если он выполняется автоматически, то нет(хотя задача стоит как выполненная).
Я голову сломал, и не понимаю, почему на windows 10 такое не срабатывает. Хотя на остальных ОС работает.



Может кто-то подскажет, каким образом заставить работать планировщик с powershell или может кто поможет создать bat скрипт равнозначный powershell?!?

servad
10-08-2021, 17:13
Создал bat скрипт: powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file "C:\monitoring\monscript.ps1"

Поставил в Планировщик, и все равно не работает. Если запустить сам bat или в Планировщике нажать "Выполнить", то файл в каталоге появляется, а автоматически не срабатывает

alpap
10-08-2021, 21:42
а если он выполняется автоматически, то нет »
создается, но в system32, надо рабочую папку указать и делать в нее переход в коде.

servad
11-08-2021, 09:02
alpap, В батнике прописал с указанием рабочей папки, но через планировщик (автоматически) не запускается.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy RemoteSigned -WindowStyle Hidden -file "C:\monitoring\monscript.ps1"

Iska
11-08-2021, 09:22
servad, а куда делся:
При этом в планировщике создал задачу с аргументом -executionpolicy unrestricted -file "C:\monitoring\monscript.ps1" "C:\monitoring\OUT\vivod.txt" »
?

servad
11-08-2021, 09:34
Iska, alpap, прошу прощения, не внимательность моя... Да, все работает, спасибо большое за помощь

DJ Mogarych
11-08-2021, 09:37
$Date = Get-Date -Format yyyy-mm-dd-hh:mm:ss
$filename = "C:\monitoring\OUT\vivod.txt"
if (Get-Process wmail) {
"$date 1" > $filename
}
else {
"$date 0" > $filename
}


В планировщике:

Программа: powershell
Аргументы: -file "C:\monitoring\monscript.ps1" -executionpolicy bypass

Iska
11-08-2021, 10:18
servad, ничего страшного, бывает.




© OSzone.net 2001-2012