Поделиться через


Restart-Computer

Перезапуск операционной системы на локальных и удаленных компьютерах.

Синтаксис

Restart-Computer
       [-DcomAuthentication <AuthenticationLevel>]
       [-Impersonation <ImpersonationLevel>]
       [-WsmanAuthentication <String>]
       [-Protocol <String>]
       [[-ComputerName] <String[]>]
       [[-Credential] <PSCredential>]
       [-Force]
       [-Wait]
       [-Timeout <Int32>]
       [-For <WaitForServiceTypes>]
       [-Delay <Int16>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restart-Computer
       [-AsJob]
       [-DcomAuthentication <AuthenticationLevel>]
       [-Impersonation <ImpersonationLevel>]
       [[-ComputerName] <String[]>]
       [[-Credential] <PSCredential>]
       [-Force]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Описание

Командлет Restart-Computer перезапускает операционную систему на локальных и удаленных компьютерах.

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

Начиная с Windows PowerShell 3.0, вы можете ждать завершения перезагрузки перед выполнением следующей команды. Укажите интервал ожидания ожидания и интервал запроса и дождитесь доступности определенных служб на перезагруженном компьютере. Эта функция делает его практическим для использования Restart-Computer в скриптах и функциях.

Для перезапуска компьютера можно использовать протокол WS-Management (WSMan), если вызовы распределенной объектной модели компонентов (DCOM) блокируются, например брандмауэром предприятия. Дополнительные сведения см. в разделе "Протокол WS-Management".

Этот командлет требует удаленного взаимодействия Windows PowerShell только при использовании параметра AsJob в команде.

Примеры

Пример 1. Перезапуск локального компьютера

Restart-Computer перезапускает локальный компьютер.

Restart-Computer

Пример 2. Перезапуск нескольких компьютеров

Restart-Computer может перезапустить удаленные и локальные компьютеры. Параметр ComputerName принимает массив имен компьютеров.

Restart-Computer -ComputerName Server01, Server02, localhost

Пример 3. Перезапуск компьютеров в качестве фонового задания

Эти команды выполняют Restart-Computer команду в качестве фонового задания на двух удаленных компьютерах, а затем получите результаты.

Так как AsJob создает задание на локальном компьютере и автоматически возвращает результаты на локальный компьютер, можно запустить Receive-Job как локальную команду.

$Job = Restart-Computer -ComputerName "Server01", "Server02" -AsJob
$Job | Receive-Job

Restart-Computerиспользует параметр ComputerName для указания Server01 и Server02. Параметр AsJob запускает команду в качестве фонового задания. Объект задания хранится в переменной $Job . $Job отправляется по конвейеру командлету Receive-Job , который получает результаты.

Пример 4. Перезапуск удаленного компьютера

Restart-Computer перезапускает удаленный компьютер с настраиваемыми параметрами олицетворения и проверки подлинности.

Restart-Computer -ComputerName Server01 -Impersonation Anonymous -DcomAuthentication PacketIntegrity

Restart-Computerиспользует параметр ComputerName для указания Server01. Параметр олицетворения указывает анонимный, чтобы скрыть удостоверение запрашивающего пользователя. Параметр DcomAuthentication указывает PacketIntegrity в качестве уровня проверки подлинности подключения.

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

В этом примере выполняется немедленный перезапуск компьютеров, перечисленных в Domain01.txt файле. Имена компьютеров из текстового файла хранятся в переменной. Параметр Force принудительно запускает немедленный перезапуск, а параметр ThrottleLimit ограничивает количество одновременных подключений.

$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force -ThrottleLimit 10

Get-Contentиспользует параметр Path для получения списка имен компьютеров из текстового файла Domain01.txt. Имена компьютеров хранятся в переменной $Names. Get-Credential запрашивает имя пользователя и пароль и сохраняет значения в переменной $Creds. Restart-Computerиспользует параметры ComputerName и Credential со своими переменными. Параметр Force приводит к немедленному перезапуску каждого компьютера. Параметр ThrottleLimit ограничивает команду до 10 одновременных подключений.

Пример 6. Перезагрузка удаленного компьютера и ожидание powerShell

Restart-Computer перезапускает удаленный компьютер, а затем ожидает до 5 минут (300 секунд) для того, чтобы PowerShell стал доступным на перезагрузленном компьютере, прежде чем он продолжит работу.

Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2

Restart-Computerиспользует параметр ComputerName для указания Server01. Параметр wait ожидает завершения перезагрузки. Параметр For указывает, что PowerShell может выполнять команды на удаленном компьютере. Параметр Timeout задает пятиминутное ожидание. Параметр "Задержка " запрашивает удаленный компьютер каждые две секунды, чтобы определить, перезапускается ли он.

Пример 7. Перезапуск компьютера с помощью протокола WSMan

Restart-Computer перезапускает удаленный компьютер с помощью протокола WSMan вместо протокола DCOM по умолчанию. Проверка подлинности Kerberos определяет, имеет ли текущий пользователь разрешение на перезапуск удаленного компьютера.

Эти параметры предназначены для предприятий, в которых перезапуск на основе DCOM завершается сбоем, так как DCOM заблокирован. Например, брандмауэром.

Restart-Computer -ComputerName Server01 -Protocol WSMan -WsmanAuthentication Kerberos

Restart-Computerиспользует параметр ComputerName для указания удаленного компьютера Server01. Параметр Протокола указывает, чтобы использовать протокол WSMan. Параметр WsmanAuthentication указывает метод проверки подлинности как Kerberos.

Параметры

-AsJob

Указывает, что Restart-Computer выполняется в качестве фонового задания.

Чтобы использовать этот параметр, локальные и удаленные компьютеры должны быть настроены для удаленного взаимодействия. В Windows Vista и более поздних версиях операционной системы Windows необходимо открыть PowerShell с помощью параметра "Запуск от имени администратора ". Дополнительные сведения см. в about_Remote_Requirements.

При указании параметра AsJob команда немедленно возвращает объект, представляющий фоновое задание. Можно продолжить работу в рамках данного сеанса, пока задание завершается. Задание создается на локальном компьютере, а результаты с удаленных компьютеров автоматически возвращаются на локальный компьютер. Чтобы управлять заданием, используйте командлеты задания . Чтобы получить результаты задания, используйте Receive-Job командлет.

Дополнительные сведения о фоновых заданиях Windows PowerShell см. в about_Jobs и about_Remote_Jobs.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ComputerName

Указывает одно имя компьютера или разделенный запятыми массив имен компьютеров. Restart-Computerпринимает объекты ComputerName из конвейера или переменных.

Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компьютера. Чтобы указать локальный компьютер, введите имя компьютера, точку .или localhost.

Этот параметр не зависит от удаленного взаимодействия PowerShell. Параметр ComputerName можно использовать, даже если компьютер не настроен для выполнения удаленных команд.

Если параметр ComputerName не указан, Restart-Computer перезагрузит локальный компьютер.

Тип:String[]
Aliases:CN, __SERVER, Server, IPAddress
Position:0
Default value:None
Обязательно:False
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Confirm

Запрашивает подтверждение перед выполнением Restart-Computer.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Credential

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

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential, созданный командлетомGet-Credential. Если ввести имя пользователя, вам будет предложено ввести пароль.

Учетные данные хранятся в объекте PSCredential , а пароль хранится как SecureString.

Примечание.

Дополнительные сведения о защите данных SecureString см. в разделе "Как безопасна Защита SecureString?".

Тип:PSCredential
Position:1
Default value:Current user
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DcomAuthentication

Указывает уровень проверки подлинности, используемый для подключения к WMI. Restart-Computer использует WMI.

Допустимые значения:

  • Вызов: проверка подлинности COM на уровне звонка
  • Подключение: проверка подлинности COM на уровне подключения
  • По умолчанию: проверка подлинности Windows
  • Нет: без проверки подлинности COM
  • Пакет: проверка подлинности COM на уровне пакетов.
  • PacketIntegrity: проверка подлинности COM уровня целостности пакетов
  • PacketPrivacy: проверка подлинности COM уровня конфиденциальности пакетов.
  • Без изменений: уровень проверки подлинности совпадает с предыдущей командой.

Дополнительные сведения см. в разделе "Перечисление AuthenticationLevel".

Этот параметр впервые появился в Windows PowerShell 3.0.

Тип:AuthenticationLevel
Aliases:Authentication
Допустимые значения:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Delay

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

Этот параметр действителен только вместе с параметрами Wait и For .

Этот параметр впервые появился в Windows PowerShell 3.0.

Если параметр Delay не указан, Restart-Computer используется пять секунд задержки.

Тип:Int16
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-For

Указывает поведение PowerShell по мере ожидания доступности указанной службы или компонента после перезагрузки компьютера. Этот параметр действителен только с параметром Wait .

Допустимые значения для этого параметра:

  • По умолчанию: ожидает перезапуска PowerShell.
  • PowerShell: может выполнять команды в удаленном сеансе PowerShell на компьютере.
  • WMI: получает ответ на запрос Win32_ComputerSystem компьютера.
  • WinRM: может установить удаленный сеанс на компьютере с помощью WS-Management.

Этот параметр впервые появился в Windows PowerShell 3.0.

Тип:WaitForServiceTypes
Допустимые значения:Wmi, WinRM, PowerShell
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Force

Принудительно перезагрузит компьютер немедленно.

Тип:SwitchParameter
Aliases:f
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Impersonation

Указывает уровень олицетворения, используемый этим командлетом для вызова WMI. Restart-Computer использует WMI. Допустимые значения для этого параметра:

  • По умолчанию: олицетворение по умолчанию. Несмотря на имя, это не значение по умолчанию.
  • Анонимный: скрывает удостоверение вызывающего объекта.
  • Определение: позволяет объектам запрашивать учетные данные вызывающего объекта.
  • Олицетворения: позволяет объектам использовать учетные данные вызывающего объекта.
Тип:ImpersonationLevel
Допустимые значения:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Protocol

Указывает, какой протокол следует использовать для перезагрузки компьютеров. Допустимые значения: WSMan и DCOM.

Этот параметр впервые появился в Windows PowerShell 3.0.

Тип:String
Допустимые значения:DCOM, WSMan
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ThrottleLimit

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

Если параметр ThrottleLimit не указан или используется значение 0, Restart-Computer использует не более 32 одновременных подключений.

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Timeout

Указывает время ожидания в секундах. Когда истекает время ожидания, вернется в командную строку, Restart-Computer даже если компьютеры не перезагрузились.

Параметр Timeout действителен только с параметром Wait . Время ожидания переопределяет неопределенный период ожидания параметра Wait .

Этот параметр впервые появился в Windows PowerShell 3.0.

Тип:Int32
Aliases:TimeoutSec
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Wait

Restart-Computer подавляет запрос PowerShell и блокирует конвейер до перезапуска компьютеров. Этот параметр можно использовать в скрипте для перезагрузки компьютеров, а затем продолжить обработку после завершения перезагрузки.

Параметр wait ожидает неограниченное время перезапуска компьютеров. Время ожидания можно использовать для настройки времени и параметров for and Delay, чтобы ждать, пока определенные службы будут доступны на перезагруженных компьютерах.

Параметр Wait недействителен при перезапуске локального компьютера. Если значение параметра ComputerName содержит имена удаленных компьютеров и локального компьютера, Restart-Computer создается несрочная ошибка ожидания на локальном компьютере, но ожидает перезапуска удаленных компьютеров.

Этот параметр впервые появился в Windows PowerShell 3.0.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет, если выполняется Restart-Computer . Командлет Restart-Computer не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WsmanAuthentication

Указывает механизм, используемый для проверки подлинности учетных данных пользователя. Этот параметр впервые появился в Windows PowerShell 3.0.

Допустимые значения для этого параметра: Basic, CredSSP, Default, Digest, Kerberos и Negotiate.

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

Предупреждение

Проверка подлинности поставщика служб безопасности учетных данных (CredSSP), в которой учетные данные пользователя передаются на удаленный компьютер для проверки подлинности, предназначена для команд, требующих проверки подлинности на нескольких ресурсах, таких как доступ к удаленному сетевому ресурсу. Этот механизм повышает риск безопасности удаленной операции. Если удаленный компьютер скомпрометирован, учетные данные, передаваемые ему, могут использоваться для управления сетевым сеансом.

Тип:String
Допустимые значения:Basic, CredSSP, Default, Digest, Kerberos, Negotiate
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

String

Можно передать строку, содержащую имя компьютера в этот командлет.

Выходные данные

None

По умолчанию этот командлет не возвращает выходные данные.

System.Management.Automation.RemotingJob

При использовании параметра AsJob этот командлет возвращает объект задания.

Примечания

  • Restart-Computer Только на компьютерах под управлением Windows и требуется WinRM и WMI для завершения работы системы, включая локальную систему.
  • Restart-Computerиспользует метод Win32Shutdown класса инструментария управления Windows (WMI) Win32_OperatingSystem. Для этого метода требуется включить привилегию SeShutdownPrivilege для учетной записи пользователя, используемой для перезапуска компьютера.

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