Выполнить команду на удалённом компьютере

В этой базовой инструкции подробно описано 7 способов запустить PowerShell от имени администратора, в Windows.

Что такое Windows PowerShell

Как следует из названия, Windows PowerShell – это оболочка командной строки. Она была разработана специально для использования системными администраторами и может использоваться для выполнения всех команд

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

Windows с помощью PowerShell … Windows с помощью PowerShell … Управление ACL из PowerShell

Давайте подробно рассмотрим, какие функции и преимущества предлагает эта оболочка от Microsoft:

  • Интеграция с Microsoft .NET Framework. NET Framework – это среда управляемого выполнения для Windows, предоставляющая широкий спектр сервисов для запуска приложений. Команды сценариев PowerShell имеют доступ к ресурсам .NET Framework.
  • Объектно-ориентированный. В отличие от большинства оболочек, которые принимают и возвращают чистый текст, все команды PowerShell, генерирующие выходные данные, возвращают объекты .NET Framework, устраняя необходимость разбора текста в случае, если выходные данные команды нужны для последующей команды.
  • Command-Let. Windows PowerShell представляет концепцию command-let или cmdlet, инструмента командной строки с единственной функцией, встроенной в оболочку. Доступно более ста системных командлетов. Кроме того, вы можете писать собственные командлеты и делиться ими с другими пользователями. Каждый командлет может использоваться отдельно или в сочетании с другими для выполнения сложных задач.
  • Предназначен для системных администраторов. PowerShell включает функции, предназначенные для системных администраторов, такие как возможность работы на удаленных компьютерах, доступ к реестру Windows и запуск или остановка служб.

Второй способ – файл bat

Это интересно: Что делать, если в Windows 10 не открывается меню пуск? [Утилита исправления]

Ребята, можно изменить командную строку на PowerShell с помощью реестра. Открываем реестр с помощью Win+R и вводим туда команду regedit. Потом идем вот в такой раздел:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced

Там находим параметр DontUsePowerShellOnWinX. Если его значение равно 0 – будет показываться PowerShell, если значение 1 – это командная строка.

Можно, конечно, поступить еще проще – скачать уже готовые bat-файлы. У меня вполне безопасны, поэтому насчет вирусов можете не беспокоится.

  1. Замена командной строки на PowerShell –
  2. Замена PowerShell на командную строку –

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

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

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

Способ первый

Нажмите кнопку Пуск

Затем — значок стрелка вниз:

3 В разделе Служебные отыщите пункт Windows PowerShell и нажмите по нему правой кнопкой мыши.

4 Выберите Запустить от имени администратора:

5 Нажмите Да:

Способ второй

1 Кликните правой кнопкой мыши по кнопке Пуск

2 Выберите пункт Командная строка (администратор)

3 Выберите Да:

4 В открывшемся окне Администратор: командная строка введите команду powershell и нажмите Enter:

После этого в окне сменится заголовок на Администратор: Windows PowerShell и можно будет пользоваться ее командами:

Что делать, если он не открывается

Проще всего найти PowerShell через Поиск. Пользователю нужно лишь написать в поисковой строке название искомого приложения на английском. Опция Поиск есть во всех версиях Виндовса. С ее помощью удается отыскать любой элемент ОС. В некоторых продуктах Win Поиск закреплен в списке меню Пуск. Именно эта опция позволяет за считанные секунды отыскать ПоверШелл. Запустить утилиту разрешается на пользовательских и администраторских правах.

Иногда, после установки очередного пакета обновлений, ПоверШелл может не открыться. В этом случае рекомендуется откатить систему назад (через точку восстановления). Можно просто удалить последние установленные на ПК обновления Виндовса и посмотреть на результат.

Если утилита ПоверШелл перестала работать, рекомендуется:

  • Активировать полное сканирование и проверку безопасности. Иногда инструмент не открывается из-за атаки вредоносного ПО. В первую очередь, рекомендуется просканировать ПК на вирусы из безопасного режима. Чаще всего причиной неполадок с утилитой является вирус Несущий угрозу файл обычно носит название: * 32 или * 32. Остановить вирус можно из Диспетчера задач.
  • Инициировать чистую загрузку:
  • активировать «Выполнить»;
  • в строчке «Открыть» написать: «msconfig»;
  • появится окошко «Конфигурация системы»;
  • перейти в «Общие»;
  • в подпункте «Выборочный запуск» убрать галочку около «Загружать элементы запуска»;
  • сохранить изменения, закрыть окна, перезагрузить ПК.
  • Отключить и еще раз включить приложение:
  • одновременно нажать на «Win» и «X»;
  • активировать «Панель управления»;
  • перейти в подраздел «Категория»;
  • потом активировать «Программы»;
  • отыскать PowerShell и отключить опцию;
  • выполнить перезагрузку ПК и опять включить утилиту.

Создать новую учетную запись «Майкрософт». Иногда приложение не открывается или прекращает работу, если повреждена учетная запись. В таком случае рекомендуется создать новый аккаунт (из раздела «Настройки»). Перед созданием еще одной учетной записи рекомендуется сделать резервную копию своих файлов.

Профиль

Профиль это файл, который запускается при запуске PowerShell, если это разрешено политикой выполнения (гугли Get-ExecutionPolicy, Set-ExecutionPolicy) Профиль может быть системным или пользовательским. Первый расположен здесь $, второй здесь $PROFILE (он же $). В момент запуска PowerShell считываются оба профиля, сначала системный, затем пользовательский. Если разливать профили доменным пользователям, я рекомендую разливать только системный профиль, т.к. он хранится в system32, а пользовательские профили оставлять пользователям на усмотрение. Туда можно записать любые значения, хранить там переменные, функции, текст, да хоть учетные данные. Зачем тогда весь этот вышеизложенный текст, я ведь могу запихнуть функции в профиль? Да, у меня в профиле около сотни строк, а функций всего две-три, и это самые основные функции, которыми настраивается оформление и пути к скриптам. А если вам срочно нужно поправить баг в каком-то скрипте и запустить его в окне консоли, в которой уже есть очень важная инфа и ее нельзя перезапустить? Тогда становится ясно, что хранить свои скрипты в профиле нельзя. Кстати мой профиль: PowerShell $

Продолжение PowerShell Scripts (part 1)

Меню Выполнить

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

Откройте меню Выполнить.

  1. Нажмите сочетание клавиш Windows+R (или щелкните по кнопке Пуск правой клавишей мыши, выберите Выполнить);
  2. Введите команду powershell;
  3. Нажмите сочетание клавиш Ctrl+Shift+Enter.

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

Windows PowerShell Remoting

Хотя вторая версия Windows PowerShell на момент написания статьи находится еще в состоянии бета тестирования, о её возможностях в области удалённого выполнения команд определённо стоит рассказать уже сейчас. Попробовать его своими руками вы можете либо загрузив предварительную версию (см. ссылки) либо в составе бета-версии Windows 7 или Windows Server 2008 R2.

Инфраструктура PowerShell Remoting основана на WinRM версии 2.0. И поэтому наследует все преимущества этой технологии, такие как шифрование передаваемых данных, и возможность работать по стандартным портам HTTP/HTTPS. Но благодаря богатым возможностям языка Windows PowerShell. И его способностям работы с объектами, мы получаем еще большие возможности. На данный момент пакет WinRM2.0 тоже находится в состоянии бета-тестирования, и доступен для загрузки только для систем Windows Vista и Windows 2008. В системы Windows 7 и Windows Server 2008R2 он будет встроен изначально, как и PowerShell 2.0.

Примечание:

Обновление: К моменту публикации статьи на , финальные версии PowerShell 2.0 и WinRM 2.0 доступны уже для всех поддерживаемых платформ. В состав Windows Server 2008R2 и Windows 7 они уже включены как неотъемлемые компоненты системы, а для Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 все необходимые компоненты можно получить в виде пакета называемого Windows Management Framework.

Перед тем как воспользоваться всеми этими преимуществами, PowerShell Remoting необходимо активизировать, на управляющем, и управляемых компьютерах. Сделать это просто, запустив командлет (команду Windows PowerShell) Enable-PSRemoting. Причем если добавить ключ -Force то никаких подтверждений запрошено не будет. Этот командлет при необходимости вызовет winrs quickconfig, и создаст исключения в брандмауэре Windows, так что никаких дополнительных действий выполнять не нужно.

После этого вы сможете легко выполнять команды на других компьютерах используя командлет Invoke-Command (или его псевдоним icm):

Invoke-Command -ComputerName Main -ScriptBlock {netsh interface dump > c:\}

Разумеется команду можно заранее поместить в переменную, а для параметра -ComputerName указать имена не одного, а сразу нескольких компьютеров. Следующая последовательность позволяет вывести версию файла сразу с трех компьютеров.

$Command = {(get-item c:\Windows\)} Invoke-Command -ComputerName Main, Server7, Replica -ScriptBlock $Command

Выполнить команду на удалённом компьютере

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

Впрочем возможности PowerShell Remoting на этом только начинаются. С помощью командлета Enter-PSSession вы можете войти в интерактивную сессию Windows PowerShell на удалённом компьютере. Выйти из такого сеанса можно использовав командлет Exit-PSSession, или просто exit.

Командлет New-PSSession создает сессии на удалённых компьютерах, указатели на которые можно поместить в переменную, а затем передавая её как аргумент для Invoke-Command выполнять команды сразу на нескольких компьютерах, в постоянном окружении. Пример вы можете увидеть на скриншоте, где я выполняю последовательность команд сразу на нескольких компьютерах из списка c:\

Выполнить команду на удалённом компьютере

П еречисление

Многие так называемые командлеты действия (action cmndlets) – те командлеты, которые производят какие-либо действия или выполняют задачу, созданы для работы с полным набором объектов. Например, представьте себе (но не запускайте!) такую команду:

Get-Process | Stop-Process

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

П еречисление

Однако может быть такое, что у вас нет возможности или желания работать со всеми объектами сразу. В данном случае вам потребуется возможность работать с каждым объектом индивидуально, извлекая их по одному.

В Windows PowerShell v1 было больше возможностей работать с объектами индивидуально. В v2 Microsoft добавил множество командлетов, предназначенных для работы со всеми объектами сразу, следовательно, количество сценариев, где может потребоваться нумерация объектов или их индивидуальная обработка, сократилось.

Перечисление или инумерация объектов производится с помощью командлета ForEach-Object, который имеет два псевдонима — Foreach и % (да, математический символ процента является псевдонимом ForEach-Object). Типичным параметром для ForEach-Object является скриптовый блок, содержащий информацию о том действии, которое вы собираетесь произвести с каждым из входящих объектов. Внутри этого скриптового блока оболочка ищет переменную $_ и подставляет вместо нее все объекты по очереди Например, вот простейший пример команды, где сначала извлекаются все сервисы, затем отсеиваются запущенные, а затем производится попытка применить метод Start () к оставшимся:

Get-Service | Where-Object { $_.Status –eq “Stopped” } | ForEach-Object { $_.Start () }

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

Get-Service | Where-Object { $_.Status –eq “Stopped” } | Start-Service

П еречисление

Командлет Start-Service может работать со всеми входящими объектами сразу, поэтому, действительно нет необходимости перечислять их, и ндивидуально применять метод Start () к каждому из них.

В последнее время командлет ForEach-Object становится все менее востребованным, поскольку Microsoft постоянно совершенствует и обновляет Windows PowerShell, выпуская новые командлеты. Если у вас возникла необходимость в использовании ForEach-Object, сначала подумайте – быть может есть какой-то более эффективный способ выполнения той же самой задачи с использованием командлета, который работает со всеми объектами сразу. ForEach-Object остается необходимым лишь в тех ситуациях, где нет возможности использовать другой командлет.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Понравилась статья? Поделиться с друзьями:
Adblock
detector