Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Открыть новую тему     Написать ответ в эту тему

KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Старые и смежные темы: по CMD и в Программах | по PowerShell | В помощь системному администратору | Прикладное программирование

PowerShell
Версии | Ассоциация и подпись сценариев
Сценарий для ассоциации файлов PowerShell и запуска неподписанных скриптов.
 
Прочее
Расширение возможностей
Функции
Write-Color
Output-DebugString
Провайдеры
Готовые скрипты
Полезные ссылки | Будет ли репозиторий PowerShell на ru-board?
Книги в PDF
Cheat Sheets
 

Cmd
Для перекодирования кириллицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы
 
Готовые решения и частые вопросы
 
Описания работы команд и символов участниками темы:
setlocal enabledelayedexpansion и переменные окружения
символы & и && в командной строке
Переменная %0
 
Полезные ссылки и утилиты

WSH (VBScript, JScript)
Программирование "удобняшек" на VBScript

Примечания:
• Большие куски кода заключайте в тэг [ more ]
• Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте код без пробелов иначе сценарий может работать неправильно. Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 13:40 17-02-2018 | Исправлено: YuS 2, 08:24 19-06-2021
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk

Цитата:
Задача, опросить службы на предмет статуса

Это не задача, ибо решение такой задачи:

Код:
gsv|sort status|ogv

но не это ведь требовалось, верно?
А если требуется отправить почту, в случае обнаружения остановленной службы, одной или более, из списка на любом из компов, то примерно так:

Код:
 
function send-mail {
    param(
        $subj = 'ALARM',
        $body = 'Тело письма',
        $login= 'from@bk.ru',
        $password = 'password'
    )
    $pass = convertto-securestring $password -aspl -force
    $cred = new-object system.management.automation.pscredential ($login, $pass)
    $from = 'from@bk.ru'
    $to = 'to@bk.ru'
    $server = 'smtp.mail.ru'
    $port = 25
    send-mailmessage -fr $from -to $to -smtps $server -port $port -subj $subj -body $body -cred $cred -usessl -enc UTF8
}
 
$services = @(
    'SQLSERVERAGENT'
    'MSSQLSERVER'
    '1C:Enterprise 8.3 Server Agent (x86-64)'
)
$servers = @(
    'server1'
    'server2'
    'server3'
    'server4'
)
 
$arr = gsv -comp $servers -name $services|? status -eq 1|select status,name,machinename
if ($arr) {send-mail -body ($arr|out-string)}

 
Так что описание задачи - немаловажный процесс, если, конечно, есть желание получить правильное решение, а не набор команд...
 
Добавлено:

Цитата:
Может, посоветуете какой-нибудь учебник почитать? Желательно на русском.

в шапке данного топика есть ссылки на книжки про powershell

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:26 27-11-2019 | Исправлено: YuS_2, 09:11 28-11-2019
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Спасибо!




п. 2.8.2. главы VIII Соглашения по использованию

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 08:47 28-11-2019 | Исправлено: KLASS, 09:10 28-11-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk

Цитата:
Спасибо!

Код поправлен, там была ошибка здесь:

Код:
$cred = new-object system.management.automation.pscredential ($login, $pass)

которая перекочевала при копировании кода... в общем, пробуйте ещё раз.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 09:14 28-11-2019
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проблема с отсылкой письма при выполнении сценария

Цитата:
$EmailFrom = "from@bk.ru"  
$EmailTo = "to@bk.ru"  
$Subject = "TEST"  
$Body = "IP сменился"  
$SMTPServer = "smtp.mail.ru"  
$SMTPClient = New-Object System.Net.Mail.SmtpClient($SmtpServer)  
$SMTPClient.EnableSsl = $True  
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential('from@bk.ru', "пароль_содержащий_знак_$_заключенный_в_двойные_кавычки")  
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

оказалась... выделено красным.
Спасибо YuS_2 обратил внимание, задал одинарные кавычки и письма полетели.

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 20:32 28-11-2019 | Исправлено: KLASS, 08:22 29-11-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS
Цитата:
оказалась... выделено красным.
Спасибо YuS_2 обратил внимание, задал одинарные кавычки и письма полетели.

Уфф. И никакой мистики
Только не понятно, в первоначальном скрипте двойные кавычки и работало. Потом перестало. Пароль поменяли?
Интересно какой символ вызвал проблемы?

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 07:44 29-11-2019
vasyosuol_24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
А мне больше интересен аналогичный скрипт, но для gmail'a
Можно такое изобразить?

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 07:50 29-11-2019
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Тут как раз все элементарно.
Так как пароль в открытом виде (хотя он никому, кроме меня не нужен), решил завести отдельный
ящик. Стало-быть, сгенерил пароль, в котором и был тот символ $, а кавычки двойные скопипастил у себя, из
старого сценария, не обратив внимание на то, что местные даже их не используют. Другой сценарий потому и работал,
что кавычки (одинарные) снова скопипастил, но уже из этой темы. И никакой мистики
 
Добавлено:
iNNOKENTIY21
И снова здрасьте (мистика). С Gmail это сценарий не работает, а этот работает. Кавычки в обоих сценариях везде одинарные. Никаких ошибок не выводит.
 
Добавлено:
Знак $ в пароле есть...
Брандмауэр отключил, на всякий

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 08:09 29-11-2019 | Исправлено: KLASS, 08:52 29-11-2019
vasyosuol_24

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS

Цитата:
И снова здрасьте (мистика).

Это - моё тлетворное влияние

Цитата:
С Gmail это сценарий не работает, а этот работает. Кавычки в обоих сценариях везде одинарные. Никаких ошибок не выводит.

А у меня и "тот" не работает. Можно (ваши же слова ) "полную версию"?

Всего записей: 1101 | Зарегистр. 16-01-2013 | Отправлено: 08:55 29-11-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21

Цитата:
Интересно какой символ вызвал проблемы?

тамжеж красно-зеленым по белому символ обозначен...
powershell через двойные кавычки пытался переменную раскрыть, на что mail.ru ему отлупы и слал, мол авторизуйся сначала, а то пароль неверный, только вот написано всё это было мудреными словами, потому и определить сходу причину проблематично.
 
Добавлено:
KLASS

Цитата:
И снова здрасьте (мистика).

Не-не-не, тут как раз, всё просто, отставить мистику!
Порты надо указать, ибо критично...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 08:57 29-11-2019 | Исправлено: YuS_2, 09:01 29-11-2019
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasyosuol_24
Так сценарий по ссылке и так полный, заменить нужное на gmail

Цитата:
$from = 'from@gmail.com'
$to = 'to@bk.ru'
$subject = 'TEST'
$body = 'IP сменился'
$username = 'from@gmail.com'
$password = 'Пароль, кавычки одинарные'
$smtpserver = 'smtp.gmail.com'
$smtpport = 587
 
$message = new-object system.net.mail.mailmessage $from,$to
$message.subject = $subject
$message.isbodyhtml = $true
$message.body = $body
$message.bodyencoding = [text.encoding]::getencoding("UTF-8")
$message.subjectencoding = [text.encoding]::getencoding("UTF-8")
 
$smtp = new-object system.net.mail.smtpclient($smtpserver, $smtpport)
$smtp.enablessl = $true  
$smtp.credentials = new-object system.net.networkcredential($username, $password)
$smtp.send($message)

 
Добавлено:

Цитата:
Порты надо указать, ибо критично

Понятно.

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 09:00 29-11-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Для gmail может потребоваться включить доступ для не надёжных приложений:

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 09:10 29-11-2019
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Но в первом сценарии, указав порт (менял разные, 25, 465, 587), сИравно не работает.
Стало-быть, не только порт?
 
Добавлено:
При этом, если порт 25, 587 или порт не указан, ошибок нет, как и нет письма.
Если порт 465, то картинка меняется

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 09:11 29-11-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS
Во входящих gmail нету про попытки входа, блокировки? Если есть то достучался до сервера, а там видимо сработала безопасность аккаунта.
gmail 587 порт нужен.
mail.ru мне тестовые с gmail в папку непрочитанные засунул, во входящих не показал. К тому, что по папкам поглядеть, может в спам…

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 10:36 29-11-2019
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
Так и есть, в спаме пребывают, вечно забываю, что о нас мыльники заботятся )
 
Добавлено:
Это работает и с gmail, смотрим папку спам в ящике mail.ru

Цитата:
 
$EmailFrom = 'from@gmail.com'
$EmailTo = 'to@bk.ru'
$Subject = 'TEST'
$Body = 'IP сменился'
$SMTPServer = 'smtp.gmail.com'
$SMTPClient = New-Object System.Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $True
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential('from@gmail.com', 'пароль')
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

 
Добавлено:
и без указания порта тоже работает

Цитата:
$SMTPClient = New-Object System.Net.Mail.SmtpClient($SmtpServer)  

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 10:46 29-11-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS

Цитата:
как и нет письма

у меня в спам упали тестовые письма. Проверь тоже...
 
Порты работают и 25, и 587 (если не указывать, то по умолчанию должен работать 25), главное - указать $SMTPClient.EnableSsl = $True
 
iNNOKENTIY21

Цитата:
Для gmail может потребоваться включить доступ для не надёжных приложений:

да, без этого не отправлялось в обоих вариантах, причем не молча, а ругался на неправильную авторизацию...
 
Добавлено:
PS О, тут уже протестировали и без меня...  
ну, да пусть уже остается....

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 11:07 29-11-2019
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Для gmail может потребоваться включить доступ для не надёжных приложений:

Ага, а у меня оказывается эта муть была разрешена

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 11:19 29-11-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS
 26-11-2019

Цитата:
вернул часть кода  

Код:
($Rout = ping -r 1 -n 1 www.yandex.ru) | Out-Null  
$new_ip = ($Rout | Select-String '(\D+:\s)(\S+)').Matches.Groups.Value[2]  
$old_ip=Get-Content -Path $ext_ip -TotalCount 1  

 

Кстати, проверил тут этот код на Wi-Fi соединении, через усилитель... не работает он.

Цитата:
PS_5.1> ($Rout = ping -r 1 -n 1 www.yandex.ru) | Out-Null
PS_5.1> $new_ip = ($Rout | Select-String '(\D+:\s)(\S+)').Matches.Groups.Value[2]
PS_5.1> $new_ip
отправлено

то бишь, кажет ерунду какую-то.
Попробуй так:

Код:
$new_ip = (test-netconnection www.yandex.ru -tr -h 2|select -exp traceroute)[1]

Но это таки не WAN IP, это шлюз провайдера...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:05 29-11-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я вот не шарю в ip, wan, шлюз…
Но дома у меня padavan и там есть: Отправка e-mail с роутера

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 15:51 29-11-2019
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Так я строку на твою поменял, она тоже на вай-фай не работает у тебя?

Цитата:
$new_ip = (sls -inp $rout -patt '(?<=:\s+)[\d.]+').matches.value

А с новой строкой, что дал, чего, в смысле, зачем шлюз провайдера, когда нужен IP WAN роутера.
Шлюз известен.
iNNOKENTIY21
Отправка мыла с роутера в другой теме, притом, что прошивки разные бывают. Как то так.

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 16:16 29-11-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS

Цитата:
Так я строку на твою поменял, она тоже на вай-фай не работает у тебя?

Та строка то же самое, просто чуть оптимизированное. Сам-то IP, также через ping с маршрутом получаем.
Так что да, она работать тоже не будет.
 

Цитата:
А с новой строкой, что дал, чего, в смысле, зачем шлюз провайдера, когда нужен IP WAN роутера.

Дык, хоть что-то, а не пусто. Хотя тоже криво...
Дома-то провайдер другой и маршрутизатор другой. Тут WAN IP совпадает со шлюзом WAN и ping c маршрутом выдает верный адрес, что через провод, что через wi-fi, а вот через test-netconnection - ни шлюза, ни wan ip получить не удалось, мало того, он первым хопом дает внутренний IP, а третьим и четвертым, выдает то, что по пингу показывает вторым-третьим... в общем, чушь какая-то, съедающая узлы в маршруте.
 
А на другом роутере, где wi-fi через усилитель, ping не показывает маршрут совсем (там WAN IP и IP шлюза разные, да и провайдер другой)... это уже завтра потестирую ещё, и напрямую, без усилителя, тоже, возможно, он режет...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:30 29-11-2019 | Исправлено: YuS_2, 18:33 29-11-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru