1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Удаленное выполнение сценариев в Windows PowerShell 2.0

Содержание

PowerShell: Выполнение сценариев отключено в этой системе

В операционной системе Windows 10 имеется мощный инструмент для управления и выполнения различных задач — это PowerShell. Эта консоль предназначена для администраторов, поскольку она позволяет им контролировать всю операционную систему с помощью сценариев (script). PowerShell используется многими фоновыми приложениями для внесения изменений в систему и это ставит под угрозу безопасность нашего ПК.

Сценарий (script) — простая программа написана в коде, который работает линейно на нашем компьютере. Мы можем создавать и выполнять собственные сценарии для автоматизации задач, или приложения могут выполнять их для выполнения определенных конфигураций и задач. По умолчанию Windows 10 не запрещает ни приложениям, ни нам запускать сценарии в системе, если они подписаны или являются «своими». Проблема возникает, когда мы запускаем свой скрипт, и нам выдает ошибку «Выполнение сценариев отключено в этой системе«. Это многоуровневая мера безопасности в PowerShell, которая предотвращает запуск вредоносных сценариев и может нанести вред системе. Давайте разберем, как изменить политики безопасности для PowerShell.

Политики выполнения скриптов в PowerShell

Если вы увидели ошибку «Выполнение сценариев отключено в этой системе«, то можем проверить конфигурацию политик для запуска сценариев, которые настроены в Windows 10. Откройте PowerShell от имени администратора и:

  • Get-ExecutionPolicy -List

Мы можем видеть несколько уровней разрешений политик для запуска сценариев.

Чтобы изменить политику запуска скрипта, вы должны знать различные уровни привилегий, которые мы можем назначить каждому из областей.

  • Restricted: заблокировано выполнение любых скриптов, но разрешается работа интерактивных команд.
  • RemoteSigned: загруженные скрипты должны быть подписаны доверенным издателем. Локальные скрипты работают без подписи
  • AllSigned: разрешает выполнение любого подписанного скрипта, как локального, так и удаленного (загруженного).
  • Unrestricted: без ограничений. Вы можете запустить все сценарии, даже те, которые не подписаны.

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

  • Set-ExecutionPolicy Unrestricted -Scope CurrentUser — запуск без ограничения для пользователя.
  • Set-ExecutionPolicyRestricted -Scope CurrentUser вернуть назад, если будет нужно.

Разрешает без ограничений выполнять сценарии для локального пользователя. Ключ -Scope определяет, к чему применяется изменение политики. Когда вы вводите «CurrentUser«, то применяется только к текущему пользователю, а когда вы вводите «LocalMachine«, он применяется ко всей системе.

Если выше способ не помог вам запустить свой скрипт и ошибка «Выполнение сценариев отключено в этой системе» появляется, то можно снять полностью ограничения. Вы должны понимать, что это большой риск и ваш скрипт должен быть безопасен на 101%. Откройте PowerShell от имени админа и:

  • Set-ExecutionPolicy Unrestricted — разрешить выполнение скриптов без ограничений.
  • Set-ExecutionPolicy Restricted — вернуть назад по умолчанию.

Как создать и запустить сценарий PowerShell в Windows 10 – инструкция по шагам

Windows 10 PowerShell – это средство командной строки, которое позволяет выполнять команды и сценарии для изменения параметров системы и автоматизации задач. Это похоже на командную строку, но PowerShell является более эффективным интерфейсом командной строки (CLI), который предоставляет широкий набор инструментов и обеспечивает большую гибкость и контроль (особенно для сценариев).

Скрипт – это просто набор команд, сохраненных в текстовый файл (с расширением .ps1), которые PowerShell может понять и выполнить в заданной последовательности. Единственное предупреждение заключается в том, что в отличие от командной строки, протокол безопасности по умолчанию предотвращает выполнение всех сценариев.

Это означает, что при двойном щелчке .ps1 файла в системе Windows 10 ничего не произойдёт, и если вы пытаетесь выполнить скрипт в PowerShell, вы получите сообщение об ошибке: «не может быть загружен, потому что запрещено выполнение сценариев в этой системе». Тем не менее, запускать сценарии на вашем устройстве довольно просто. Вам просто нужно включить правильную политику выполнения.

В этой версии урока по Windows 10 мы проведём вас шаг за шагом, чтобы вы смогли успешно запустить свой первый скрипт в PowerShell.

Создание файла сценария PowerShell

В Windows 10 файлы сценариев PowerShell можно создавать с помощью практически любого текстового редактора или консоли интегрированной среды сценариев (ISE).

Создание скрипта с помощью блокнота

Чтобы создать сценарий PowerShell с помощью блокнота, выполните следующие действия:

  1. Откройте приложение «Блокнот».
  2. Создайте или вставьте сценарий. Например: Write-Host ««Поздравляем! Ваш первый скрипт успешно выполнен»»

Вышеприведенный скрипт просто выводит на экране фразу «Поздравляем! Ваш первый скрипт успешно выполнен».

  • Сохраните файл под любым удобным названием, например, first_script.ps1
  • Создание сценария с помощью интегрированной среды сценариев

    Кроме того, консоль PowerShell ISE можно использовать для кодирования сценариев в Windows 10. Интегрированная cреда сценариев является сложным инструментом, но вы можете начать работу с помощью этих шагов:

      Откройте системный поиск и введите запрос Windows PowerShell ISE, щелкните правой кнопкой мыши верхний результат, и выберите Запуск от имени администратора или выберите соответствующий параметр в правой колонке.

    В PowerShell ISE создайте пустой файл .ps1, в котором можно создать или вставить скрипт. Например:

    Write-Host ««Поздравляем! Ваш первый скрипт успешно выполнен»»

  • Откройте меню Файл и нажмите кнопку Сохранить .
  • Введите название сценария. Например, first_script_ise.ps1
  • Сохраните скрипт.
  • Как только Вы выполнили эти шаги с помощью Блокнота или PowerShell ISE, сценарий готов к запуску, но он не будет выполнен. Это происходит потому, что параметры PowerShell по умолчанию всегда настроены на блокирование выполнения любого сценария.

    Запуск файла сценария PowerShell

    Чтобы запустить файл сценария в PowerShell, необходимо изменить политику выполнения, выполнив следующие действия:

    1. Откройте поиск и введите PowerShell, щелкните правой кнопкой мыши в верхний результат и выберите Запуск от имени администратора.
    2. Введите следующую команду, чтобы разрешить выполнение скриптов и нажмите клавишу Enter :

    Укажите тип А и ещё раз нажмите клавишу Enter .

    Введите следующую команду для запуска скрипта и нажмите клавишу Enter :

    В приведенной выше команде обязательно измените PATHtoSCRIPT на расположение вашего скрипта.

    После выполнения этих шагов сценарий будет запущен, и если он был создан правильно, вы должны увидеть его вывод без проблем.

    PowerShell в Windows 10 включает четыре политики выполнения:

    • Restricted – останавливает выполнение скрипта.
    • RemoteSigned – запускает скрипты, созданные на устройстве. Однако, сценарии, созданные на другом компьютере, не будут запускаться, если они не содержат подписи доверенного издателя.
    • AllSigned – все скрипты будут работать до тех пор, пока они подписаны надежным издателем.
    • Unrestricted запускает любой скрипт без каких-либо ограничений.

    В приведенных выше шагах мы использовали команду, чтобы разрешить запуск локальных скриптов в Windows 10. Однако, если вы не планируете регулярно выполнять скрипты, можно восстановить настройки по умолчанию, используя те же инструкции, но на Шаге 4, обязательно используйте Set-ExecutionPolicy Restricted команду.

    PowerShell: Не удается загрузить файл, так как выполнение скриптов запрещено для данной системы

    О запрете на выполнение скриптов PowerShell

    В целях безопасности, в операционных системах Windows, по умолчанию запрещено выполнение созданных вручную файлов ps1, они же скрипты PowerShell. Так что, когда вы попытаетесь запустить какой-либо скрипт через PowerShell, то скорее всего получите следующее уведомление:

    Не удается загрузить файл C:Documents and SettingsRecluseРабочий столscript.ps1, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.

    В данном случае выполнению скрипта препятствует включенный запрет на выполнение неподписанных скриптов.

    Отключение запрета на выполнение скриптов через PowerShell

    Отключить запрет можно следующей командой PowerShell:

    Однако, в таком случае можно будет выполнить любой скрипт PowerShell, даже запущенный «из интернета». Поэтому, куда безопаснее будет отключить проверку подписи для скриптов PowerShell только для локальных скриптов. Делается это так:

    Для того, чтобы вернуть все как было (запретить выполнение любых скриптов), нужно выполнить команду:

    Кроме этого, можно обойти запрет на выполнение скрипта просто используя параметр -ExecutionPolicy Bypass запуска для PowerShell. То есть, если Вам нужно выполнить файл script.ps1, то можно это сделать следующим образом:

    Отключение запрета через групповые политики

    Настройки PowerShell находятся в отдельном разделе групповых политик — Конфигурация компьютера — Политики — Административные шаблоны — Компоненты Windows — Windows PowerShell. Конкретно, для разрешения выполнения скриптов, нужно открыть параметр «Включить выполнение сценариев», и задать ему значение «Разрешить локальные сценарии и удаленные подписанные сценарии».

    Отключение запрета через реестр

    Еще одним способом отключения ограничения на выполнение скриптов Powershell, является редактирование реестра. Параметр, который отвечает за выполнение скриптов PowerShell находится по следующему адресу: HKEY_CURRENT_USERSoftwareMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell , и носит название ExcutionPolicy . У данного параметра возможны следующие значения:

    • Restricted
    • AllSigned
    • RemoteSigned
    • Unrestricted

    Приемы работы с удаленными системами через PowerShell

    Я часто работаю с командами на удаленных системах через PowerShell как во время пентестов, так и при решении повседневных задач. Запуска удаленных команд происходит через протокол WinRM (Windows Remote Management), который, насколько мне известно, поддерживается в Windows Vista SP 1, Windows 7, Windows Server 2008 и Windows Server 2012.

    Автор: Scott Sutherland

    Я часто работаю с командами на удаленных системах через PowerShell как во время пентестов, так и при решении повседневных задач. Запуска удаленных команд происходит через протокол WinRM (Windows Remote Management), который, насколько мне известно, поддерживается в Windows Vista SP 1, Windows 7, Windows Server 2008 и Windows Server 2012.

    Перед тем как начать работу с удаленной системой, необходимо выполнить настройку.

    1. Запустите консоль PowerShell от имени администратора и выполните следующую команду:

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

    2. Убедитесь в том, что служба WinRM запускается автоматически.

    # Устанавливаем нужный режим

    Set-Service WinRM -StartMode Automatic

    # Проверяем, что служба запущена

    Get-WmiObject -Class win32_service | Where-Object

    3. Устанавливаем у всех хостов статус «достоверный» (можно сделать позже).

    # Доверяем всем хостам

    Set-Item WSMan:localhostclienttrustedhosts -value *

    # Проверяем настройку достоверных хостов

    Примеры работы с удаленными системами

    Перед ознакомлением с примерами рекомендую вам прочитать прекрасную статью, посвященную работе с удаленными командами в PowerShell.

    Запуск одиночной команды на удаленной системе

    Команда «Invoke-Command» предназначена для запуска команд на удаленных системах. Можно работать от имени текущего пользователя, либо использовать стороннюю учетную запись, если вы работаете в системе, которая не является частью домена:

    Invoke-Command –ComputerName MyServer1 -ScriptBlock
    Invoke-Command –ComputerName MyServer1 -Credentials demoserveradmin -ScriptBlock

    Если установлен модуль для работы с ActiveDirectory, становится возможным запуск команд на множестве систем при помощи каналов (pipeline):

    Get-ADComputer -Filter * -properties name | select @> |
    Invoke-Command -ScriptBlock

    Иногда на удаленной системе требуется запустить скрипт, хранящийся локально:

    Invoke-Command -ComputerName MyServer1 -FilePath C:pentestInvoke-Mimikatz.ps1
    Invoke-Command -ComputerName MyServer1 -FilePath C:pentestInvoke-Mimikatz.ps1 -Credentials demoserveradmin

    Если вы генерируете команды или функции динамически, которые затем передаются на удаленную систему можно использовать связку команд invoke-expression и invoke-command:

    $MyCommand = «hostname»
    $MyFunction = «function evil ;evil»
    invoke-command -ComputerName MyServer1 -Credentials demoserveradmin -ScriptBlock
    -ArgumentList $MyFunction

    Организация интерактивной консоли на удаленной системе

    Организовать интерактивную консоль в PowerShell на удаленной системе можно при помощи команды «Enter-PsSession» (немного похожа на SSH). Команда «Enter-PsSession» также запускается либо от имени текущего пользователя, либо при помощи альтернативной учетной записи:

    Enter-PsSession –ComputerName server1.domain.com
    Enter-PsSession –ComputerName server1.domain.com –Credentials domainserveradmin

    Закрытие сессии выполняется при помощи команды «Exit-PsSession»:

    Создание фоновых сессий

    Еще одна полезная возможность позволяет создавать фоновые сессии (команда «New-PsSession»). Фоновые сессии могут оказаться полезны при запуске множества команд во множестве систем. Как и предыдущие команды, команда «New-PsSession» запускается от имени текущего пользователя, либо при помощи альтернативной учетной записи:

    New-PSSession -ComputerName server1.domain.com
    New-PSSession –ComputerName server1.domain.com –Credentials domainserveradmin

    Если установлен модуль для работы с ActiveDirectory, становится возможным единовременное создание фоновых сессий для множества систем (этот трюк можно выполнить различными способами). Ниже показан пример создания фоновых сессий для всех систем, входящих в домен. В примере создание сессий происходит в системе, не входящей в домен, при помощи альтернативной учетной записи домена.

    New-PSDrive -PSProvider ActiveDirectory -Name RemoteADS -Root »
    » -Server a.b.c.d -credential domainuser
    cd RemoteADS:
    Get-ADComputer -Filter * -Properties name | select @>
    | New-PSSession

    Вывод перечня фоновых сессий

    Как только создано несколько фоновых сессий, можно просмотреть их перечень при помощи команды «Get-PsSession».

    Взаимодействие с фоновыми сессиями

    Первое время у меня было ощущение схожее с тем, как я работал с сессиями в MetaSploit. Однако фоновые сессии в PowerShell чуть более стабильны. Ниже показан пример взаимодействия при помощи идентификатора сессии:

    Enter-PsSession –id 3

    Для выхода из сессии используйте команду «Exit-PsSession». Сессия перейдет обратно в фоновый режим.

    Запуск команд через фоновые сессии

    Если вы хотите выполнить команду во всех активных сессиях, используйте связку команд «Invoke-Command» и «Get-PsSession».

    Invoke-Command -Session (Get-PSSession) -ScriptBlock

    Удаление фоновых сессий

    Для удаления всех активных сессий используйте команду «Disconnect-PsSession»

    Удаленные команды в PowerShell открывают огромные возможности, как для администраторов, так и для пентестеров. Вне зависимости от ситуации, как вы будете работать с удаленными системами, все сводится к следующему:

    • Для запуска одиночной команды на удаленной системе используйте «Invoke-Command».
    • Для взаимодействия с одиночной системой используйте «Enter-PSSession».
    • Если вы хотите запускать множество команд во множестве систем, используйте фоновые сессии.

    Надеюсь, эта статья оказалась для вас полезной.

    Подписывайтесь на каналы «SecurityLab» в Telegram и Яндекс.Дзен, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.

    Запуск скрипта PowerShell на удаленном сервере

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

    Нашел несколько способов этой реализации Exit-PSSession, New-PSSession, Invoke-Command.
    Но с толкнулся с тем что powershell говорит мне что нет доступа до удаленного сервера.
    проверил первый раз и правда не оказалось, добавил разрешение. но проблема не ушла.

    Код добавления разрешения

    Как запустить скрипт на удаленном сервере без winrm, rpc. Powershell
    В связи со свирепствующими вирусами появилась задача пере организовать работу скрипт-сервера.

    Запуск скрипта PowerShell при входе в систему
    Всем добрый день. Прошу сильно не пинать, а помочь разобраться или хотя бы направить в нужное.

    Запуск готового скрипта на удалённом сервере
    Доброго времени суток. Я очередной новичок в PowerShell, поэтому прошу не судите строго. У меня.

    Поиск файлов по сети ( на удаленном сервере)
    Имеется два компьютера: А и Б подключенных к одному серверу Компьютер А: windows xp, сетевая карта.

    Наверное не правильно выразился. сейчас попробую объяснить.

    я написал некое подобие меню:

    ПРЕДОСТАВЛЕНИЕ УЧЕТНЫХ ДАННЫХ АДМИНИСТРАТОРА
    —————————————-
    ОШИБКА. ДОСТУП ЗАПРЕЩЕН

    Для создания сеанса PSSession или выполнения команд на удаленном
    компьютере по умолчанию текущий пользователь должен быть членом
    группы «Администраторы» на удаленном компьютере. Иногда
    требуется указывать учетные данные, даже если текущий
    пользователь является членом группы «Администраторы».

    Если текущий пользователь является членом группы «Администраторы»
    на удаленном компьютере или может указать учетные данные члена
    группы «Администраторы», воспользуйтесь для удаленного
    подключения параметром Credential командлета New-PSSession,
    Enter-PSSession или Invoke-Command.

    Например, в следующей команде задаются учетные
    данные администратора.

    Invoke-Command -ComputerName Server01 -Credential Domain01Admin01

    Дополнительные сведения о параметре Credential см. в разделе
    New-PSSession, Enter-PSSession или Invoke-Command.

    ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ, НЕ
    ЯВЛЯЮЩИХСЯ АДМИНИСТРАТОРАМИ
    —————————————————
    ОШИБКА. ДОСТУП ЗАПРЕЩЕН

    Для создания сеанса PSSession или выполнения команды на удаленном
    компьютере пользователю требуется разрешение на использование
    конфигураций сеансов на удаленном компьютере.

    По умолчанию только члены группы «Администраторы» на компьютере
    имеют разрешение на использование конфигураций сеансов по
    умолчанию. Поэтому только члены группы «Администраторы» могут
    удаленно подключаться к компьютеру.

    Чтобы разрешить другим пользователям подключаться к локальному
    компьютеру, предоставьте разрешение на запуск для конфигураций
    сеансов по умолчанию на локальном компьютере.

    Следующая команда открывает лист свойств, позволяющий изменять
    дескриптор безопасности конфигурации сеанса Microsoft.PowerShell
    по умолчанию на локальном компьютере.

    Set-PSSessionConfiguration Microsoft.Powershell -ShowSecurityDescriptorUI

    Дополнительные сведения см. в разделе about_Session_Configurations .

    Запуск скриптов PowerShell

    PowerShell — это новая командная оболочка для Windows, которая по задумкам Microsoft должна вытеснить и заменить cmd. По-умолчанию, эта оболочка уже идет в составе Windows 7 и выше. Если у вас более старая операционная система или вы просто хотите скачать более свежую версию PowerShell, сделать это можно здесь: https://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx

    Как запустить скрипт PowerShell?

    Есть несколько различных способов запуска скрипта, ниже приведены основные:

    1. Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:Scriptstest.ps1, или перейти в папку скрипта командой cd C:Scripts и запустить его командой .test.ps1) Оболочку можно найти и запустить множеством способов. Один из способов — через меню «Пуск». Для Windows 7 — нужно зайти во «Все программы» — «Стандартные» — «Windows PowerShell» и запустить оболочку «Windows PowerShell». Для Windows 10 — нужно найти группу на букву «W» и в ней вы найдете «Windows PowerShell».
    2. Запустить «Интегрированную среду сценариев Windows PowerShell ISE» — это программа — среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку «Открыть» или зайти в меню Файл — Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку «Выполнить скрипт».Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell — в меню «Пуск».
    3. Запустить стандартную коммандную строку и в ней написать:
      powershell -file (пример: powershell -file myscript.ps1)

    Если вы раньше не запускали скрипты PowerShell, то скорее всего, вы получите сообщение: Не удается загрузить файл , так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений. Связано это с тем, что из соображений безопасности и недопущения случайного выполнения вредоносного кода, все скрипты должны быть подписаны цифровой подписью.

    Как разрешить выполнение неподписанного скрипта PowerShell?

    1. В оболочке PowerShell , перед тем как запускать скрипт, выполнить команду, разрешающую выполнение неподписанных скриптов для текущего сеанса оболочки:

    Set-ExecutionPolicy RemoteSigned -Scope Process

    2. При запуске из стандартной коммандной строки использовать параметр -executionpolicy, т.е. запускать скрипт так:

    powershell -executionpolicy RemoteSigned -file

    Оба способа устанавливают политику только для текущего сеанса, при этом, политика безопасности выполнения скриптов PowerShell, прописанная в реестре, не будет изменена и останется прежней. Если вы хотите поменять политику безопасности выполнения скриптов «на постоянно», то используйте такой способ:

    3. Разрешить запуск навсегда : запустить оболочку PowerShell от имени «Администратора», затем выполните команду:

    Set-ExecutionPolicy RemoteSigned

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

    Примечание: Если скрипт был загружен из интернета, то чтобы избежать запроса на подтверждение запуска, нужно вместо RemoteSigned использовать Bypass — полное отключение любых запросов и предупреждений.

    Как запустить скрипт PowerShell в фоновом режиме?

    Для этого достаточно использовать параметр запуска -WindowStyle, который может принимать значения: Normal, Minimized, Maximized и Hidden. Таким образом, чтобы запустить неподписанный скрипт в фоновом режиме, нужно выполнить команду:

    powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file

    Так же можно еще при желании добавить -NonInteractive, чтобы скрипт не задавал никаких вопросов. Таким образом, скрипт выполнится незаметно для пользователя. Будmте внимательны, используя такой способ.

    Запуск скрипта PowerShell c параметрами

    Собственно запуск нужно делать как если бы вы запускали обычную программу или bat-файл с параметрами. Например, для запуска скрипта с параметрами из командной, можно написать такую команду:

    powershell -executionpolicy RemoteSigned -file param1 param2 «еще один текстовый параметр»

    В самом скрипте вы можете получить эти параметры так:

    В интегрированной среде PowerShell ISE запустить скрипт с параметрами можно аналогично, используя область команд.

    Как запустить скрипт PowerShell с помощью ярлыка?

    Осуществить такую задачу можно двумя способами:

    1. Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
    2. Создать ярлык на PowerShell, который можно найти в папке c:WindowsSystem32WindowsPowerShellv и в свойствах ярлыка в поле «Объект» дописать необходимые параметры.

    Таким образом, например, чтобы запустить скрипт powershell при входе пользователя, можно просто создать ярлык, как описано во 2-м пункте и поместить его в автозагрузку. Так же, создание ярлыка одним из способов выше позволит легко запустить скрипт от имени администратора или от имени любого другого пользователя как обычную программу.

    Скриптовый язык PowerShell — довольно мощный инструмент для решения различных задач, но его можно использовать не только для хороших вещей, но и во вред, поэтому, пользуйтесь им с умом 😉

    Читать еще:  Как в Windows 10 переключиться с обычной учётной записи на учётную запись Майкрософт
    Ссылка на основную публикацию
    Статьи c упоминанием слов:
    Adblock
    detector
    ×
    ×