Отказ от ответственности: я все еще отстой в написании сценариев, будьте осторожны, если это глупый вопрос! :)
То, что я делаю, довольно просто. Я использую SqlServerCmdletSnapin, который дает мне возможность выполнять t-sql запросы в powershell 1.0 и возвращать его либо в консоль, либо в файл. В настоящее время я отправляю его в файл .txt, мой код пока здесь:
$sqlcheck = Invoke-Sqlcmd -Query "select * from client" -ServerInstance "TESTDB1\TESTSQL1" | out-file -filepath "C:\MyFolder\Client_Result.txt"
Вышеприведенное возвращает строку sql (пример):
1 CAAT PI 2003-08-05 13:34:00 PI 2003-08-05 13: 34: 00
Так что это отправляет результаты в файл .txt. То, что я пытаюсь сделать, это из результатов, которые печатаются в файл .txt, если он ничего не возвращает или пустой, чем это ошибка, и он должен отправить электронное письмо.
Я уже написал функцию электронной почты для этого, но на чем я спотыкаюсь, так это на самом деле, как я собираюсь проверять пустые результаты или я предполагаю $ null результаты. Я, вероятно, использую совершенно неправильную логику, но я пишу что-то вроде этого:
$sqlcheck = Invoke-Sqlcmd -Query "select * from client" -ServerInstance "TESTDB1\TESTSQL1" | out-file -filepath "C:\MyFolder\Client_Result.txt"
if($sqlcheck -is [Array]){
if($sqlcheck[1] -match "OK"){
echo "Status is OK" > C:\MyFolder\Result.log
}
}
else{
Send-Email
}
Очевидно, не работает! Кто-нибудь, пожалуйста, дай мне немного знаний. :)
Спасибо!