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

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

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

KLASS (06-03-2018 00:43): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Uriu

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

PowerShell 1.0 -  На текущий момент совершенно неактуальная версия, интересная только для истории. /Прямые ссылки/
PowerShell 2.0 и WinRM 2.0 - Последняя версия, работающая на Windows XP и Windows 2003 (Ещё) /Прямые ссылки/
PowerShell 3.0 (Windows Management Framework 3.0)
PowerShell 4.0 (Windows Management Framework 4.0)
PowerShell 5.0 (Windows Management Framework 5.0)
PowerShell 5.1 (Windows Management Framework 5.1)
PowerShell Core 6.0 (не заменяет PowerShell 5.1)



Ассоциация

Что бы ассоциировать скрипты с PowerShell, аналогично выполнению .bat/.cmd-файлов
нужно в командной строке набрать следующую команду(ы)
Версии 1.0-5.1 для 32-битных ОС: ftype microsoft.powershellscript.1=%windir%\system32\windowspowershell\v1.0\powershell.exe -file "%1"  
%*
 
Версии 1.0-5.1 для 32-битных ОС: ftype microsoft.powershellscript.1=%windir%\sysWOW64\windowspowershell\v1.0\powershell.exe -file "%1"  
%*
 
Версия 6.0 дя 32-битной ОС: ftype microsoft.powershellscript.1="C:\Program Files (86)\PowerShell\6.0.0\pwsh.exe"  -file "%1" %*
Версия 6.0 дя 64-битной ОС: ftype microsoft.powershellscript.1="C:\Program Files\PowerShell\6.0.0\pwsh.exe"  -file "%1" %*



вопрос о подписи скриптов

Что бы PowerShell не задавал вопрос о том, что скрипты не подписаны, ввести в нем команду
set-executionpolicy unrestricted
или в командной строке
powershell Set-ExecutionPolicy Unrestricted -force
(для этих 2-х действий требуются административные права)



Прочее


  • Если используете "белый список" в брандмауэре Windows, то для работы сценариев в сети необходимо создать 2 исходящих правила для svchost.exe и PowerShell.exe.
  • В отличие от батников кодировка скриптов на PowerShell должна быть 1251 (ANSI)




Расширение возможностей PowerShell
Функции
* Write-Color
* PowerTab --- Расширение функций клавиши Tab
Провайдеры
Готовые скрипты
* Ошибки и предупреждения в журнале событий по электронной почте (в4.0)
 


Работа со сценариями в Windows PowerShell
Раздел в MSDN
Краткие справочники по Windows PowerShell 3.0 (english)
Windows PowerShell Франк Кох (БЕРН)  Разработчик и пропагандист платформы. На русском языке в формате pdf и doc

Всего записей: 340 | Зарегистр. 25-11-2004 | Отправлено: 07:13 23-03-2006 | Исправлено: KapralBel, 09:31 29-01-2018
YuS_2



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

Цитата:
Просто некоторые его зачем-то обожествляют, превращая из инструмента в объект поклонения.

Не со всем вышенаписанным согласен, но вот с этим на 100% точно соглашусь.  
Инструмент необходимо изучать, использовать после изучения, но садить его на иконостас, биться лбом об пол и петь аллилуйя после каждого слова - это точно лишнее. Если инструмент рабочий и удобный, к нему привыкнут и научатся пользоваться, если, конечно, он задумывался как инструмент для широкой публики, а не специализированный инструмент для узких специалистов. Если же, как писали выше, это чудовище Франкенштейна, то никакие гротески не помогут маркетологам и их добровольным помощникам, инструмент, всё равно, будет похоронен в темном чулане в дальнем углу... имхо. А пока этого не происходит, с момента самого рождения, то и не стоит здесь заниматься обсуждением значимости того или иного языка программирования в сравнении с PS, вроде бы, здесь для этого, не самое подходящее место таки.
А про штамповку версий... возразить на это могу одним вопросом: а существуют ли какие-либо статичные языки, в том числе не только программирования,  абсолютно не подвергающиеся развитию (ну, хорошо, хотя бы изменению)? По-моему, всё, что не изменяется можно считать мертвым...

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 11:34 10-09-2017
LevT



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

Цитата:
Если инструмент рабочий и удобный, к нему привыкнут и научатся пользоваться, если, конечно, он задумывался как инструмент для широкой публики, а не специализированный инструмент для узких специалистов.  

 
Он задумывался для того, чтобы структурировать "широкую публику" на мастеров и подмастерий.
Потому что "соборы" строятся только так: тут вам не базар.  
Базара и так вокруг полно.
 

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 11:42 10-09-2017
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Верю-верю, здесь главное - лоб не расшибить... при попытке "строительства" соборов, пол может каменным оказаться.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 12:52 10-09-2017
Smitis



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

Цитата:
Он задумывался для того, чтобы структурировать "широкую публику" на мастеров и подмастерий.
Потому что "соборы" строятся только так: тут вам не базар.  
Базара и так вокруг полно.  

Да не задумывался он так. С чего Вы это взяли?
 
Добавлено:
YuS_2

Цитата:
А про штамповку версий... возразить на это могу одним вопросом: а существуют ли какие-либо статичные языки, в том числе не только программирования,  абсолютно не подвергающиеся развитию

Дело в том, что PS скриптовый язык. Кажется уже сталкивались в этой теме, что предлагается решение на PS и хрясь, не работает - нужна другая версия. Теряется смысл его как языка для системного администрирования - вот Вам решение проблемы, но сначала скачайте и поставьте самый новый дотнет (что бы уж точно наверняка), потом скачайте и поставьте новый PS, затем настройте Вашу винду, что бы скрипты PS запускались, но при этом не гарантируется, что проблема будет решена.


----------
Разум когда-нибудь победит

Всего записей: 3452 | Зарегистр. 09-02-2003 | Отправлено: 13:01 10-09-2017
YuS_2



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

Цитата:
Кажется уже сталкивались в этой теме, что предлагается решение на PS и хрясь, не работает - нужна другая версия.  

Может не здесь, на другом форуме, но наверняка пересекались...  
Но это ведь не ответ, наверное, на вопрос, потому как "хрясьнеработает" из-за версии ПО - формула, встречающаяся где угодно, когда угодно и на любом ПО, где то самое ПО периодически обновляется. Говорю же, изменения/развитие всегда присутствуют в "живых" языках...
Да, есть какие-то незыблемые основы, конечно, но и они, так или иначе, обрастают новинками со временем. PS в этом тоже не исключение... возможно, чуть в большей степени, чем другие средства/инструменты, но и возрастом он помоложе будет, наверное.

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:16 10-09-2017
KapralBel



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

Цитата:
вменяемо и уважительно поставив задачу

Достал ты своим уважением и просьбами, я могу с уважением послать далеко и с точным описанием маршрута и встречающихся на пути достопримечательностях ... всяких ... которые лучше остальных знают и всем рассказывают как все правильно, хотя их об этом никто не просит
"Не будет ли любезен многоуважаемый джин, пойти на ..., в ... и потом и к ..." ну что-то в таком стиле
 

Цитата:
Не со всем вышенаписанным согласен, но вот с этим на 100% точно соглашусь.  

+100500
 
Все зависит от задачи
если надо "удалить все в текущей папке" мне хватит и батничка из двух строк и рассказы к кому я должен обратиться что бы написать этот код "мастерами" по всем и сколько "ку" я должен при этом сказать вызывают у меня в лучшем случае просто молчание )))
 

Цитата:
Он задумывался для того, чтобы структурировать "широкую публику" на мастеров и подмастерий.  

А ви таки относите себя к мастерам? )))
таки нет - совсем с другой целью но никак не для "цветовой дифференцации штанов"
 





Вы первым перешли на личности и откровенно спровоцировали оппонента на ответ в вашем же духе. Если не прекратите - получите оба.

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:21 10-09-2017 | Исправлено: IFkO, 21:32 10-09-2017
angr82

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто знает как изменить CPU Affinity для уже выполняемого .exe в реальном времени, т.е. без остановки и запуска процесса по-новой.

Всего записей: 45 | Зарегистр. 19-09-2014 | Отправлено: 17:30 10-09-2017
LevT



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

Цитата:
С чего Вы это взяли?  

 
С того, что так утверждает Дон Джонс, который _очень много_ пива выпил с Джефри Сновером.
Вот Monad manifesto второго (2002, что ли, год) с недавними аннотациями первого.
 
 

Цитата:
предлагается решение на PS и хрясь, не работает - нужна другая версия.

 
решение на v5.1 заработает только на семёрке-восьмерке с установленным WMF v5.1 (на семерке надо предварительно накатить новый .NET)
решение на v3 заработает на семёрке и старше
решение на v2 на XP - и только после установки винапдейта. И на старших системах, вплоть до этой осени. Потом с v2 станет возможна та ситуация, которую Вы описываете.
Для v3 и дальше она пока невозможна.
 
А вот писать что-то на древней версии языка, в угоду некрофилам дауншифтерам никого заставить нельзя.
В PS модулях есть директива #requires version #
Что авторы модулей считают нужным поддерживать, то и поддерживается.
 
 
 
 
 
Добавлено:
 
KapralBel

Цитата:
если надо "удалить все в текущей папке" мне хватит и батничка из двух строк  

 
тогда что вы делаете в этой теме, где такое решается ровно одним командлетом?
 
И да. написание кода, который выглядит по-разному для случая 1 или 100 или 10000 итераций - дисквалифицирующий признак.
Тот кто так делает - тот определённо "самоделкин" вне игры.
   
Подмастерье (работяга "в цеху") - тот умеет писать трубу, так, чтобы один командлет делал ровно одно дело
.("те, кто этого не умеет или хотя бы не учится - уже идут конкурировать с роботами")
 
а мастер ("инженер") умеет реализовывать её недостающие части(командлеты) так, чтобы  
1) упрятать цикл внутри блока process{}
2) спроектировать надлежащее связывание с соседями по заказанной трубе
 
 и необязательно (но желательно, особенно если стремится стать "белым воротничком")  
3) продумать прочие PаrameterSet-ы
4) упаковать всё в модуль на будущее.
 
 
Код профессионально написанного командлета состоит из определения ParamеterSet-ов примерно наполовину (в этом легко убедится каждый, вытащив прокси-скрипт).
Лица, отрицающие необходимость этого в своих инструментах повторного использования - знакомы не с PS, а с каким-то его уродливым перепевом.
 

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 18:10 10-09-2017 | Исправлено: LevT, 20:08 10-09-2017
PhoenixUA



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
angr82
 
Немного переработанный вариант отсюда:
 

Код:
function Set-Affinity {  
 
    param (  
        $core,  
         
        [switch]$all,
         
        [Parameter(Mandatory=$true)]
        [string]$filename
    )  
 
    [int]$LogicalProcessors = 0  
    gwmi -class win32_processor | foreach { $LogicalProcessors += $_.NumberOfLogicalProcessors}  
    $maxaffinity = ([math]::pow(2,$LogicalProcessors) - 1)  
 
    if ($core) { $core | select -unique |  %  {$affinity = 0} {$affinity += [math]::pow(2,$_-1) } }  
    if ($all) { $affinity = $maxaffinity }  
    if (($affinity -gt $maxaffinity) -or ($affinity -lt 1)) {$affinity = $maxaffinity}  
 
    Get-Process | ? {$_.Path -match $filename} | % { $_.ProcessorAffinity = [int]$affinity}
}  

Всего записей: 2184 | Зарегистр. 17-11-2005 | Отправлено: 18:27 10-09-2017
KapralBel



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

Цитата:
тогда что вы делаете в этой теме, где такое решается ровно одним командлетом?

Я могу сказать что я тут делаю )))
Для начала я если помогаю то там где просят, в отличии от вас... и не навязываю свою точку зрения
и чего не жду - я не жду очень "вумных" советов, как и что мне делать
Заметьте я тут не попросил ни одного совета, за все время
И уж точно не нуждаюсь в навязывании мне своего мнения, надеюсь вам это понятно
 
А то что вы не можете разобрать сарказм, и считаете что это приглашение к вам что-то посоветовать, так вы ошибаетесь, как впрочем вы ошибаетесь и в других вещах
 
Вы даже не обратили внимание на маршрут, я всегда его предлагаю всяким
Особенно тем кто считает что его откровения хоть кому то нужны

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 18:51 10-09-2017
angr82

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пока такую прогу нашел http://affinitychanger.sourceforge.net/

Всего записей: 45 | Зарегистр. 19-09-2014 | Отправлено: 18:52 10-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Вы переоцениваете свою значимость для меня.
не припомню, чтобы я что-то советовал Вам.
 
Я:  
- излагаю своё мнение  
- обосновываю его первоисточниками (по запросу)
- пользуюсь любым поводом для того, чтобы это мнение прояснить (ни у кого разрешения не спрашивая)
 
 
 


----------
Проект Либген v2 //
Обсуждение

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 18:55 10-09-2017
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
angr82
Скажите, а какое отношение эта утилита имеет к PowerShell?
 
 
Добавлено:
LevT

Цитата:
не припомню, чтобы я что-то советовал Вам.

Если вы страдаете прогрессирующим склерозом, буду вам чистить память

Цитата:
И да. написание кода, который выглядит по-разному для случая 1 или 100 или 10000 итераций - дисквалифицирующий признак.  

Напомнить остальные случаи? даже в том же самом посте, не говоря уже о других
или как?
 
Так вот я скажу тебе одну вещь
Ты спамер - рекламируешь себя как гуру, хотя на самом деле ты им не являешься
Ах пардон - мастер
выучил слово труба и суешь эту трубу в те места куда остальные люди её не суют
 
Во вторых если повторится с твоей стороны сравнение меня с "дисквалифицирующим признаком" а тебя с мастером я буду подавать жалобу, На
1. переход на личности
2. оскорбления
3. спам
Я достаточно доходчиво пояснил свою позицию?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 18:56 10-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Я использовал Вашу цитату для того. чтобы изложить свою точку зрения.
Для тех, кто способен её воспринять.
 
Вы-то тут причём?
 
Добавлено:
и да, перешли на личности здесь Вы
вот тут (внизу)
 
 
Добавлено:

Цитата:
рекламируешь себя как гуру

 
я в эти ваши игры не играю вовсе..
ничем не меряюсь
 

Цитата:
 куда остальные люди её не суют  

 
Мнение "остальных людей" вменяемым людям неинтересно - там где известно мнение создателей инструмента и существует традиция его профессионального использования ("школа мастерства", если угодно... или неугодно)  
 
 
Добавлено:
И да, я лично хотел бы, чтобы на рубоде открылся филиал этой школы.
Затем и прилагаю тут усилия.
 





Ваш оппонент спровоцировал переход на личности. Но вы ответили тем же. Будете прекращать или принимать меры к обоим?

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 19:11 10-09-2017 | Исправлено: IFkO, 21:30 10-09-2017
YuS_2



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

Цитата:
Пока такую прогу нашел

зачем какие-то проги, если PoSh умеет это делать?
Вы сами привели ссылку(в топике о командной строке), в которой все кратко и ясно написано...
Как Вы проверяли, что что-то не работает?

Код:
# Для установки привязки процесса к процессору необходимо использовать определенное число (сумму чисел).
# Например, для ядер 1 – 4  необходимо использовать 15.  
# 1 (0000 0001)(CPU 1)
# 2 (0000 0010)(CPU 2)
# 4 (0000 0100)(CPU 3)
# 8 (0000 1000)(CPU 4)
# 16 (0001 000)(CPU 5)
# 32 (0010 0000)(CPU 6)
# 64 (0100 0000)(CPU 7)
# 128 (1000 0000)(CPU 8)
 
$core = 2 #сумма чисел, определяющая ядра
$nproc = NameProcess #имя требуемого процесса(ов)
$proc = ps $nproc #получаем список процессов
# Присваиваем в свойство ProcessorAffinity каждого процесса требуемую сумму чисел
# Здесь, все процессы под именем "NameProcess" привязываются ко второму ядру.
foreach ($i in $proc) {  
    $i.ProcessorAffinity = $core  
}

Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 19:54 10-09-2017
KapralBel



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

Цитата:
Я использовал Вашу цитату для того. чтобы изложить свою точку зрения.

Будьте так любезны показать из какого моегом поста вы взяли фразу

Цитата:
И да. написание кода, который выглядит по-разному для случая 1 или 100 или 10000 итераций - дисквалифицирующий признак.

Да кстати ви таки не правы, дисквалифицирующий признак это сделать одинаковый код для одной и для 100 итераций )))
Как минимум оператор цикла не нужен для случая 1 итерация )))
 

Цитата:
я в эти ваши игры не играю вовсе..  

Да ню?
Во опровержение твоих слов

Цитата:
Мнение "остальных людей" вменяемым людям неинтересно

Поэтому твое мнение мне не интересно, как впрочем и остальным  
Кстати жалоба пошла
 
 
 
 
 
 
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 20:12 10-09-2017
LevT



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

Цитата:
Как минимум оператор цикла не нужен для случая 1 итерация )))  

 
нужен.
Во всех профессиональных командлетах - повторно испольуемых инструментах, попадающих по мере годности в апстрим powershell -  он (foreach) есть внутри блока process{}
 
Трубе всё равно, какой мощности массив перемолоть - для того, чтобы работяга-заказчик не парился с циклами
 
 

Цитата:
Будьте так любезны показать из какого моегом поста вы взяли фразу  

 
Это моя точка зрения, которую я изложил, использовав подвернувшийся случай.
Кстати, Вы сами вот только вот что подтвердили, что разделяете заблуждение, которое я целил опровергнуть.
 
 
Добавлено:
 

Цитата:
Трубе всё равно, какой мощности массив перемолоть - для того, чтобы работяга-заказчик не парился с циклами  

 
Это первое фундментальное свойство трубы
Второе - то, что правильно написанный командлет не блокирует исполнение следующих командлетов в трубе.  
 
Потому массивы аккумуляторы в обычных командлетах строго противопоказаны также признак непрофессионализма.
Блокируют трубу вещи типа Sort- и Measure-Object (которыми труба естественным образом оканчивается).
 
 
Добавлено:
Или вот тут вышеумученный Start-BitsTransfer по умолчанию синхронный (т.е. блокирует трубу). Это маркетинг для "админов самоделкиных", которым надо не задумываться.
 
Но для желающих сделать по феншую матану - он имеет асинхронный неблокирующий режим..  
Чуть больше усилий, но зато правильную трубу можно продолжать дальше, перемалывая в ней результат трансферов.

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 20:23 10-09-2017 | Исправлено: LevT, 22:22 10-09-2017
angr82

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

Цитата:
Как Вы проверяли, что что-то не работает?

Мой косяк с безопастностью был - сейчас все работает.

Всего записей: 45 | Зарегистр. 19-09-2014 | Отправлено: 21:37 10-09-2017 | Исправлено: angr82, 21:42 10-09-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Есть, что сказать по сертификатам в системе?
Может пошик проверить наличие левых сертификатов в системе и выдать полезную инфу?
А то мы в теме по выни, с моей подачи, увлеклись сторонней утилитой от Руссиновича.
Что скажешь в свое "оправдание"? (шутка).

Всего записей: 11448 | Зарегистр. 12-10-2001 | Отправлено: 15:37 12-09-2017
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS
Отобрать подлежащие проверке:  например dir Cert:\CurrentUser -...  или dir Cert:\LocalMachine -...
Остаётся уточнить, где и по каким признакам искать сертификаты

Код:
 
CodeSigningCert          - [switch] CodeSigningCert
DocumentEncryptionCert   - [switch] DocumentEncryptionCert
SSLServerAuthentication  - [switch] SSLServerAuthentication
DnsName                  - [DnsNameRepresentation] DnsName
Eku                      - [string[]] Eku
 

(это всё есть в дополнение к стандартным для PSпровайдера параметрам Get-ChildItem)
 
и как именно ты определяешь "левизну".  
Проверить отобранные
 
 
ЗЫ.
Ответ был мною написан без знания каких-либо фактов в этой конкретной области: достаточно знания общих принципов (например, списка доступных PS провайдеров)
 

Всего записей: 17734 | Зарегистр. 14-10-2001 | Отправлено: 15:59 12-09-2017 | Исправлено: LevT, 16:32 12-09-2017
   

Страницы: 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

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » PowerShell
KLASS (06-03-2018 00:43): Объединение тем по сценариям: Сценарии Windows


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru