schtasks терпит неудачу с доступом, запрещенным в сценарии - PullRequest
1 голос
/ 22 октября 2019

У меня есть скрипт, который мне нужно периодически запускать, чтобы проверить состояние нескольких заданий и предупредить меня, если они выполняются дольше 15 минут. Тем не менее, я получаю сообщение об ошибке, используя schtasks, говоря: «Доступ запрещен.»

Вот сценарий:

$server = "server.com"
$taskarray = @("Receive Orders","Send Inventory","Send Shippments")     
$maxminutes="0"
$scriptpath = "C:\Path\ToCSVFolder"
$dateyest=(get-date(get-date).AddDays(-1) -format g)

foreach($scheduledtask in $taskarray){

# Send email function

function sendEmail {

$from = New-Object System.Net.Mail.MailAddress "email@email.com";

$to = New-Object System.Net.Mail.MailAddress "email@email.com";

$mail = New-Object System.Net.Mail.MailMessage $from, $to;

$mail.Subject = "Scheduled Task ( $scheduledtask ) on $server has been 
running for longer than $maxminutes minutes.";

$mail.Body = "Scheduled Task ( $scheduledtask ) on $server has been 
running for longer than $maxminutes minutes. Total Runtime for ( 
$scheduledtask ): $datediff .";

# Connect to mail relay

$smtpserver = "smtp"

$smtp = New-Object System.Net.Mail.SmtpClient ($smtpserver);

# Send Email

$smtp.Send($mail);

}

schtasks /query /s $server /FO CSV /v > 
"$scriptpath\ScheduleTaskMon.csv";

$longrunning = Import-Csv "$scriptpath\ScheduleTaskMon.csv" |

Where-Object {[DateTime]$_."Last Run Time" -gt [DateTime]$dateyest -and 
$_."Status" -eq "Running" -and $_."TaskName" -eq "$scheduledtask"};

if (!$longrunning) { continue }

$datediff=([DateTime]::Now)-([DateTime]$longrunning."Last Run Time")

if (($datediff.TotalMinutes) -gt $maxminutes)

{sendemail};

}

Это ошибка, которую я получаю:

schtasks : ERROR: Access is denied.
At C:\Users\xxx\Desktop\script.ps1:35 char:1
+ schtasks /query /s $server /FO CSV /v > "$scriptpath\ScheduleTaskMon. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (ERROR: Access is denied.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

1 Ответ

1 голос
/ 22 октября 2019

В этом сообщении об ошибке говорится, что учетная запись, под которой вы запускаете скрипт, не имеет доступа для запроса удаленного сервера. Я полагаю, что для выполнения этого запроса вам требуются права администратора на "server.com".

Перейдите в командную строку и вставьте

schtasks /query /s server.com /FO CSV /v > "C:\Path\ToCSVFolder\ScheduleTaskMon.csv"

Я подозреваю, что вы увидите ту же ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...