Powershell windows server 2008r2

Установка Windows PowerShell Installing Windows PowerShell

Windows PowerShell установлен по умолчанию в каждой ОС Windows, начиная с Windows 7 с пакетом обновления 1 (SP1) и Windows Server 2008 R2 с пакетом обновления 1 (SP1). Windows PowerShell comes installed by default in every Windows, starting with Windows 7 SP1 and Windows Server 2008 R2 SP1.

Если вас интересует PowerShell версии 6 или более поздней, вам нужно установить PowerShell Core вместо Windows PowerShell. If you are interested in PowerShell 6 and later, you need to install PowerShell Core instead of Windows PowerShell. Дополнительные сведения см. в статье Установка PowerShell Core в Windows. For that, see Installing PowerShell Core on Windows.

Поиск PowerShell в Windows 10, 8.1, 8.0 и 7 Finding PowerShell in Windows 10, 8.1, 8.0, and 7

Иногда найти консоль или ISE (интегрированную среду сценариев) PowerShell в Windows бывает непросто, так как их расположение в разных версиях Windows отличается. Sometimes locating PowerShell console or the Integrated Scripting Environment (ISE) in Windows can be difficult, as its location moves from one version of Windows to the next.

Следующие таблицы помогут найти PowerShell в вашей версии Windows. The following tables should help you find PowerShell in your Windows version. Все указанные версии являются оригинальными, сразу после выпуска и без обновлений. All versions listed here are the original version, as released, with no updates.

Консоль For Console

Версия Version Location Location
Windows 10 Windows 10 Щелкните значок Windows в левом нижнем углу и начните вводить PowerShell. Click left lower corner Windows icon, start typing PowerShell
Windows 8.1, 8.0 Windows 8.1, 8.0 На начальном экране начните вводить PowerShell. On the start screen, start typing PowerShell.
Если вы находитесь на рабочем столе, щелкните значок Windows в левом нижнем углу и начните вводить PowerShell. If on desktop, click left lower corner Windows icon, start typing PowerShell
Windows 7 с пакетом обновления 1 (SP1) Windows 7 SP1 Щелкните значок Windows в левом нижнем углу и в поле поиска начните вводить PowerShell. Click left lower corner Windows icon, on the search box start typing PowerShell

ISE For ISE

Версия Version Location Location
Windows 10 Windows 10 Щелкните значок Windows в левом нижнем углу и начните вводить ISE. Click left lower corner Windows icon, start typing ISE
Windows 8.1, 8.0 Windows 8.1, 8.0 На начальном экране введите PowerShell ISE. On the start screen, type PowerShell ISE.
Если вы находитесь на рабочем столе, щелкните значок Windows в левом нижнем углу и введите PowerShell ISE. If on desktop, click left lower corner Windows icon, type PowerShell ISE
Windows 7 с пакетом обновления 1 (SP1) Windows 7 SP1 Щелкните значок Windows в левом нижнем углу и в поле поиска начните вводить PowerShell. Click left lower corner Windows icon, on the search box start typing PowerShell

Поиск PowerShell в версиях Windows Server Finding PowerShell in Windows Server versions

Начиная с Windows Server 2008 R2, операционную систему Windows можно установить без графического пользовательского интерфейса (GUI). Starting with Windows Server 2008 R2, Windows operating system can be installed without the graphical user interface (GUI). Выпуски Windows Server без GUI называются выпусками Core , а выпуски с GUI — Desktop. Editions of Windows Server without GUI are named Core editions, and editions with the GUI are named Desktop.

Выпуски Windows Server Core Windows Server Core editions

Во всех выпусках Core при входе на сервер открывается окно командной строки Windows. In all Core editions, when you log to the server you get a Windows command prompt window.

Введите powershell и нажмите клавишу ВВОД , чтобы запустить PowerShell в сеансе командной строки. Type powershell and press ENTER to start PowerShell inside the command prompt session. Введите exit , чтобы завершить сеанс PowerShell и вернуться к командной строке. Type exit to terminate the PowerShell session and return to command prompt.

Выпуски Windows Server Desktop Windows Server Desktop editions

Во всех выпусках Desktop нужно щелкнуть значок Windows в левом нижнем углу и начать вводить PowerShell. In all desktop editions, click the left lower corner Windows icon, start typing PowerShell. Появятся параметры консоли и ISE. You get both console and ISE options.

Единственное исключение из этого правила — ISE в Windows Server 2008 R2 с пакетом обновления 1 (SP1). В этом случае щелкните значок Windows в левом нижнем углу и введите PowerShell ISE. The only exception to the above rule is the ISE in Windows Server 2008 R2 SP1; in this case, click the left lower corner Windows icon, type PowerShell ISE.

Проверка версии PowerShell How to check the version of PowerShell

Чтобы узнать, какая версия PowerShell установлена, запустите консоль PowerShell (или ISE), введите $PSVersionTable и нажмите клавишу ВВОД. To find which version of PowerShell you have installed, start a PowerShell console (or the ISE) and type $PSVersionTable and press ENTER. Найдите значение PSVersion . Look for the PSVersion value.

Обновление существующей версии Windows PowerShell Upgrading existing Windows PowerShell

В пакет установки для PowerShell входит установщик WMF. The installation package for PowerShell comes inside a WMF installer. Версия установщика WMF совпадает с версией PowerShell. Для Windows PowerShell нет отдельного установщика. The version of the WMF installer matches the version of PowerShell; there’s no stand alone installer for Windows PowerShell.

Если вам нужно обновить существующую версию PowerShell, в Windows используйте следующую таблицу, чтобы найти установщик для нужной версии PowerShell. If you need to update your existing version of PowerShell, in Windows, use the following table to locate the installer for the version of PowerShell you want to update to.

Windows Windows PS 3.0 PS 3.0 PS 4.0 PS 4.0 PS 5.0 PS 5.0 PS 5.1 PS 5.1
Windows 10 (см. примечание 1) Windows 10 (see Note1)
Windows Server 2016 Windows Server 2016
установлено installed
Windows 8.1 Windows 8.1
Windows Server 2012 R2 Windows Server 2012 R2
установлено installed WMF 5.0 WMF 5.0 WMF 5.1 WMF 5.1
Windows 8 Windows 8
Windows Server 2012 Windows Server 2012
установлено installed WMF 4.0 WMF 4.0 WMF 5.0 WMF 5.0 WMF 5.1 WMF 5.1
Windows 7 с пакетом обновления 1 (SP1) Windows 7 SP1
Windows Server 2008 R2 с пакетом обновления 1 (SP1) Windows Server 2008 R2 SP1
WMF 3.0 WMF 3.0 WMF 4.0 WMF 4.0 WMF 5.0 WMF 5.0 WMF 5.1 WMF 5.1

Если в начальном выпуске Windows 10 включены автоматические обновления, PowerShell обновляется с версии 5.0 до 5.1. On the initial release of Windows 10, with automatic updates enabled, PowerShell gets updated from version 5.0 to 5.1. Если оригинальная версия Windows 10 не обновлена в Центре обновления Windows, версия PowerShell будет 5.0. If the original version of Windows 10 is not updated through Windows Updates, the version of PowerShell is 5.0.

Необходимость Azure PowerShell Need Azure PowerShell

Если вы ищете Azure PowerShell , можно начать с раздела Общие сведения об Azure PowerShell. If you’re looking for Azure PowerShell , you could start with Overview of Azure PowerShell.

RootUsers

Guides, tutorials, reviews and news for System Administrators.

Install PowerShell 5 in Windows Server 2008 R2

Windows Management Framework (WMF) 5.1 contains PowerShell 5.1. By default Windows Server 2008 R2 SP1 runs the older PowerShell version 2. By downloading and installing WMF 5.1 to a Windows Server 2008 R2 system, we can upgrade it to PowerShell version 5.1.

This post is part of our Microsoft 70-744 Securing Windows Server 2016 exam study guide series. For more related posts and information check out our full 70-744 study guide.

Download WMF 5.1 to a Windows Server 2008 R2 system

This also works with Windows Server 2012 and 2012 R2. By default Windows Server 2016 already has PowerShell 5.0 installed, so this is not required there. Note that to upgrade Windows Server 2008 R2 you must be using Service Pack 1 (SP1).

First we’ll confirm the verison of PowerShell on our 2008 R2 system. This can be done by opening PowerShell, and running $PSVersionTable, as shown below.

As expected we have PowerShell version 2.0, which is the default in this operating system.

WMF 5.0 or higher is needed to provide the just-enough administration (JEA) PowerShell feature implemented in Windows Server 2016 into the older 2008 R2 SP1 operating system.

Before we download and install WMF though, we must first install .NET Framework 4.5.2 or later, as this is a prerequisite for WMF 5.1 in Windows Server 2008 R2 SP1, and by default 2008 R2 SP1 comes with .NET 3.5. You can download a newer version of .NET from here: https://www.microsoft.com/net/download/framework

After installation has completed you’ll need to perform a system reboot to proceed.

A system reboot is not required after installing WMF.

Once installed open PowerShell and run $PSVersionTable again, we can now see that PSVersion is listed as 5.1 as expected.

We will now be able to configure our Windows Server 2008 R2 SP1 system to use just-enough administration (JEA), as we’ll cover in future posts.

Summary

By first updating the .NET Framework and then installing either WMF 5.0 or 5.1, we can upgrade our PowerShell version to support Just-Enough Administration (JEA) in older versions of Windows, such as Windows Server 2008 R2, 2012, and 2012 R2.

This post is part of our Microsoft 70-744 Securing Windows Server 2016 exam study guide series. For more related posts and information check out our full 70-744 study guide.

Как обновить PowerShell в Windows Server 2008 R2?

Я использую Windows PowerShell 1.0 в Windows Server 2008 R2. Я пробовал PowerShell 3.0 В Windows 8, и это выглядит хорошо для меня.

теперь вопрос: Как обновить PowerShell на компьютере с Windows Server 2008 R2? Если 3.0 не доступен для меня, то есть ли способ обновить до последней доступной версии?

5 ответов

Это невозможно. Windows PowerShell 2.0 входит в состав Windows Server 2008 R2. Невозможно установить Windows PowerShell 1.0 в 2008 R2 любым поддерживаемым способом.

чтобы проверить версию PowerShell, которую вы используете, просто повторите $host переменной.

PowerShell 2.0 входит в состав Server 2008 R2. PowerShell 3.0 входит в состав Windows 8 и Server 2012. PowerShell 3.0 можно установить на сервере 2008 R2.

перед установкой Windows Management Framework 3.0 удалите все предыдущие версии Windows Management Framework 3.0.

установить полную установку Microsoft .NET Framework 4.0 (dotNetFx40_Full_setup.exe) из Центра загрузки Майкрософт по адресуhttps://go.microsoft.com/fwlink/?LinkID=212547.

или установите Microsoft .NET Framework 4.5 (dotNetFx45_Full_setup.exe) из Центра загрузки Майкрософт по адресуhttps://go.microsoft.com/fwlink/?LinkID=242919.

Установить Управление Windows Framework 3.0 из Центра загрузки Майкрософт по адресуhttps://www.microsoft.com/en-us/download/details.aspx?id=34595.

на странице также описывается установка PowerShell 3.0 на Server 2008 (не R2) и Windows 7.

PowerShell 4.0 — это окончательная версия, доступная для Windows Server 2008 R2.

устанавливается как часть Windows Management Framework 4.0.

во-первых, правильный метод проверки версии PowerShell-проверка переменной $PSVersionTable.PSVersion и не использовать $Host или Get-Host.

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

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

  • System Center 2012 Configuration Manager (не включая SP1)
  • Система Виртуальных Машин Manager 2008 R2 (включая SP1)
  • Microsoft Exchange Server 2013, Microsoft Exchange Server 2010 и Microsoft Exchange Server 2007
  • Microsoft SharePoint 2013 и Microsoft SharePoint 2010
  • Windows Small Business Server 2011 Standard

Если ваша машина бежит любой из этих продуктов, то не установите Windows PowerShell 4.0. Windows PowerShell 3.0 имеет очень похожий список. Некоторые из этих приложений (например, Exchange Server 2013) являются совместима с пакетом обновления. Вам будет нужно определить если а пакет обновления или другое исправление доступно для вашего конкретного применение и ситуация.

кроме того, новые версии PowerShell, а также может сломать существующие сценарии.

Решаем 9 задач управления Windows Server 2008 с помощью PowerShell. Часть 2


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

6. Получаем 10 последних ошибок журнала событий
7. Сбрасываем контроль доступа к папке
8. Вычисляем время работы сервера (uptime)
9. Получаем информацию о Service Pack

Оригинал статьи здесь. Заинтересованных приглашаем под кат.

6. Получаем 10 последних ошибок журнала событий

Каждое утро, вы возможно просматриваете журналы событий в поисках 10 последних ошибок в системном журнале событий на одном или нескольких компьютерах. Упростить эту задачу можно с помощью командлета Get-EventLog.
Нужно уточнить имя журнала событий и тип записи. Типичная команда для конкретной задачи выглядит так:

В нашем случае взят журнал событий ‘system’ и тип записи ‘Error”. Если мы не уточняем имя компьютера, информация собирается с локальной машины.
Обратите внимание на сообщения (Колонка Message), которые выведены не полностью. Давайте немного изменим команду, что бы мы могли их видеть полностью.

Мы просто передали выход предыдущей команды в ft, сокращение для Format-Table и задали отображения для таблицы следующих свойств: Timewritten, Source, EventID и Message. Мы также добавили -wrap и -auto для более красивого отображения. -wrap активирует обтекание текстов, а -auto – автоматическое форматирование.
Как это выглядит:

Создадим еще один вариант данной команды. Она сортирует свойства по Source и затем осуществляет их группировку. Вывод передается в more для отображения только того, что помещается на экран.

Обратите внимание, что элементы сгруппированы по источнику. Сначала идет EventLog, затем Microsoft-Windows-GroupPolicy. — More – указывает на завершения отображения, необходимо нажать любую клавишу для того, чтобы посмотреть дополнительную информацию.
Все эти Get-EventLog команды, которые были продемонстрировали, запущены на локальном компьютере. Теперь покажем, как это сделать на удаленной машине.
Например, мне необходимо посмотреть 5 последний ошибок на контроллерах домена в офисе в Чикаго (имена компьютеров chi-dc01 и chi-dc02). Предположим, что мне необходимо отсортировать и сгруппировать результаты по Machine Name. Я также хотел бы отобразить следующие свойства Timewritten, Source, EventID и Message. И снова добавляю -wrap, -auto и more “для красоты”.

Получаем на выходе.

В предыдущем посте, рассматривая задачу №5 (получение информации по свободному месту на дисках), мы рассматривали как можно сделать HTML отчет и выложить его на Интернет сервер; то же можно сделать и с данной задаче.

7. Сброс контроля доступа к папке

Примеров, когда NTFS права на папку настроены не так, как надо, множество. Если это случается, вы, возможно, захотите, спросить контроль доступа к этой папке. Это реализуется с помощью командлета Set-Acl (Set-ACL).
Самый просто подход – использовать Get-Acl для извлечения ACL (Access Control List) из “хорошей” папки и копировать его в проблематичную папку. Произведется замена имеющегося ACL. Хотя и можно создать ACL объект с нуля, первый метод (копирование) желателен, и сейчас я продемонстрирую почему.
Предположим, что имеется на компьютере CHI-FP01 папка sales и у этой папки есть “хорошая” копия ACL. Копируем ACL и сохраняем в переменную $acl.

Давайте взглянем на информацию в ACL:

Видите свойство Access справа? Фактически это другой объект. Чтобы посмотреть его содержимое, выполним команду:

Как Вы видите, это записи контроля доступа. Если Вы хотите видеть только ссылки (identity references), чьи имена совпадают с “Sales”, то выполните следующую команду:

Теперь если мы используем ту же команду, чтобы посмотреть содержимое свойства Access, принадлежащего созданной папке chicagosales, мы ничего не получим. Обратите внимание на использование сокращений:

Одной из возможных причин, почему значения не выводятся, может быть некорректная выдача NTFS прав.
Очевидно, что решение этой проблемы – копировать “хороший” ACL в “плохой”. Но для начала нужно получить текущие NTFS права папки chicagosales и сохранить в XML файл. Это необходимо для восстановления ACL, если вдруг что-то пойдет не так (импортируем XML файл).

После того, как это сделано, запускаем команду Set-Acl для chicagosales, используя $acl, скопированную из хорошей папки.

Проверим, успешно ли осуществлена процедура: Используем ту же команду, которую мы использовали ранее для отображения ссылок на тех, чьи имена совпадают с “Sales”.

Теперь chicagosales NTFS разрешения те же, что и для папки sales. Таким образом, у вас есть простой способ управления разрешениями, позволяющий оперативно разрешить проблемы контроля доступа.

8. Получение информации о времени работы сервера (uptime)

Вашем руководству возможно будет интересно регулярно получать информацию о времени работы сервера. Используем для этого WMI класс Win32_OperatingSystem. Он выведет время работы. Возможен локальный и удаленный запуск команды. Свойство, которое нас интересует, LastBootUpTime. Но так как оно отображается в WMI формате, нам нужно будет конвертировать в более приемлемый формат.
Начнем с примера запуска локально под Windows 7.
Сначала сохраним результаты GetWmiObject в переменную $wmi.

В $wmi присутствует несколько свойств, с которыми мы будем работать, а именно CSName (имя компьютера) и LastBootUpTime.

LastBootUpTime отображается WMI формате, поэтому его нужно отконвертировать. Сохраним отконвертированное значение в переменную $boot.

Мы используем метод ConverToDateTime, который включен во все WMI объекты, которые вы получаете, когда запускаете GetWmiObject. Параметр, который вы передаете в этот метод — свойство LastBootUpTime WMI объекта $wmi.
Запросив информацию о $boot, вы получите следующее, что гораздо нагляднее предыдущего варианта LastBootUpTime:

Для определения времени работы машины, вычитываем $boot из текущих даты/времени, которые могут быть получены с помощью Get-Date.

Результат выводится как TimeSpan объект. Отконвертируем его в строку для более наглядного представления с помощью ToString().

Мы видим, что машина была запущена 2 дня 5 часов 46 минут и т.д.
А теперь все, что мы рассмотрели, запишем в виде функции под названием get-boot. Сначала посмотрим на нее полностью.

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

Затем мы используем фрагмент скрипта Process, где свойство “имя компьютера” передается в функцию. “$_” указывает, что имя компьютера задается как переменная. В противном случае имя компьютера как будет воспринято как параметр.

Включенное в фрагмент скрипта Process выражение GetWmiObject уточняет имя удаленного компьютера.

Здесь также будет несколько хеш-таблиц. Свойство CSName поменяем на Computername, так мы сможем получить более наглядное отображение. Свойство LastBoot представляет собой значение LastBootUpTime, отконвертированное с использование метода ConvertToDateTime(). И еще есть свойство Uptime, которое представляет собой TimeSpan объект, показывающий, как долго машина была запущена.

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

Как в случае с задачей 2 предыдущего поста (“Перезагрузка или выключение сервера”), Вы можете сохранить имена серверов в текстовый файл, обрабатывать те, которые пингуются и передавать их имена в функцию get-boot.

9. Получение информации о service pack

Получать информацию о service pack важно по ряду причин. Во-первых, вы можете быть в процессе установки обновления и вам важно нужно найти компьютеры с определённым SP. Во-вторых, вы можете осуществлять инвентаризацию или аудит ваших компьютеров, поэтому информация о SP вам будет нужна.
Для этого мы снова будет использовать WMI и класс Win32_Operating System. Обратите внимание на некоторые свойства: the ServicePackMajorVersion – целое число (1, 2 или 0); ServicePackMinorVersion и CSDVersion, которое выводит информацию в строку, например, “Service Pack 1”.
При работе нас интересуют в первую очередь свойства CSName (имя компьютера), Caption (ОС), CSDversion и ServicePackMajorVersion.
Типичное выражение выглядит следующим образом:

Как мы видим эта машина под Windows 7 не использует ни один SP, поэтому ServicePackMajorVersion равно 0, а CSDVersion пусто.
Создадим функцию Get-SP. В качестве параметра возьмем имя компьютера, по умолчанию совпадающее с именем локального компьютера.

И снова мы используем блок скрипта Process. Так что если имя компьютера передается, переменная $computername будет установлена в качестве передаваемого объекта. Основная часть функции – выражение класса Get-Wmiobject/Win32_operatingsystem.
Как и прежде, создадим пару хеш-таблиц. CSName переведем в ComputerName. Вместо свойства Caption используем Operating System. А вместо CSDVersionSPName. Наконец, вместо ServicePackMajorVersion используем просто Version.

Вот пример функции, запущенной локально:

Теперь можно взять компьютеры из текстового файла, пропинговать их и передать их имена в созданную функцию get-sp. Результат:

Можно видеть, что у CHI-DC02 отсутствует Service Pack 1, который только недавно был выпущен для Server 2008 R2. А это дает основания задуматься об обновлении Service Pack на этом компьютере.

Читайте также:  Windows больше 10 соединений
Оцените статью