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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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.
• Сторонние консольные утилиты можно использовать только в виде готового решения и только в рамках сценариев. Никаких обсуждений и обучений работе с утилитами не предусмотрено и прямо запрещено правилами топика.
Шапка и около-темные вопросы |

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



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

Аллилуйя. Никому не нравится. Начнешь с себя, не указывать?
Все преследуют свои цели.
Догадываешься же куда будут посылать с твоими рекомендациями?
 
Без озвучивания цели или чёткой формулировки мысли, я по прежнему не понимаю о чём дискуссия.
 

Цитата:
В частности, меня совершенно устроило новое для этой темы направление

Нету направлений, есть изменчивое движение, иногда совпадающие с другими, образующее волну, сегодня это интересно, завтра другое.
А направление это указание куда идти, а куда идти указующим…?
 

Цитата:
Вроде как до находки YuS_2 ты не меньше моего интересовался самопальной менюшкой...  

Я пытался помочь, не готовым решением, а постепенным объяснением. А потом, после вас, в спойлер пару функций.
Ты сказал, что с функциями, что то не так. Я пытался выяснить, что. Не удалось… Вот и весь интерес.
 

Цитата:
Если ты желаешь замять возникшую вчера тему с использованием install-module  
     (пользователями, по рекомендации здешних разработчиков) - я не хочу и не могу тебя неволить.  

Где ты увидел тему, возникшую у пользователей? Один разработчик, предложил возможность использовать готовые решения. тчк
Где я против? Я не понимаю, как из одного предложения, делать какие то обобщения.
Я против выработки указаний, каждый будет преследовать собственные цели, а не указанные мне кем бы то ни было.  
 
Ты не озвучиваешь цель, не формулируешь интерес.

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 09:14 03-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
Бегу, если отвечу потом, то уже в ПМ
 
Ссылка подвернулась
https://github.com/jskeet/edulinq
 
Самопальная реализация Linq
 
 
Добавлено:
iNNOKENTIY21

Цитата:
Догадываешься же куда будут посылать с твоими рекомендациями?

 
Посылай куда хочешь: это тоже твоё полное право.
И оценивать твоё право.
Так же, как и моё.
 
Хорошо, когда оценки основаны на принципах, из которых они следуют.
Мои основаны, и потому они не офтопик.
 
 

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

 
Вопрос в том, является ли эта тема местом для вываливания всяких ништяков?
По-моему, её потенциал к этому не сводится.
 
 

Цитата:
Я пытался помочь, не готовым решением, а постепенным объяснением. А потом, после вас, в спойлер пару функций.
Ты сказал, что с функциями, что то не так. Я пытался выяснить, что. Не удалось… Вот и весь интерес.

 
Мне было бы очень интересно в паре с тобой отрефакторить это в твоём направлении.
Может, и получится "так".
 
Ни мне ни тебе сходу "так" написать это не под силу.
Я попытался объяснить почему, но вышло заумно.  
Потому что заумна суть предмета: само определение, что значит "так"
 
 
Добавлено:
 
И да, я понимаю, что форум не лучшее место для сотрудничества над улучшением кода.
Для этого есть гитхаб.
 
Но ты тормозишь его осилить - и приходится подстраиваться под тебя.
Мне не сложно.
 
Но тема объективно страдает.
Но ты для неё столь ценный кадр, что я считаю эту жертву оправданной.
 

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 10:33 03-02-2020 | Исправлено: LevT, 11:33 03-02-2020
daMIR



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Подскажите по выводу результатов в файл, туплю и не выходит:
 
 
 $allcomputers = Get-Content C:\temp\pc_up.txt
 ForEach($computers in $allcomputers)
 
    {
    $OS = gwmi  Win32_OperatingSystem -ComputerName $computers | Select Caption, OSArchitecture, CSName, TotalVisibleMemorySize
    $CPU = gwmi  Win32_Processor -ComputerName $computers | Select Name
    $RAM = gwmi  Win32_MemoryDevice -ComputerName $computers | Select DeviceID, StartingAddress, EndingAddress
    $MB = gwmi  Win32_BaseBoard -ComputerName $computers | Select Manufacturer, Product
    $VGA = gwmi  Win32_VideoController -ComputerName $computers | Select Name
    $HDD = gwmi  Win32_DiskDrive -ComputerName $computers | select Model, Size
 
    Select  $VGA | Export-Csv C:\temp\PC_info.csv -Delimiter ";" -NoTypeInformation
 
}
 
 Простейший скрипт. Пробегает по именам компов и собирает инфу. С этим проблем нет. Вопрос, как все результаты закинуть в csv файл. Что-то не выходит. В переменных хранятся несколько значений, возможно, дело в этом. Можно на каждый параметр завести свою переменную, но как их вывести в табличном виде?

Всего записей: 1757 | Зарегистр. 14-03-2004 | Отправлено: 10:23 06-02-2020
farag



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

Код:
 
"edge": {
    "services": {
      "signin_scoped_device_id": "e4600182-9a31-4c6d-aa47-2509ae329c82"
    }
  },
  "extensions": {
    "alerts": {
      "initialized": true
    }
 

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

Код:
 
"edge": {
    "services": {
      "signin_scoped_device_id": "e4600182-9a31-4c6d-aa47-2509ae329c82"
    }
  },
  "enhanced_tracking_prevention": {
    "user_pref": 2
  },

  "extensions": {
    "alerts": {
      "initialized": true
    }
 

А то никакие конструкции не работают что-то.

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 11:03 06-02-2020 | Исправлено: farag, 11:04 06-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
daMIR
Лучше Json или XML, CSV «плоский».
Подробнее...
Если всё же плоский, то Подробнее...
 
 
Добавлено:
 

farag Если необязательно  посередине, то работа как с объектом Подробнее...

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 11:14 06-02-2020 | Исправлено: iNNOKENTIY21, 13:36 06-02-2020
farag



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

Код:
 
$Json = @"
{
   "edge": {
       "services": {
           "signin_scoped_device_id": "e4600182-9a31-4c6d-aa47-2509ae329c82"
       }
   },
   "extensions": {
       "alerts": {
           "initialized": true
       }
   }
}
"@
 
$edge = ConvertFrom-Json $Json
$edge | Add-Member -MemberType NoteProperty -Name enhanced_tracking_prevention -Value @{user_pref = 3}
 
ConvertTo-Json -InputObject $edge | Set-Content -Path "$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\Preferences"
 
 
$Preferences = Get-Content -Path "$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\Preferences" | ConvertFrom-Json
$Preferences.enhanced_tracking_prevention.user_pref
 

Работает (но все-таки думаю, что по середине надо обязательно)! Но очевидно, перезаписывает весь файл. Есть ли рациональный способ добавить эту запись в нужное место, не заменяя или добавляя в в конец файла?
Ибо

Код:
 
$Preferences = Get-Content -Path "$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\Preferences" | ConvertFrom-Json
# Tracking prevention: balanced
# Блокировка отслеживания: уравновешенная
$Preferences.enhanced_tracking_prevention.user_pref = 2
 

работает тогда и лишь только тогда, когда пользователь вручную изменил указанную настройку в другое положение, и только тогда в JSON-файле создает соответствующая запись, а до этого ее просто нет. А к политикам не хочу прибегать.
 
https://codebeautify.org/jsonviewer/cb82a302
182 строчка

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 12:24 06-02-2020 | Исправлено: farag, 12:30 06-02-2020
LevT



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

Код:
 
PS C:\Users\op> Get-WmiObject Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber | ft -AutoSize
 
Caption                             Version    BuildNumber
-------                             -------    -----------
Майкрософт Windows 10 Корпоративная 10.0.18362 18362
 

 
А скрипт (пакет шоколадки) хочет здесь увидеть Enterprise, и отказывается продолжать
 
 
2)  

Код:
 
PS C:\windows\system32> gci / -Filter 'id_rsa' -File -Recurse -ov found
 
PS C:\windows\system32> $found
 
    Каталог: C:\Windows\System32\config\systemprofile\AppData\Roaming\multipassd\ssh-keys
 
PS C:\windows\system32> $found.Directory.FullName
C:\Windows\System32\config\systemprofile\AppData\Roaming\multipassd\ssh-keys
 

 
То же самое, вывод форматируется под локализацию.
Для безъязыкого эникея понятнее, для консольного админа беда
 
 
Я уже больше десяти лет использую en_US винду с добавленной русской клавой и "русским дефолтом для неюникода", и горя не знаю.
Родственникам и знакомым отдаю её же с установленным пакетом локализации и ru_RU наверх.

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 12:56 06-02-2020 | Исправлено: LevT, 13:06 07-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
farag
Весь файл, а как еще.
Если в этот json ещё, что то надо. То сперва накопить изменения в объекте, а потом все сразу и конвертировать, сохранять за одну операцию.

Цитата:
но все-таки думаю, что по середине надо обязательно

Почему?
Работают как с объектом, где по имени раздела/параметра идёт навигация. А тогда без разницы, где.
Главное же в нужный раздел записать параметр. Соблюдая иерархию, а валидность json, конвертер проверит
У тебя в коде ($Preferences.enhanced_tracking_prevention.user_pref = 2 ), то же навигация по именам раздел\параметр =

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 13:24 06-02-2020
newhk



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот что у меня вышло в итоге
Подробнее...

Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 13:46 06-02-2020 | Исправлено: newhk, 14:21 06-02-2020
iNNOKENTIY21



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

Вы забыли про дабы вызов вашей функции, был, только при выполнении условия.
Вызов функции exportvm должен быть внутри блока IF, после этой строки $vmname = @($vmlist)[$number-1].Name

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 15:14 06-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть давний скрипт для подключения к явебдаву Подробнее... Не соображу, как быть, если надо два аккаунта, так подключить?

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 20:41 06-02-2020
LevT



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

Код:

$script = {
  [CmdletBinding()]
  Param
  (
    [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
    [ValidateNotNullOrEmpty()]
    [ValidatePattern("[a-zA-Z]")]
    #Назначенная буква сетевого диска для подключения к WebDAV яндекс диска.
    [char]$YDisk = "Y",
    [String]$Username,
    [string]$Password

  )
 
  process
  {
    #Если диск не доступен, то подлкючить.
    if (!(Test-Path -Path "$($YDisk):")) {
      net use "$($YDisk):" https://webdav.yandex.ru /user:$($Username) $($Password) /PERSISTENT:NO
    }
  }
}
 
& $script 'Y' user pass

 
Я просто в своё время запомнил эту часть хелпа к net use...
 
 
Добавлено:
/savecred имеет отношение к Windows Credentials Manager
А там с одним сервером не могут быть два набора креденшиалов.
Без него должно получиться
Проверяй сам.
 

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 00:51 07-02-2020 | Исправлено: LevT, 01:00 07-02-2020
farag



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

Всего записей: 2474 | Зарегистр. 27-07-2009 | Отправлено: 09:30 07-02-2020 | Исправлено: farag, 09:36 07-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
А там с одним сервером не могут быть два набора креденшиалов.  

Печалька. А если очень хочется? А может сохранить креды, как то, под другим «именем» а в скрипте выбирать какой использовать? Или от другого юзера запускать. Эхъ.  

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 09:43 07-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
Эта фишка называется credential manager (вообще, а не виндовз)
 
Их много, начиная с бесплатного Keypass и кончая облачными монстрами
Есть Devolutions здесь в варезнике, с бесплатным вариантом.
 
Для многих есть управляющие модули повершел.
 
 
Добавлено:
iNNOKENTIY21
 
Хотя если тебе только несколько паролей закриптовать - можно погуглить как-то "powershell secrets"
SecureString емнип секурна, но привязана к текущей учётке на текущей оси, потому непортабельна
 
 

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 10:00 07-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
Хотя если тебе только несколько паролей закриптовать - можно погуглить как-то "powershell secrets"
SecureString емнип секурна, но привязана к текущей учётке на текущей оси, потому непортабельна

Код:
<#
.SYNOPSIS
Сохранение пароля в зашифрованном виде в файл.
 
.DESCRIPTION
Запрос на ввод пароля (под звездочками) и сохранение его в зашифрованном виде в
указанный в параметре -Path файл.
 
.EXAMPLE
Путь\К\Скрипту\Set-PasswordFile.ps1 "c:\docs\secret.pass"
 
.NOTES
Храните файл с зашифрованным паролем в недоступном для посторонних месте.
#>
 
 
[CmdletBinding()]
Param
(
    [Parameter(Mandatory=$true)]
    [ValidateNotNullOrEmpty()]
    [ValidateScript({ Split-Path $_ | Test-Path })]
    [String]
    #Полный путь к файлу куда сохранять зашифрованный пароль.
    $path
)
 
#Запрос пользователю ввести пароль.
$secure = Read-Host -Prompt "Введите пароль" -AsSecureString
 
#Шифрация введенного пароля.
$encrypted = ConvertFrom-SecureString -SecureString $secure
 
#Сохранение шифрованного пароля в указанный в переменной $path файл.
$encrypted | Set-Content -Path $path

Код:
Function Get-Password
{
    Param
    (
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [ValidateScript({ Test-Path $_ })]
        [String]
        #Путь к зашифрованному файлу с паролем.
        $path
    )
 
    $ErrorActionPreference = "Stop"
 
    #Создать приватную переменную secure.
    New-Variable -Name secure -Visibility Private
 
    #Загрузить и сконвертировать шифрованный файл в SecureString.
    $secure = Get-Content $path | ConvertTo-SecureString
 
    #Создать приватную переменную bstr.
    New-Variable -Name bstr -Visibility Private
 
    #Коенвертировать SecureString в BSTR
    $bstr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($secure)
 
    #Создать приватную переменную plain.
    New-Variable -Name plain -Visibility Private
 
    #Коенвертировать BSTR в PlainText.
    $plain = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($bstr)
 
    return $plain
}

 
Я возжелал воспользоваться сейфом windows.
А ведавка, 2 диска одновременно, не хочет к одному серверу, ну хотя бы попеременно бы, без ввода паролей.

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 11:25 07-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
ну если погуглить webdav powershell что-то нагугливается..
 
Добавлено:
Вообще-то, невозможность нескольких наборов креденшиалов для удалённого подключения по smb - фишка виндового smb
Может когда-то они таким образом затыкали какие-то дыры.
 
На вебдав это не обязательно должно распространяться.
net use - это изначально управлялка именно мапингом smb шар, всё остальное к ней прилеплено сбоку

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 11:30 07-02-2020 | Исправлено: LevT, 11:38 07-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
ну если погуглить webdav powershell что-то нагугливается..

Что именно? Чего то ничего подходящего не вижу.
 
Я же попробовал, не подключает оно при уже имеющемся подключении к тому же серверу. Подробнее... При отключении и повторном подключении к тому же серверу, уже с другими учетными данными, новые учетные данные заменяют предыдущие.

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 12:16 07-02-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
 
Ну значит это такая же фича вебдав клиента винды, как фича smb клиента.
Остаётся скриптовать временные подключения
 
 
 
Добавлено:
Еще можно попробовать назначить локальный dns алиас целевому серверу.
Ну, то есть имя от фонаря, которое разрешалось бы куда надо.
 
Авось, проканает за разные.
 
 
 
Добавлено:
 
 
Есть известный "недостаток" повершел: невозможность назначить Alias команде с ключами.
Так вот, для этого вместо алиасов скриптблоки,  
 
    таков повершел way

Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 13:11 07-02-2020
iNNOKENTIY21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LevT
Цитата:
Еще можно попробовать назначить локальный dns алиас целевому серверу.  

hosts?

Всего записей: 3504 | Зарегистр. 16-08-2012 | Отправлено: 14:52 07-02-2020
Открыть новую тему     Написать ответ в эту тему

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