Powershell время включения компьютера

Обновлено: 07.07.2024

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

В Powershell 3.0 и выше для получения информации о времени загрузки Windows можно использовать командлет Get-CimInstance. Командлет Get-CimInstance позволяет обращаться к различным классам Win32_OperatingSystem. Полный список доступных классов и методов можно вывести с помощью команды:

Get-CimInstance Win32_OperatingSystem | Get-Member

В данном случае нас интересует свойство LastBootUpTime.

Get-CimInstance Win32_OperatingSystem | Get-Member

Проверим время загрузки компьютер, на котором запускается команда:

Get-CimInstance -ClassName win32_OperatingSystem | select csname, lastbootuptime

Get-CimInstance - узнать время загрузи Windows - lastbootuptime

Чтобы проверить время загрузки Windows на удаленном компьютере, нужно использовать атрибут ComputerName. Например, проверим дату загрузки Windows на компьютере с именем Server1.

Get-CimInstance -ClassName win32_operatingsystem -ComputerName Server1| select csname, lastbootuptime

Get-WMIObject lastbootuptime

Для преобразования времени из формата TimeStamp в привычный вид мы воспользовались командлетом ConverttoDateTime.

Проверим время загрузки Windows сразу на нескольких серверах (имена серверов указываются через запятую):

Получить значение lastbootuptime с нескольких удаленных компьютеров

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

date

22.09.2021

directory

PowerShell

comments

комментария 42

Допустим, ваша задача – найти в Active Directory все неактивные компьютеры, которые не регистрировались в домене более 120 дней и заблокировать учетные записи этих компьютеров.

Прежде чем приступить к работе с командлетом Get-ADComputer, необходимо подключить модуль Active Directory Module for Windows PowerShell.

Совет. В PowerShell 3.0 (представлен в Windows Server 2012) и выше этот модуль подключается по умолчанию при установке компонента Remote Server Administration Tools -> Role Administration Tools -> AD DS and AD LDS Tools -> Active Directory модуль для Windows PowerShell. Чтобы использовать командлет Get-ADComputer в клиентских Windows 10,8.1 и Windows 7 нужно скачать и установить RSAT для вашей версии ОС и включить модуль AD-PowerShell из панели управления или командой:
Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell

Модуль Active Directory для Windows PowerShell

Основы синтаксиса и использование командлета Get-ADComputer

Справка о параметрах командлета Get-ADComputer вызывается стандартно с помощью Get-Help:

синтаксис командлета Get-ADComputer

Для получения информации из AD с помощью командлетов модуля AD for Powershell не обязательно иметь права администратора домена, достаточно чтобы учетная запись под которой запускается командлет входила в группу пользователей домена (Authenticated Users / Domain Users).

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

Get-ADComputer -Identity SRV-DB01

Get-ADComputer -Identity

Командлет вернул только базовые свойства объекта Computer из AD. Нас интересует время последней регистрации компьютера в домене AD, но этой информация в выводе команды нет. Выведем все доступные свойства данного компьютера из Active Directory:

Get-ADComputer все параметры компьютера в Active Directory

Get-ADComputer -Identity SRV-DB01 -Properties *

С помощью Get-Member можно получить список всех свойств класса Computer в AD:

Get-ADComputer -Filter * -Properties * | Get-Member

Как вы видите, время последнего входа данного компьютера в сеть указано в атрибуте компьютера LastLogonDate – 21.09.2015 0:20:17.

Командлет Get-ADComputer позволяет вывести в результатах команды любые из свойств компьютера. Уберем всю лишнюю информацию, оставив в выводе только значения полей Name и LastLogonDate.

Get-ADComputer -identity SRV-DB01 -Properties * | FT Name, LastLogonDate -Autosize

Табличное представление Get-ADComputer

Итак, мы получили данные о последнем времени регистрации в домене для одного компьютера. Теперь нам нужно изменить команду так, чтобы она возвращала информацию о времени последней регистрации в сети для всех компьютеров домена. Для этого заменим параметр –Identity на —Filter:

Получаем время входа для всех компьютеров домена

Get-ADComputer -Filter * -Properties * | FT Name, LastLogonDate -Autosize

Мы получили таблицу, которая содержит только 2 поля: имя компьютера и дата LastLogonData. Вы можете добавить в эту таблицу другие поля объекта Computer из AD. Чтобы вывести данные о компьютерах в определенном контейнере домена (OU), воспользуйтесь параметром SearchBase:
Get-ADComputer -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -Filter * -Properties * | FT Name, LastLogonDate -Autosize

Отсортируем результаты запроса по времени последнего логина в сеть (поле LastLogonDate) с помощью команды Sort:

Get-ADComputer -Filter * -Properties * | Sort LastLogonDate | FT Name, LastLogonDate -Autosize

Итак, мы получили список компьютеров домена и время их последнего входа в сеть Active Directory. Теперь мы хотим заблокировать учетные записи компьютеров, которые не использовались более 120 дней.

С помощью Get-Date получим в переменной значение текущей даты и вычтем из текущей даты 120 дней:

Get-Date adddays

Полученную переменную с датой можно использовать в качестве фильтра запроса Get-ADComputer по полю LastLogonDate

Get-ADComputer -Properties LastLogonDate -Filter | Sort LastLogonDate | FT Name, LastLogonDate -Autosize

Таким образом, мы получили список неактивных компьютеров, не регистрировавшихся в сети более 120 дней. С помощью командлета Set-ADComputer или Disable-ADAccount вы можете отключить эти учетные записи.

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

Get-ADComputer -Properties LastLogonDate -Filter | Set-ADComputer -Enabled $false -whatif

Теперь можно заблокировать все полученные учетные записи компьютеров:

Get-ADComputer -Properties LastLogonDate -Filter | Set-ADComputer -Enabled $false

Совет. Список заблокированных, отключенных и неактивных компьютеров и пользователей домена можно получить также с помощью отдельного командлета Search-ADAccount.

Примеры использования командлета Get-ADComputer

Ниже представлены еще несколько полезных примеров команд с использованием командлета Get-ADComputer, которые можно использовать для выборки и поиска компьютеров домена по определенными критериям.

Получить общее количество активных (незаблокированных) компьютеров в Active Directory:

Посчитать количество серверов с Windows Server в домене:

посчитать количество компьютеров и серверов в AD

Получить список компьютеров в определенном OU, имена которых начинаются с BuhPC:

Get-ADComputer -Filter -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -Properties IPv4Address | Format-table Name,DNSHostName,IPv4Address | ft -Wrap –Auto

При поиске по OU вы можете использовать дополнительный параметр -SearchScope 1, который означает, что нужно искать только в корневом разделе. Параметр -SearchScope 2 означает рекурсивный поиск компьютеров во всех вложенных OU.

Выбрать все рабочие станции с ОС Windows 10:

Получить список серверов в домене с версией ОС, IP адресом и установленным Service Pack:
Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"' -Properties Name,Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack,IPv4Address | Sort-Object -Property Operatingsystem | Select-Object -Property Name,Operatingsystem, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address| ft -Wrap –Auto

На выходе получили такую красивую таблицу со списком Windows Server в AD.

get-adcomputer информации о версии windows на компьютерах домена

Атрибут -LDAPFilter позволяет использовать в качестве параметра командлета Get-ADComputer различные LDAP запросы, например:

Get-ADComputer -LDAPFilter "(name=*db*)"|ft

Выбрать заблокированные компьютеры в определенном OU:

Get-ADComputer -filter * -SearchBase ‘OU=Computers, dc=winitpro,dc=loc’ | Where-Object

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

get-adcomputer -properties lastLogonDate -filter * | where < $_.lastLogonDate -lt (get-date).addmonths(-6) >| Remove-ADComputer

Результат выполнения команды Get-ADComputer можно выгрузить в текстовый файл:

Get-ADComputer -Filter < OperatingSystem -Like '*Windows Server 2008*' >-Properties OperatingSystem | Select DNSHostName, OperatingSystem | Format-Table -AutoSize C:\Script\server_system.txt

Также вы можете получить выборку компьютеров и экспортировать его в CSV файл:

Get-ADComputer -Filter * -Property * | Select-Object Name,OperatingSystem,OperatingSystemServicePack | Export-CSV All-Windows.csv -NoTypeInformation -Encoding UTF8

Или получить HTML файл отчета со списком компьютеров и нужных атрибутов компьютера:

Get-ADComputer -Filter -Properties * | Select-Object Name,OperatingSystem | ConvertTo-Html | Out-File C:\ps\ad_computer.html

html отчеи по компьютерам в домене active directory

Чтобы выполнить определенной действие со всеми компьютерами из полученного списка нужно использовать цикл Foreach. В этом примере мы хотим получить список серверов в домене с моделью и производителем:

$Computers = Get-ADComputer -Filter
Foreach ($Computer in $Computers)
$Hostname = $Computer.Name
$ComputerInfo = (Get-WmiObject -Computername $Hostname Win32_ComputerSystem)
$Manufacturer = $Computer.Manufacturer
$Model = $Computer.Model
Write-Host "Name: $Hostname"
Write-Host "Manufacturer: $Manufacturer"
Write-Host "Model: $Model"
Write-Host " "
$Content = "$Hostname;$Manufacturer;$Model"
Add-Content -Value $Content -Path "C:\PS\ServersInfo.txt"
>

Либо можно использовать более короткий синтаксис цикла. Допустим нам нужно выполнить определенную команду на всех компьютерах в определенном OU (в этом примере мы хотим запустить на всех серверах команду обновления настроек групповых политик):

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

get-adcomputer -filter -SearchBase “OU=Computers,OU=MSK,DC=winitpro,DC=ru” -properties dNSHostName,extensionAttribute10,LastLogonDate |select-object dNSHostName,extensionAttribute10,LastLogonDate


В Windows 10 понимание того, как долго устройство работает, может быть полезной информацией в ряде сценариев. Например, при устранении неполадок может потребоваться узнать, давно ли была выполнена перезагрузка, или если ваш компьютер действует во время работы над важным проектом, и вы подозреваете, что требуется перезагрузка.

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

В этом уроке по Windows 10 мы пройдём через четыре простых способа проверить работоспособность вашего устройства без использования скриптов или перезапуска.

Как проверить время работы ПК с помощью диспетчера задач

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

  1. Откройте Диспетчер задач с помощью сочетания клавиш Ctrl + Shift + Esc и клавиш, или щелкните правой кнопкой мыши панель задач и выберите Диспетчер задач в контекстном меню.
  2. Нажмите на кнопку Подробнее (если вы используете компактный вид).
  3. Перейдите на вкладку Производительность.
  4. Выберите раздел ЦП.

Информация о времени работы в диспетчере задач Windows 10

Как только вы выполните эти шаги, вы увидите uptime вашего устройства в правой части, внизу страницы.

Как проверить время работы ПК в панели управления

Ещё один простой способ определить время работы системы – это проверить состояние сетевого адаптера с помощью следующих действий:

  1. Откройте Панель управления .
  2. Нажмите на Сеть и интернет.

Раздел «Сеть и интернет» в панели управления

Ссылка для изменения параметров сетевого адаптера

Проверка длительности работы сетевого адаптера в Windows 10

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

Конечно, этот метод работает до тех пор, пока вы не сбросили сетевое подключение с момента последней загрузки устройства.

Как проверить время работы ПК с помощью командной строки

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

Использование WMIC

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

  1. Запустите Командную строку апуск от имени администратора.
  2. Введите следующую команду для запроса последнего времени загрузки устройства и нажмите клавишу Enter : wmic path Win32_OperatingSystem get LastBootUpTime

Использование WMIC для получения информации о времени запуска компьютера

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

Например, LastBootUpTime 20190221072132.500203+180, можно разбить, используя данные ниже.

  • Год: 2019
  • Месяц: 02
  • День: 21
  • Час: 07
  • Минут: 21
  • Секунд: 32
  • Миллисекунд: 500203
  • Часовой пояс: +180 (+3 часа по Гринвичу, то есть московское время)

Это означает, что компьютер работает с 21 февраля 2019 года с 07:21. Если вы хотите быть более конкретным, просто вычтите время последней загрузки из текущего времени, чтобы получить количество дней, часов и минут, в течение которых устройство работало.

Использование информации о системе

Вы также можете увидеть uptime системы через командную строку в более удобном формате с помощью средства System Information tool:

  1. Откройте Командную строку от имени администратора.
  2. Введите следующую команду для запроса времени последнего запуска устройства и нажмите клавишу Enter : systeminfo | find "Время загрузки системы"

Получение время запуска системы из файла системной информации

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

Проверка uptime компьютера с помощью PowerShell

Кроме того, с помощью PowerShell можно проверить время работы устройства, выполнив следующие действия:

  1. Откройте PowerShell от имени администратора.
  2. Введите следующую команду для запроса времени запуска устройства и нажмите клавишу Enter : (get-date) - (gcim Win32_OperatingSystem).LastBootUpTime

Проверка через PowerShell времени работы устройства под Windows 10

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

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

Кроме того, хотя эти инструкции сосредоточены на Windows 10, эти методы используются в течение длительного времени, это означает, что они также будут работать на Windows 8.1 и Windows 7.

1. Запустите диспетчер задач. Для этого нажмите правой кнопкой мыши на меню «Пуск» и выберите соответствующий пункт в меню.

01-zapusk-dipetchera-zadach.jpg

2. Перейдите на вкладку «Производительность».

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

02-vremya-raboty-v-dispetchere.jpg

Способ 2 – Используя PowerShell

1. В меню «Пуск» введите слово powershell . В списке приложений щелкните правой кнопкой мыши на «Windows PowerShell» и запустите программу от имени администратора.

03-zapusk-powershell.jpg

2. Введите следующую команду и нажмите Enter:

(get-date) - (gcim Win32_OperatingSystem).LastBootUpTime

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

04-uptime-powershell.jpg

Способ 3 – Через командную строку

1. Запустите командную строку, нажав правой клавишей мыши на кнопке «Пуск» и выбрав соответствующий пункт.

2. Введите команду net stats server и нажмите «Enter».

3. Нас будет интересовать строка «Статистика после», в которой отображаются дата и время, когда в последний раз была запущена или перезапущена система.

05-uptime-cmd.jpg

Способ 4 – Используя инструмент SystemInfo

1. Запустите командную строку, аналогично предыдущему способу.

2. Введите команду systeminfo и нажмите клавишу «Enter».

3. Найдите пункт «Время загрузки системы», который содержит данные о времени включения Windows 10.

06-uptime-systeminfo.jpg

Знаете еще способы узнать время работы компьютера в Windows 10? Напишите в комментариях.

Kak-uznat-vremya-raboty-kompyutera-Windows-10-660x330.jpg

Зачастую пользователи не замечают как быстро летит время за компьютером и даже забываются когда его включали. Операционная система Windows 10 позволяет узнать время работы или включения компьютера буквально в несколько нажатий. Время работы компьютера будет рассчитываться после полного включения системы или же перезагрузки компьютера.

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

Как узнать время работы компьютера Windows 10

Диспетчер задач

Обновленный диспетчер задач в Windows 10 получил множество функций не доступных в предыдущих версиях операционной системы. Посмотреть время работы компьютера можно было и раньше, при этом способы остались прежними даже в Windows 10. А также при необходимости смотрите как включить диспетчер задач на Windows 10, если же он был отключен администратором.

vremya-raboty-kompyutera.jpg

Пользователю достаточно запустить диспетчер задач используя комбинацию клавиш Ctrl+Shift+Esc. Дальше перейти во вкладку Производительность и выбрать пункт Центральный процессор (ЦП). В текущем расположении обратите внимание на пункт Время работы, который собственно и показывает время работы компьютера с момента его включения.

Свойства адаптера

Если же на компьютере присутствует стабильное постоянное подключение к Интернету, то с легкостью можно определить время работы компьютера посмотрев длительность сеанса подключения к сети. Для этого необходимо открыть Пуск > Параметры > Сеть и Интернет > Ethernet и нажать кнопку Настройка параметров адаптера. В открывшемся окне стандартной панели управления выбираем текущее сетевое подключение и смотрим его Длительность.

vremya-podklyucheniya-kompyutera-k-seti.jpg

Текущее расположение можно открыть без использования обновленных параметров системы Windows 10 используя классическую панель управления. Смотрите как найти Панель управления в Windows 10.

Windows PowerShell

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

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

Командная строка

Командная строка нам позволяет посмотреть время включения компьютера, после чего нам будет необходимо самостоятельно рассчитать время работы компьютера. Пользователю достаточно знать как открыть командную строку от имени администратора в Windows 10.

Vremya-vklyucheniya-kompyutera.jpg

  1. Откройте пуск и начните вводить Командная строка и в результатах поиска выберите классическое приложение командной строки и нажмите Запуск от имени администратора.
  2. В открывшемся окне командной строки выполните команду: systeminfo.
  3. Дальше в результатах выполнения команды найдите пункт Время загрузки системы и рассчитайте время включения компьютера.

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

Время работы или время работы в Windows 10 — это время, в течение которого ваша операционная система работала с момента последнего запуска.

computer-keyboard.jpg

В отличие от Linux / Unix, Windows 10 не имеет встроенной команды uptime. В Windows 10 вы можете просматривать их время выполнения различными способами: из диспетчера задач, командной строки или PowerShell. Давайте посмотрим на все эти методы.

Проверьте Windows 10 Uptime с помощью диспетчера задач Вы можете проверить текущее значение среды выполнения Windows 10 из графического интерфейса. Для этого используйте его Диспетчер задач.

task-manager-1.jpg

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

systeminfo.jpg

Вы также можете просмотреть время работы Windows 10, используя встроенную статистику любой системной службы, которая запускается без перерыва при запуске. Обычно это службы сервера или рабочей станции. Например:

Другой способ получить время безотказной работы Windows 10 — через WMI. Используйте стандартную команду:

wmic.jpg

Как просмотреть время работы Windows 10 с помощью PowerShell Теперь давайте рассмотрим некоторые способы избавления от времени безотказной работы окон 10 через PowerShell.

Прежде всего, вы можете снова использовать WMI:

Или вы можете получить последнюю дату запуска ОС более удобным способом:

uptime.jpg

Если вам нравится точность, то есть еще один способ:

uptime-2-700x419.jpg

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

Читайте также: