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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS
Судя по ошибке, до сервера достукивается, но авторизацию не проходит.
Скорее всего логин/пароль.

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



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sniffspb
 
Думаю так:
 

Код:
 
$npath = @(
    'C:\test\1.txt'
    'C:\test\2.txt'
    'C:\test\3.txt'
    'C:\test\4.txt'
)
if ((test-path -path $npath) -like $false){start-process notepad.exe -ArgumentList 'C:\test\6.txt'}
start-process notepad.exe -ArgumentList 'C:\test\5.txt'
 

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 09:35 26-11-2019 | Исправлено: newhk, 09:48 26-11-2019
virjokk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как решить вроде совсем простую задачку.
Если в path1 есть любой из файлов file1,file2,file3, то переместить в path2.
Если нет, то скачать из сети в path2 по линкам, соответственно для каждого файла - link1,link2,link3.
Делал так:

Код:
 
$file1,$file2,$file3 | %{
    $i++
    if (Test-Path -Path $path1\$_ -PathType Leaf) {
        Move-Item -Path $path1\$_ -Destination $path2 -Force
    } else {
        iwr -Uri $(switch ($i) {1 {$link1}; 2 {$link2}; 3 {$link3}}) -OutFile $path2\$_
    }
}
 

 
Это работает, но код с этим switch уж слишком корявый.
Пробовал с хештейбл, типа @{$file1=$link1;$file2=$link2;$file3=$link3},
но не получается нормально извлекать значения оттуда.
Гуглил про двумерные массивы, но их реализация в PS совсем уж непонятна.
Может есть какое простое решение для этого и подобных случаев...

Всего записей: 288 | Зарегистр. 19-05-2006 | Отправлено: 10:29 26-11-2019 | Исправлено: virjokk, 10:40 26-11-2019
KLASS



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

Цитата:
Скорее всего логин/пароль

Убрал из кода все, что не относится к отсылке письма, ну, ровно сколько ты недавно выкладывал

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

Не хочет работать, с тем же сообщением в PowerShell ISE.
У меня ведь ранее все так и было, и работало, вот, в самом начале разговора. Ты сказал убери порт совсем, убрал-не фурычит.

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 10:51 26-11-2019 | Исправлено: KLASS, 15:17 26-11-2019
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS
Вот это и странно. Мистика.
Напрямую Net.Mail.SmtpClient не работает, а обертка над ним работает.
У меня по прежнему работает и с 25 портом и без указания порта…
 
 
Добавлено:
virjokk
Вариантик
Код:
[pscustomobject[]] $Files = @(
    [pscustomobject]@{ Name = "file1"; Link = "link1" },
    [pscustomobject]@{ Name = "file2"; Link = "link2" },
    [pscustomobject]@{ Name = "file3"; Link = "link3" }
)
 
foreach ($File in $Files) {
    if (Test-Path -Path $path1\$File.Name -PathType Leaf) {
        Move-Item -Path $path1\$File.Name -Destination $path2 -Force
    } else {
        Invoke-WebRequest -Uri $File.Link -OutFile $path2\$File.Name
    }
}


Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 11:27 26-11-2019 | Исправлено: iNNOKENTIY21, 11:42 26-11-2019
YuS_2



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

Код:
$from = 'from@bk.ru'
$to = 'to@bk.ru'
$subject = 'TEST'
$body = 'test'
$username = 'from@bk.ru'
$password = 'password'
$smtpserver = 'smtp.mail.ru'
$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)


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



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Не а, у меня корабль не взлетел из планировщика Win10LTSB.
При этом, в Powershel ISE никаких ошибок, все гладко, за малым исключением... письма тю-тю )

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



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

Цитата:
Не а, у меня корабль не взлетел из планировщика Win10LTSB.


У меня сейчас LTSB уже нет, но это из скрипта, который писался и исправно работал под LTSB...
Проверь брандмауер, может порты заблокированы?

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:00 26-11-2019 | Исправлено: YuS_2, 14:03 26-11-2019
2as

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

Цитата:
ранее все так и было, и работало

скорее всего режется на почтовом сервере smtp.mail.ru
несоответствие IP адреса и имени домена отправителя.
...
Почему раньше доходило? крутка на сервере была не докручена. Сейчас докрутили.
Попробуйте отправить на какой-нибудь одноразовый почтовик. Там обычно не настраивают строго фильтрацию входящих.  

Всего записей: 3482 | Зарегистр. 09-09-2003 | Отправлено: 14:18 26-11-2019 | Исправлено: 2as, 14:26 26-11-2019
sniffspb



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk
Спасибо за подсказку.
Вопрос решен)

Всего записей: 24 | Зарегистр. 09-05-2007 | Отправлено: 14:24 26-11-2019
YuS_2



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

Цитата:
несоответствие IP адреса и имени домена отправителя.

Такого не должно быть... это же почта, причем общедоступная... отправитель там может иметь любой IP и даже без имени домена, главное - логин и пароль.  
Если только не совпадают логин и почтовый ящик отправителя... но в этом случае и send-mailmessage тоже не работал бы.
Не знаю, поможет ли в данном случае, но когда случалась беда с SSL под LTSB, то часто помогало это:

Код:
[net.servicepointmanager]::securityprotocol = 'ssl3,tls,tls11,tls12'

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:54 26-11-2019 | Исправлено: YuS_2, 14:56 26-11-2019
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
Сейчас на LTSC, с отключенным брандмауэром, попробовал последний код.
Все также-никак )
2as
У iNNOKENTIY21 это работает, а у меня нет, но работало чуть ранее.

Цитата:
Попробуйте отправить на какой-нибудь одноразовый почтовик

А смысл, если авторизация не проходит ДО отсылки при использовании определенных скриптов.
А вот, например, SSL+25 порт вполне себе работает у меня.
===================================================================================
До "экспериментировались", ваш ящик заблокирован. Пришлось писать телегу, что криминала нет, я тут тестирую

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 15:04 26-11-2019 | Исправлено: KLASS, 16:18 26-11-2019
YuS_2



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

Цитата:
Сейчас на LTSC, с отключенным брандмауэром, попробовал последний код.


Цитата:
У iNNOKENTIY21 это работает, а у меня нет, но работало чуть ранее.

Это очень странно...
У меня-то тоже работает всё это и тоже с mail.ru ...
Может какие персональные настройки менялись в аккаунте?
Попробуй для тестов завести два отдельных ящика и с ними поэкспериментируй. Только аккуратно, без фанатизма, а то ещё IP или подсеть забанят.
 
Добавлено:

Цитата:
А вот, например, SSL+25 порт вполне себе работает у меня.

и попробуй порт поменять в последнем коде  26-11-2019, чтобы уж точно убедиться.

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



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

Цитата:
Попробуй для тестов завести два отдельных ящика и с ними поэкспериментируй

Пару дней назад создал специально ящик, в настройки ящика даже не заходил, все по умолчанию.

Цитата:
и попробуй порт поменять в последнем коде

менял, 587, 465 и 25

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



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

Цитата:
Сейчас на LTSC, с отключенным брандмауэром, попробовал последний код.  

т.е. на другом компе и другой ОС, тоже не работает? Это вообще странно...
 

Цитата:
Пару дней назад создал специально ящик, в настройки ящика даже не заходил, все по умолчанию.


Цитата:
менял, 587, 465 и 25

Тогда не знаю.
Могу только предложить проверить аккаунт. А именно изменить пароль аккаунта на временный и выдать его в личку, а я проверю его у себя и если всё будет работать, тогда останется только вариант, что каким-то образом mail.ru блокирует твои IP/подсеть... хотя, всё равно, тогда непонятно, почему работает send-mailmessage... нонсенс какой-то.

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



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

Цитата:
т.е. на другом компе и другой ОС,

Угу.

Цитата:
А именно изменить пароль аккаунта на временный

Я даже не знаю, подскажи... вообще никогда не настраивал.

Всего записей: 11062 | Зарегистр. 12-10-2001 | Отправлено: 20:06 26-11-2019
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плиз, как в ПШ подставить 2 разные переменные?
Есть скрипт, который проверяет статус служб на некоторых серверах.
1я переменная - сервер
2я переменная - служба
 
т.е. правильно ли я задал условие

Код:
 
get-service -ComputerName $_ -name $_
 

 в функции Get-Services?
 
 

Код:
 
param(
    [string]$from = '2222@firma.ru',
    [string[]]$to = '2222@firma.ru'
)
 
# Задаем параметры почтового сервера
function send-mail ($a) {
    $smtpserver = 'mailsrv'
    $subject = "ATTENTION!!! Houston, we have a problems"
    $body = 'The following servers are not available:' + "`n" + $($a|out-string)
    send-mailmessage -fr $from -to $to -smtp $smtpserver -subj $subject -body $body  -enc UTF8
}
 
$services = @(
    'SQLSERVERAGENT'
    'MSSQLSERVER'
    '1C:Enterprise 8.3 Server Agent (x86-64)'
)
$servers = @(
    'server1'
    'server2'
    'server3'
    'server4'
)
 
 
$gets = get-service -ComputerName $servers -Name $services
 
function Get-Services {
    process{
        if ((get-service -ComputerName $_ -name $_) -like 'Stopped'){
            $failed = [pscustomobject] @{
                Servers = $_ # 1-е, меня интересует правильно
                Services = $_ # ли я указал здесь
            }
            [array]$faileds += $failed
            write-output $(
                $failed
            )
        }
         
    }  
    end {
        if($faileds){send-mail $faileds}
    }
}
 
$"что-то" | Get-Services # 2-е, что указывать здесь ($gets ?)
 


Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 14:49 27-11-2019 | Исправлено: newhk, 15:27 27-11-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
newhk
Необходимо сначала сформулировать задачу, а потом приниматься за решение.
Правка чужого кода - дело неблагодарное и часто неэффективное.
Т.е. опишите, что хочется получить в итоге, но с подробностями.

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

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

Цитата:
У iNNOKENTIY21 это работает, а у меня нет, но работало чуть ранее.

 
В сетевых настройках какие DNS- серверы прописаны?
попробуй указать DNS1  77.88.8.8 (от Яндекса)
...
может что-нить намутили с "суверенным" интернетом наши домоуправители?
Стаалкивался сам с рассинхронизацией DNS серверов наших и забугорных.
Сейчас по умолчанию в качестве DNS1 указываю яндексовский, а DNS2 как правило гугловский
8.8.4.4 например.
 
... добавлено
Еще можно почитать о SPF-записи, для понимания того почему с вашего домена могут блокироваться письма
здесь например: https://yandex.ru/support/pdd/set-mail/spf.html
 
...
а вообще на 25 порт почтового сервера подключение проходит? telnet-ом например.
 
У нас однажды провайдер не долго думая всем в своей подсети 25 порт заблокировал.
Ему видите ли пришло предупреждение от надзорного органа, что спам кто-то из его зоны ответственности рассылает.
Вот они недолго думая и расчехлили гильотину. И всем - чик! )))
Почтовый сервер? Какой такой почтовый сервер? На предприятии? Свой? Пользуйтесь yandex-ом... )))
 
Реальная история - ничего не выдумано ...
Стали вменяемыми только после перехода на волшебный язык - который даже в самых глухих китайских провинциях понимают! )))

Всего записей: 3482 | Зарегистр. 09-09-2003 | Отправлено: 15:57 27-11-2019 | Исправлено: 2as, 17:36 27-11-2019
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuS_2
В сущности, это Ваш код, написанный мне, но под другую задачу.
 
Задача, опросить службы на предмет статуса
Я уже понял, что в условии IF у меня неправильно и переделал на

Код:
 
if (((get-service -ComputerName $servers -name $services).Status) -like 'Stopped')
 

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

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 16:17 27-11-2019 | Исправлено: newhk, 17:09 27-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