Установка executionpolicy

Powershell: используем invoke-command для запуска команд/скриптов на удаленных компьютерах

Способ 2: «Редактор реестра»

Добавить батник в автозагрузку можно также путем применения несложного твика реестра, прописав во встроенном «Редакторе реестра» путь к командному файлу.

  1. Запустите «Редактор реестра» командой , выполненной в диалоговом окошке Win + R.

Разверните ветку или , если хотите, чтобы добавленный в автозапуск батник запускался для всех пользователей.
Создайте в правой колонке новый строковый параметр с именем файла BAT или произвольным названием.


Откройте двойным кликом по созданному параметру окошко редактирования его значения и вставьте в поле «Значение» полный путь к BAT-файлу. Если в пути присутствуют пробелы, заключите путь в двойные прямые кавычки.

Через проводник

Файловый менеджер в виде специальной панели, расположенной в левой части окна, предоставляет быстрый доступ к файловой системе устройства, в том числе к меню Редактора.

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

Нажать клавиши: «Win E».

  • Вставить: C:WindowsSystem32gpedit.msc.
  • Нажать «Enter».

Эти действия позволят сразу запустить системный инструмент. Если юзеру нужен доступ к его файлу, тогда потребуется ввести значение: C:WindowsSystem32, затем прокрутить курсор мыши в самый низ перечня. В нем отобразится наименование gpedit.msc.

Не обязательно вводить полный модуль, достаточно указать значение: gpedit.msc, и оно также найдет Редактор, который отобразится в результатах.

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

Подобную операцию можно выполнить в Windows 11 Домашней с помощью командной строки. Нам потребуется выполнить две команды, используя этот системный инструмент.

Выполните следующие действия:

  1. В поле поиска Windows введите «CMD».
  2. Запустите командную строку от имени администратора.
  3. В окне интерпретатора командной строки выполните эту команду, нажимая на клавишу «Enter»:
FOR %F IN ("%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~*.mum") DO (DISM /Online /NoRestart /Add-Package:"%F")
  1. Затем введите и выполните следующую команду:
FOR %F IN ("%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~*.mum") DO (DISM /Online /NoRestart /Add-Package:"%F")

  1. Закройте окно командной строки после завершения операции.
  2. Откройте на компьютере редактор локальной групповой политики.

Подробнее: Как открыть редактор локальной групповой политики — 7 способов

Как просмотреть историю PowerShell

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

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

Получить-История

Вы можете просмотреть свою историю, передав результат командлету Select-String и указав текст, который нужно найти. Замените пример в командлете ниже текстом, который вы хотите найти:

Get-История | Select-String -Pattern "Пример"

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

Get-История | Формат-Список -Свойства *

По умолчанию командлет Get-History отображает только 32 самые последние записи в истории. Чтобы отобразить или найти дополнительные записи истории, используйте параметр -Count, чтобы указать, сколько записей истории вы хотите отобразить в PowerShell, например:

  • Get-History-Count 1000
  • Get-History -Count 1000 | Select-String -Pattern «Пример»
  • Get-History -Count 1000 | Формат-Список -Свойства *

Обновление за май 2023 года:

Теперь вы можете предотвратить проблемы с ПК с помощью этого инструмента, например, защитить вас от потери файлов и вредоносных программ. Кроме того, это отличный способ оптимизировать ваш компьютер для достижения максимальной производительности. Программа с легкостью исправляет типичные ошибки, которые могут возникнуть в системах Windows — нет необходимости часами искать и устранять неполадки, если у вас под рукой есть идеальное решение:

  • Шаг 1: (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

Просмотреть полную историю команд PowerShell для этого сеанса

Введите историю и нажмите Enter. Вы должны увидеть все команды, которые вы выполнили в текущем сеансе. Хотя вы можете использовать клавиши со стрелками для отображения команд, которые вы выполняли в предыдущем сеансе, вы не можете сделать это в истории. Если вы нажмете клавишу H и нажмете клавишу Enter, отобразится история команд. Думайте об этом как о ярлыке команды «История».

Очистить историю команд в PowerShell

Как объяснено выше, модуль PSReadline хранит все команды консоли PowerShell в текстовом файле. Однако в некоторых случаях администратор должен вводить в консоль PowerShell различную конфиденциальную информацию (учетные данные, пароли, адреса, личную информацию и т. Д.). Это позволяет другому администратору сервера или злоумышленнику получить доступ к исторической информации в виде простого текстового файла. По соображениям безопасности вам может потребоваться удалить историю команд PowerShell, которые были выполнены, или полностью отключить историю команд.

Вы не можете использовать командлет Clear-History, чтобы удалить историю команд. Он удаляет только список предыдущих команд, отображаемых командлетом Get-History.

Чтобы очистить историю предыдущих команд PoSh, вы должны удалить файл, в котором хранятся эти команды. Самый простой способ — использовать:

Remove-Item (Get-PSReadlineOption) .HistorySavePath

Затем закройте окно PoSh.

Если вы хотите полностью отключить сохранение истории команд PoSh в текстовом файле, запустите:

Set-PSReadlineOption -HistorySaveStyle Сохранить ничего

Вы можете открыть этот файл CSV или XML в любое время, чтобы сразу просмотреть историю команд PowerShell. В нем кратко изложено практически все, что касается истории команд PowerShell и как вы можете повторно использовать ее, сосредоточившись на ней, выполняя поиск или импортируя на следующий день.

Совет экспертов:

Эд Мойес

CCNA, веб-разработчик, ПК для устранения неполадок

Я компьютерный энтузиаст и практикующий ИТ-специалист. У меня за плечами многолетний опыт работы в области компьютерного программирования, устранения неисправностей и ремонта оборудования. Я специализируюсь на веб-разработке и дизайне баз данных. У меня также есть сертификат CCNA для проектирования сетей и устранения неполадок.

Сообщение Просмотров: 411

Сброс локальных политик безопасности при невозможности входа в Windows

В том случае, если локальный вход в систему невозможен или не удается запустить командную строку (например, при блокировке ее и других программ с помощью Applocker). Удалить файлы Registry.pol можно, загрузившись с установочного диска Windows или любого LiveCD.

  1. Загрузитесь с установочного диска Windows и запустите командную строку (Shift+F10)
  2. Выполните команду:
    diskpart
  3. Затем выведем список дисков в системе:
    list volume

    В данном примере буква, присвоенная системному диску соответствует букве в системе – C:\. Однако в некоторых случаях она может не соответствовать. Поэтому следующие команды необходимо выполнять в контексте вашего системного диска (например, D:\ или C:\)

  4. Завершим работу с diskpart, набрав:
    exit
  5. Последовательно выполните следующие команды: 
    RD /S /Q С:\Windows\System32\GroupPolicy
    RD /S /Q С:\Windows\System32\GroupPolicyUsers
  6. Перезагрузите компьютер в обычном режиме у удостоверьтесь, что локальные групповые политики сброшены на «дефолтное» состояние

Сброс локальных политик с помощью консоли gpedit.msc

Откройте консоль управления локальными групповыми политиками gpedit.msc .

Перейдите в раздел All Settings системных локальных политик безопасности (Local Computer Poice -> Computer Configuration — > Administrative templates). Данные раздел содержит список всех политик, доступных к конфигурированию в административных шаблонах. Отсортируйте политики по столбцу State (состояние) и найдите все активные политики (состояние Disabled и Enabled). Отключите действие всех или только определенных политик, переведя их в состояние Not configured (Не задана).

Такие же действия нужно провести и в разделе пользовательских политик (User Configuration). Таким образом можно отключить действие всех административных групповых политик.

Совет.  В том случае если вам нужно совсем отключить действие доменных политик на компьютер, рекомендуем статью Отключить применение доменных GPO в Windows 7.

Указанный выше способ сброса групповых политик в Windows подойдет для самых «простых» случаев. Некорректные настройки групповых политик могут привести к более серьезным проблемам, например: невозможности запуску оснастки gpedit.msc или вообще всех программ, потери пользователем прав администратора системы, или запрета на вход в систему. Рассмотрим эти случаи подробнее.

Сетевые ресурсы

Блог команды разработчиков продукта: http://blogs.msdn.com/PowerShell/ .

Утилиты, редакторы и дополнения: http://www.powershell.com/ .

Блог Дмитрия Сотникова из компании Quest: http://dmitrysotnikov.wordpress.com/ .

PowerGadgets — пример неограниченных возможностей расширения PowerShell:

1. Написание скрипта

Скрипт PowerShell (не важно какой версии) — это текстовый файл с расширением *.ps1. Вот пример простого Power Shell срипта (файл systemInfo.ps1
):

Вот пример простого Power Shell срипта (файл systemInfo.ps1
):

# Retrieve WMI object for the operating system

Get-WmiObject Win32_OperatingSystem

Этот файл можно создавать и редактировать, например, в FAR Manager.

Обратите внимание
, что FAR Manager хоть и может работать в консоли Power Shell, но выполняет из-под себя скрипты в окружении обычной Windows-консоли
cmd. То есть, FAR Manager можно использовать только для создания и редактирования PowerShell скриптов, но не для запуска

Но прежде чем разочаровываться, прочитайте пункт 3.

2. Запуск срипта

Скрипт нужно выполнять из консоли Power Shell, а не из обычной консоли Windows. В консоли Power Shell необходимо перейти в каталог, где лежит скрипт (командами
cd
), и затем запустить сам скрипт, обязательно прописав перед ним символы
«.\»
. Например, имеем путь к файлу скрипта
d:\work\systemInfo.ps1
. Тогда команды запуска будут выглядеть так:

d:

cd \

cd work

.\systemInfo.ps1

или так (просто указывается полный путь к скрипту):

d:\work\systemInfo.ps1

Скорее всего, при запуске скрипта появится следующая ошибка:

Не удается загрузить файл D:\work\systemInfo.ps1, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.

строка:1 знак: 18

CategoryInfo: NotSpecified: (:) , PSSecurityException

FullyQualifiedErrorId: RuntimeException

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

Чтобы резрешить выполнение PowerShell скриптов, нужно создать *.bat файл, например enableScript.bat
со следующим содержимым:

powershell -Command Set-ExecutionPolicy RemoteSigned

Этот *.bat файл можно выполнить в любой консоли: хоть в PowerShell, хоть в обычной
cmd
. После выполнения этого файла, PowerShell-скрипты станут запускаться в консоли PowerShell.

3. Запуск PowerShell-скрипта из обычной Windows-консоли cmd

Скрипт PowerShell можно выполнить и из обычной консоли Windows. Для этого можно воспользоваться командой:

Powershell -File ./systemInfo.ps1

Таким образом можно выполнять скрипты прямо из FAR Manager, и они будут работать.

Но тут есть небольшая тонкость. Параметр
-File
срабатывает только на локальных путях, даже если путь указан относительный
«./»
. То есть, если
*.ps1
— файл лежит на локальном диске
C:
или
D:
, то такой вызов будет работать. Но если попробовать выполнить скрипт, расположенный на доменном ресурсе, то скрипт не будет найден. Возможно, это исправят в следующих версиях PowerShell.

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

Примечание!
Данный справочник составлен на основе командлетов версии PowerShell 5.0 в операционной системе Windows Server 2016 .

Invoke-expression

Командлет Invoke-Expression работает примерно так-же, как и оператор & — берет текстовую строку и выполняет ее в виде команды. Например:

Invoke-Expression -Command ′C:WindowsHello.exe′

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

Invoke-Expression -Command ′C:Program FilesHello.exe′

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

Invoke-Expression -Command ″C:′Program Files′Hello.exe″

«Жесткий» метод сброса групповых политик в Windows на дефолтные значения

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

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

  • Настройки компьютера (раздел Computer Configuration) хранятся в %SystemRoot%\System32\ GroupPolicy\Machine\registry.pol
  • Пользовательские политики (раздел User Configuration)  —  %SystemRoot%\System32\ GroupPolicy\User\registry.pol

При загрузке компьютера система экспортирует содержимое файла \Machine\Registry.pol в ветку системного реестра HKEY_LOCAL_MACHINE (HKLM). Содержимое  файла \User\Registry.pol экспортируется в ветку HKEY_CURRENT_USER (HKCU) при входе пользователя в систему.

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

Совет. Для внесения изменения в  файлы стоит использовать только редактор групповых политик GPO. Не рекомендуется редактировать файлы Registry.pol вручную или с помощью старых версий редактора групповой политики!

Чтобы удалить все текущие настройки локальных групповых политик, необходимо  удалить файлы Registry.pol в каталоге GroupPolicy. Сделать это можно следующими командами, запущенными в командной строке с правами администратора:

RD /S /Q "%WinDir%\System32\GroupPolicyUsers"

RD /S /Q "%WinDir%\System32\GroupPolicy"

gpupdate /force

Настройка времени

Как установить и изменить время в Windows

Способ 1

Пожалуй, наиболее очевидный и простой способ сделать это (в любой версии Windows) — щелкнуть правой кнопкой мышки (ПКМ) по отображаемому времени в правом нижнем углу экрана (), и в появившемся меню выбрать «Настройка даты и времени».

Настройка даты и времени (Windows 10)

После снять ползунки с автоматического определения времени и часового пояса и задать их вручную (особенно это полезно в том случае, если компьютер постоянно не подключен к интернету).

Текущая дата и время — Windows 10

Уточнение времени

Способ 2

Это универсальный способ! Сначала необходимо нажать на сочетание Win+R (появится окно «Выполнить») и использовать команду timedate.cpl. См. пример ниже.

timedate.cpl — настройка времени

Должно открыться окно настроек даты и времени — кликните по кнопке «Изменить…». После обновите необходимые вам данные…

Изменить дату и время

Способ 3

Если в Windows время изменить не получается (или она еще и не установлена даже ) — это можно сделать и через настройки BIOS (UEFI).

Как правило достаточно на основном (на первом) экране UEFI кликнуть по значку времени и установить то значение, которое вам нужно (я обычно раньше всегда ставил на +10 мин., чтобы никуда не опаздывать ).

BIOS (UEFI) — изменение времени

Теперь время будет спешить на 10 мин.

Как настроить синхронизацию (или отключить ее вовсе)

И так, для начала нужно использовать сочетание Win+R, и в окно «Выполнить» ввести команду timedate.cpl, нажать Enter.

Далее проверить свой часовой пояс (и уточнить его, если он установлен некорректно).

Изменить часовой пояс

Далее перейти во вкладку «Время по Интернету» и открыть окно изменения настроек.

Время по интернету — изменить

Далее установить галочку «Синхронизировать с сервером времени в Интернете», указать сервер и нажать OK (разумеется, если синхронизация у вас работает некорректно — лучше тогда снять эту галочку… ).

Синхронизация

Есть еще один универсальный способ отключить синхронизацию

Для этого необходимо открыть службы (сочетание Win+R, и команда services.msc ()).

Открываем службы — services.msc (универсальный способ)

В списке служб нужно найти «Службу времени Windows» и открыть ее.

Служба времени Windows

После перевести ее тип запуска в режим «отключена» и остановить ее работу. После этого синхронизация времени выполняться на ПК не будет!

Остановить!

Как изменить отображение: только часы и минуты, или дни недели с датой

В Windows можно немного по-разному представить отображение времени: с датой, с днями недели и пр. (см. скрин ниже, я спец. сделал 3 разных варианта).

Кстати, рекомендации ниже актуальны для ОС Windows 10…

Как отображать время в трее

Для настройки отображения:

  1. сначала необходимо нажать Win+R (для вызова «выполнить»), и воспользоваться командой intl.cpl;

  2. далее открыть доп. параметры, и в разделе «Дата» и «Время» поменять формат на тот, который нужен вам (более подробно  можете почитать здесь).

Как изменить отображение даты (времени)

Да, кстати, чтобы в Windows 10 отображалось не только время (но и дни недели, дата) — необходимо зайти в параметры ОС (Win+i) и в разделе «Персонализация / Панель задач» отключить использование маленьких кнопок на панели задач (эта штука на некоторых ноутбуках вкл. автоматически).

Использовать маленькие кнопки панели задач

Что делать, если время сбрасывается (слетает)

Причина 1

Наиболее частая причина сброса времени — это севшая батарейка на материнской плате компьютера (в среднем одна добротная батарейка живет ∼5-7 лет). Что характерно при этом: время слетает после отключения/перезагрузки ПК (в процессе работы — должно быть всё нормально…).

Как выглядит батарейка на мат. плате

Приобрести новую батарейку можно практически в любом компьютерном магазине (и даже заказать в Китае ).

Причина 2

Неправильно установленный часовой пояс. Из-за этого Windows при любых обновлениях устанавливает автоматически некорректное время.

Если авто-режим неправильно определяет ваш пояс — задайте его вручную (для Windows 10: сочетание клавиш Win+i —> Время и язык —> Дата и время —> Часовой пояс ).

Часовой пояс — Windows 10

Еще один вариант: сочетание Win+R — > команда timedate.cpl

Изменить часовой пояс

Причина 3

Дело также может быть в некорректной работе синхронизации (например, из-за каких-то системных сбоев ОС, или неправильно-установленного часового пояса, или, например, из-за использования устаревшей версии Windows (от народных «умельцев»)).

Чтобы исправить подобную проблему: уточните часовой пояс и измените . Если не поможет — отключите синхронизацию и установите время вручную (как это сделать — см. чуть выше в статье ).

Разумеется, по теме — только приветствуются!

Всего доброго!

Конвейер

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

Для этого существует конвейер. Как и в UNIX, он объединяет команды путём передачи выходных данных одного командлета во входные для другого в неизменном виде, сохраняя свой тип.

При этом не требуются никакой контейнер или посимвольный разбор информации.

В состав передаваемой информации может входить и функция. После окончания работы объединённых команд вызывается функция превращения информации в текстовый вид (конвертация данных в строковые) с применением форматирования текста.

https://youtube.com/watch?v=3uIukP_4iNo

Reviewing which GPOs Are Applied to a User or Computer

To get information about which GPOs are applied to a user or computer, you can generate a Resultant Set of Policy (RSoP) report using the Get-GPResultantSetOfPolicy cmdlet. The command below generates a report for the computer called “dc1” and writes the results to the c:temp directory:

Get-GPResultantSetOfPolicy -Computer dc1 -ReportType HTML -Path c:tempdc1rsop.html

Figure 4. How to get information about which GPOs are applied to a user or computer

PowerShell cmdlets can be quite useful for managing Group Policy. However, configuring settings inside GPOs using PowerShell isn’t easy because Group Policy settings weren’t designed with text-based configuration in mind.

Russell Smith

IT consultant and author specializing in management and security technologies. Russell has more than 15 years of experience in IT, he has written a book on Windows security, and he coauthored a text for Microsoft’s Official Academic Course (MOAC) series.

Выбор скрипта для запуска и редактирование GPO

Интерфейс добавления скрипта для обработки в GPO неоднозначен, что касается выбора расположения скрипта и предоставляет различные возможности. А именно: прописать скрипт по локальному пути, по сетевой шаре, указать параметры запуска и даже порядок выполнения, относительно скриптов-пакетников.

Я тестировал различные варианты и уже сложно сказать, что работало, а что нет. Потому-что если одно работало — то другое уже отказывалось. Именно поэтому я сообщаю лишь итоговый рабочий вариант.

Вы скопировали скрипт в папку используемой политики в этом-же окне жмете кнопку добавить и выбираете скрипт. Однако в окне скриптов (это видно на скрине выше) — пути к файлу нет. И это нормально. Я тестировал варианты: прописать путь до скрипта даже по сети, например: \sharaPSMain.ps1 и такое тоже выполнялось, если права на чтение папки компьютерами домена — присутствовало. Поэтому экспериментируйте.

По большому счету все. НО! По умолчанию, ваши PS скрипты не будут запускаться даже из сети, основываясь на безопасности GPO.

Путей решения несколько. Разрешить запуск любых скриптов. Или использовать политику безопасности, которая позволит запускать скрипты, расположенные локально или в сети, но при этом скрипты должны быть подписаны.

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

Выполнить PowerShell скрипт при входе пользователя в Windows

Рассмотрим сценарий автоматического запуска PowerShell скрипта при входе пользователя в Windows (или при выходе).

Если вам нужно запустить скрипт не при загрузке компьютера, а после входа пользователя в Windows (для каждого пользователя компьютера), вам нужно привязать GPO к OU Active Directory с пользователями. В этом случае PowerShell нужно настроить в следующем разделе User Configuration вашей GPO

Если вы хотите, чтобы политика выполнялась для всех пользователей определенного компьютера, нужно привязать политику к OU с компьютерами и включить режим замыкания групповой политики (параметр Configure User Group Policy Loopback Processing mode в разделе Computer Configuration -> Administrative Templates -> System -> Group Policy). Если не включать режим замыкания, то параметры из раздела User Configuration не будут применены к пользователю. Подробнее об этом в статье Почему GPO не применяется к пользователю или компьютеру?

В этом примере для теста я буду использовать простой PowerShell скрипт, который пишет в текстовый лог файл время входа пользователя.

  1. Скопируйте файл скрипта PowerShell в каталог
    на контроллере домена AD
  2. Перейдите в раздел User Configuration -> Policies -> Windows Settings -> Scripts -> Logon;
  3. Перейдите на вкладку PowerShell Scripts и добавьте ваш PS1 файл скрипта (используйте UNC путь, например
    );
  4. Выполните логофф пользователя на целевом компьютере и выполните вход;
  5. Ваш PowerShell скрипт будет запущен автоматически через GPO при входе пользователя;
  6. Вы можете убедится, что логон скрипт выполнен успешно под пользователем по событию с Event ID 5018 в журнале Microsoft-Windows-GroupPolicy/Operational Event Viewer:
    Completed Logon script for winitprokbuldogov in 11 seconds.

Если вы хотите, чтобы пользователь не мог получить доступ к своему рабочему столу до окончания работы скрипта, нужно включить параметр Run logon scripts synchronously = Enable (Computer ConfigurationAdministrative TemplatesSystemLogon). В этом случае explorer не закончится, пока не отработают все политики и логон скрипты (это увеличивает время входа!).

Обратите внимание, что скрипт выполняется с правами текущего пользователя. Если у пользователя есть права администратора на компьютере и на него действуют политики User Account Control (UAC), PowerShell скрипт не сможет внести изменения, требующие повышенных привилегий

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

  1. Создать задание Task Scheduler в разделе User Configuration -> Preferences -> Control Panel Settings -> Scheduled Task;
  2. На вкладке General указать что задание запускается от имени пользователя
    и включите опцию
    ;
  3. На вкладке Trigger укажите, что задание должно запускаться At log on;
  4. И на вкладке Actions укажите путь к вашему PowerShell скрипту:

Action: Start a programProgram/Script:Add Arguments (optional):

Такой PowerShell скрипт будет запускаться с правами администратора (если пользователь добавлен в группу локальных администраторов Windows).

GPO — Logon scripts using Powershell

Would you like to learn how to use a group policy to configure logon scripts using Powershell? This tutorial will show you how to create a group policy to run Powershell scripts during logon.

• Windows 2012 R2
• Windows 2016
• Windows 2019
• Windows 2022
• Windows 10
• Windows 11

Change the configuration to reflect your domain name.

Equipment list

Here you can find the list of equipment used to create this tutorial.

Equipment list

This link will also show the software list used to create this tutorial.

On this page, we offer quick access to a list of tutorials related to Windows.

Tutorial GPO — Logon scripts using Powershell

On the domain controller, open the group policy management tool.

Create a new group policy.

Enter a name for the new group policy.

In our example, the new GPO was named: MY-GPO.

On the Group Policy Management screen, expand the folder named Group Policy Objects.

Right-click your new Group Policy Object and select the Edit option.

On the group policy editor screen, expand the User configuration folder and locate the following item.

Copy to Clipboard
User Configuration > Policies > Windows Settings > Scripts

Access the option named Scripts.

Access the Logon configuration option.

Add a new startup script.

Our configuration.

Copy to Clipboard
powershell.exe
-noninteractive -executionPolicy Bypass -noprofile -file \\tech.local\NETLOGON\MYSCRIPT.PS1

Create a Powershell script named MYSCRIPT inside the NETLOGON folder.

Copy to Clipboard
New-Item ‘\\tech.local\NETLOGON\MYSCRIPT.PS1’ -type file
ise ‘\\tech.local\NETLOGON\MYSCRIPT.PS1’

Here is the content of our script.

Copy to Clipboard
$MyWallpaper=»\\tech.local\NETLOGON\wallpaper.jpg»
$code = @’
using System.Runtime.InteropServices;
namespace Win32{

public class Wallpaper{

static extern int SystemParametersInfo (int uAction , int uParam , string lpvParam , int fuWinIni) ;

public static void SetWallpaper(string thePath){
SystemParametersInfo(20,0,thePath,3);
}
}
}
‘@

add-type $code
::SetWallpaper($MyWallpaper)

In our example, we are going to configure the user wallpaper.

In our example, we add a JPG file named WALLPAPER inside the NETLOGON directory.

Make sure the domain users have read-only permission over the script.

To save the group policy configuration, you need to close the Group Policy editor.

Congratulations! You have finished the GPO creation.

Tutorial GPO — Logon scripts using Powershell

On the Group policy management screen, you need to right-click the Organizational Unit desired and select the option to link an existent GPO.

In our example, we are going to link the group policy named MY-GPO to the root of the domain.

After applying the GPO you need to wait for 10 or 20 minutes.

During this time the GPO will be replicated to other domain controllers.

On a remote computer, login as any user.

The Powershell script will be silently executed.

In our example, we used a Powershell logon script to configure the user wallpaper.

2022-06-22T01:22:51-03:00

Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: