Windows

Удаленно запустить обновление windows 7 powershell – Модуль PSWindowsUpdate: управление обновлениями Windows из PowerShell

15.11.2020

Удаленная установка обновлений Windows с помощью PowerShell. (немного PowerCLI)

У меня проблема со скриптом для удаленных обновлений Windows. Моя цель: обновить все серверы Windows, не используя WSUS или SCCM, из PowerShell без необходимости входа на все из них и запуска процесса обновления.

Для моего скрипта я использую модули powercli и PSWindowsUpdate. В целях тестирования я использую один хост в переменной $ hostname.

Так вот что у меня есть.

$Cred = Get-Credential
Import-Module PSWindowsUpdate
Invoke-Command -ComputerName $HostName {Import-Module PSWindowsUpdate} -Verbose -Credential $Cred
Invoke-Command -ComputerName $HostName {Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d -Confirm:$false} -Verbose -Credential $Cred
Invoke-Command -ComputerName $HostName -ScriptBlock {Get-WUInstall -MicrosoftUpdate -IgnoreUserInput -AcceptAll -AutoReboot -Confirm:$FALSE -Verbose | Out-File C:\Setup\PSWindowsUpdate.log } -credential $cred
Get-Content \\$HostName\c$\Setup\PSWindowsUpdate.log

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

WARNING: To perform some operations you must run an elevated Windows PowerShell console.
WARNING: Can't access to machine "hostName". Try use: winrm qc

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

Я сделаю пакетное решение, чтобы увидеть, чего я могу достичь, но есть ли еще какое-то решение в проблеме, с которой я сталкиваюсь? Кто-нибудь пробовал это?

Большое спасибо за уделенное время! Я также открыт для любых комментариев к моему коду или исправлениям!

Автор: StefTheo Источник Размещён: 15.10.2018 08:12

issue.life

Установка обновлений Windows удаленно, используя PowerShell. (некоторые PowerCLI) — windows

У меня возникла проблема со сценарием для удаленных обновлений Windows. Моя цель: обновить все серверы Windows, не используя WSUS или SCCM, из PowerShell без необходимости входа в систему всех них и запуска процесса обновления.

Для моего скрипта я использую модули powercli и PSWindowsUpdate. Для целей тестирования я использую один хост в переменной $ hostname.

Итак, вот что у меня есть.

$Cred = Get-Credential
Import-Module PSWindowsUpdate
Invoke-Command -ComputerName $HostName {Import-Module PSWindowsUpdate} -Verbose -Credential $Cred
Invoke-Command -ComputerName $HostName {Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d -Confirm:$false} -Verbose -Credential $Cred
Invoke-Command -ComputerName $HostName -ScriptBlock {Get-WUInstall -MicrosoftUpdate -IgnoreUserInput -AcceptAll -AutoReboot -Confirm:$FALSE -Verbose | Out-File C:\Setup\PSWindowsUpdate.log } -credential $cred
Get-Content \\$HostName\c$\Setup\PSWindowsUpdate.log

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

WARNING: To perform some operations you must run an elevated Windows PowerShell console.
WARNING: Can't access to machine "hostName". Try use: winrm qc

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

Я сделаю пакетное решение, чтобы увидеть, что я могу достичь, но есть ли другое решение проблемы, с которой я столкнулся? Кто-нибудь пробовал это?

Большое спасибо за уделенное время! Я также открыт для комментариев о моем коде или исправлениях!

qaru.site

Как обновить PowerShell версию, за минуту

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами научились определять версию PowerShell, которая установлена в вашей операционной системе. У вас она могла быть устаревшей, и я вам обещал, это исправить. В сегодняшней заметке, я вам покажу быстрый процесс, как обновить PowerShell

версию в любой из операционных систем ,семейства Windows. Данные методы займут у вас не более нескольких минут. Как сказал Гагарин, поехали.

Что дает обновление версии PowerShell ?

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

Алгоритм обновления версии PowerShell

Хочу отметить, что алгоритм обновления будет одинаков для всех версий Windows начиная с 7 SP1, если у вас ниже, то установите сервисный пакет Service Pack 1 на семерку и двигайтесь дальше.

  • Определяете свою версию PowerShell
  • Проверяете наличие у вас пакета Microsoft .NET Framework 4.7, если нет, то устанавливаете его
  • Скачиваете пакет PowerShell 5.1
  • Устанавливаете пакет PowerShell 5.1

В моем примере я буду обновлять PowerShell в Windows 7 SP1. Моя текущая версия 2.0.

Далее я вам рассказывал, как проверить версию Microsoft .NET Framework 4.7. Если она у вас не установлена, то сделать, это можно по ссылке:

https://www.microsoft.com/ru-RU/download/details.aspx?id=55167

Данный пакет подойдет:

  • Windows 7 с пакетом обновления 1 (SP1) (x86 и x64)
  • Windows 8.1 (x86 и x64)
  • Юбилейное обновление Windows 10 (x86 и x64)
  • Windows Server 2008 R2 с пакетом обновления 1 (SP1) (x64)
  • Windows Server 2012 (x64)
  • Windows Server 2012 R2 (x64)
  • Windows Server 2016 (x64)

Так же советую вам произвести установку всех доступных обновлений, которые есть у вас в операционной системе, а так же убедиться, что вы получаете и дополнительные обновления. Для этого в перейдите по пути «Панель управления\Все элементы панели управления\Центр обновления Windows\Настройка параметров». Убедитесь, что у вас установлены галки:

  • Получать рекомендуемые обновления таким же образом, как и важные обновления
  • При обновлении Windows предоставлять обновления для других продуктов Майкрософт и проверить наличие нового необязательного программного обеспечения Майкрософт. Сюда и попадут Microsoft .NET Framework 4.7.

В Windows 10, данный пункт можно найти по пути «Параметры Windows — Обновление и безопасность — Центр обновления Windows — Дополнительные параметры»

Далее, когда все обновления у вас установлены, вы можете скачивать автономный пакет PowerShell 5.1, пройдите по ссылке:

https://www.microsoft.com/en-us/download/details.aspx?id=54616 если ссылка будет не работать, то загрузить пакет PowerShell 5.1 можно и у меня, думаю MS не обидится

Нажимаем кнопку «Download».

У вас появится всплывающее окно, где вас попросят выбрать для какой операционной системы вы хотите скачать пакет, по первому названию цифр понятно, для какой версии пакет, так же обратите внимание на разрядность x86 и x64. В моем случае Windows 7 64-х битная. Для обновления версии PowerShell запускаем соответствующий автономный пакет обновления Windows. У меня это Win7AndW2K8R2-KB3191566-x64.zip, единственное вам нужно его распаковать. Запустив пакет, он проверит нет ли уже данного обновления или более свежего.

Так как пакета в Windows 7 не оказалось, то вам предлагают установить KB3191566, соглашаемся.

Принимаем лицензионное соглашение.

Установка пакета с PowerShell 5.1 занимает пару минут.

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

После перезагрузки, открыв оболочку PowerShell и выполнив команду Get-Host вы видите, что версия PowerShell 2 превратилась в 5.1.14409.1005

Так же вы наверняка обратили внимание, что совместно с пакетом обновления в архиве лежит скрипт Install-WMF5.1.ps1. В задачи данного скрипта входит проверка вашей текущей версии и поиск зависимостей в виде пакетов .NET Framework. Если их не будет, то вас об этом уведомят. Так, что можете смело щелкать правым кликом по скрипту и так же выполнять его. Если у вас в системе не разрешено выполнение неподписанных цифровой подписью сценариев, то вы увидите ошибку «Выполнение скриптов запрещено», как это обходить посмотрите по ссылке, там я приводил команду 

Set-ExecutionPolicy remotesigned.

Так же может выскочить уведомление, что запрещено изменять раздел реестра, это из-за того, что оболочка PowerShell запущена не из под админана. Запустите ее в режиме администратора.

После чего скрипт у вас успешно отработает.

Установка Windows Management Framework and PowerShell 5.1.14409.20180811 через репозиторий choco

Есть такой офигенный репозиторий choco, который позволяет одной командой всегда иметь самые последние официальные версии продуктов и утилит, и PowerShell тут не исключение. Как подключать в Windows репозиторий choco я рассказывал, можете посмотреть. Когда он у вас есть вы открываете командную строку cmd , обязательно от имени администратора и вводите команду:

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

Осталось перезагрузить вашу систему и проверить новую, установленную версию PowerShell.

На этом у меня все, если остались вопросы или другие методы, о которых я не упомянул, то жду их в комментариях. С вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org.

pyatilistnik.org

Обновляем Powershell в Windows 7 — GEEK LIBRARY

Обновляем Powershell в Windows 7

Пришло время обновить Powershell на пользовательских машинах до самой последней версии (на сегодня это — версия 5.1), так как «перемен требуют наши сердца»? Нет ничего проще.

Кстати, чтобы узнать, какая версия PowerShell у нас установлена, запускаем консоль PowerShell (или ISE), вводим команду

и жмём клавишу ВВОД.

Содержимое строки PSVersion подскажет нам версию установленного Powershell:

Обновляем Powershell в Windows 7

Как я писал, на сегодня версия Powershell уже имеет номер 5.1. А на скриншоте — 2.0. Значит пора обновляться.

1. Идем на сайт Microsoft и забираем Windows Management Framework 5.1