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 -ClassName win32_OperatingSystem | select csname, lastbootuptime
Чтобы проверить время загрузки Windows на удаленном компьютере, нужно использовать атрибут ComputerName. Например, проверим дату загрузки Windows на компьютере с именем Server1.
Get-CimInstance -ClassName win32_operatingsystem -ComputerName Server1| select csname, lastbootuptime
Для преобразования времени из формата TimeStamp в привычный вид мы воспользовались командлетом ConverttoDateTime.
Проверим время загрузки Windows сразу на нескольких серверах (имена серверов указываются через запятую):
Если нужно узнать время загрузки сразу на большом количестве компьютеров в сети, список компьютеров можно сохранить в текстовый файл (каждая строка – отдельное имя компьютера) и с помощью цикла foreach проверить время загрузки:
Допустим, ваша задача – найти в 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
Основы синтаксиса и использование командлета Get-ADComputer
Справка о параметрах командлета Get-ADComputer вызывается стандартно с помощью Get-Help:
Чтобы получить информацию о доменной учетной записи конкретного компьютера или сервера, укажите его имя в качестве аргумента параметра —Identity:
Get-ADComputer -Identity SRV-DB01
Командлет вернул только базовые свойства объекта Computer из AD. Нас интересует время последней регистрации компьютера в домене AD, но этой информация в выводе команды нет. Выведем все доступные свойства данного компьютера из Active Directory:
Get-ADComputer -Identity SRV-DB01 -Properties *
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
Итак, мы получили данные о последнем времени регистрации в домене для одного компьютера. Теперь нам нужно изменить команду так, чтобы она возвращала информацию о времени последней регистрации в сети для всех компьютеров домена. Для этого заменим параметр –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-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 в домене:
Получить список компьютеров в определенном 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.
Атрибут -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
Чтобы выполнить определенной действие со всеми компьютерами из полученного списка нужно использовать цикл 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 мы пройдём через четыре простых способа проверить работоспособность вашего устройства без использования скриптов или перезапуска.
Как проверить время работы ПК с помощью диспетчера задач
Возможно, самый простой способ проверить время работы устройства – использовать Диспетчер задач:
- Откройте Диспетчер задач с помощью сочетания клавиш Ctrl + Shift + Esc и клавиш, или щелкните правой кнопкой мыши панель задач и выберите Диспетчер задач в контекстном меню.
- Нажмите на кнопку Подробнее (если вы используете компактный вид).
- Перейдите на вкладку Производительность.
- Выберите раздел ЦП.
Как только вы выполните эти шаги, вы увидите uptime вашего устройства в правой части, внизу страницы.
Как проверить время работы ПК в панели управления
Ещё один простой способ определить время работы системы – это проверить состояние сетевого адаптера с помощью следующих действий:
- Откройте Панель управления .
- Нажмите на Сеть и интернет.
После выполнения этих действий можно получить время работы компьютера, используя информацию «Длительность», которая указывает время работы сетевого подключения, которое сбрасывается при каждом запуске устройства.
Конечно, этот метод работает до тех пор, пока вы не сбросили сетевое подключение с момента последней загрузки устройства.
Как проверить время работы ПК с помощью командной строки
Если вы хотите использовать командную строку для проверки работоспособности устройства, у вас есть, по крайней мере, два способа сделать это.
Использование WMIC
Чтобы проверить время работы компьютера с помощью командной строки, выполните следующие действия:
- Запустите Командную строку апуск от имени администратора.
- Введите следующую команду для запроса последнего времени загрузки устройства и нажмите клавишу Enter : wmic path Win32_OperatingSystem get LastBootUpTime
После того, как вы выполните эти шаги, Вы получите результат, который может выглядеть пугающим, но это не трудно декодировать, так что вы сможете понять uptime вашего устройства.
Например, LastBootUpTime 20190221072132.500203+180, можно разбить, используя данные ниже.
- Год: 2019
- Месяц: 02
- День: 21
- Час: 07
- Минут: 21
- Секунд: 32
- Миллисекунд: 500203
- Часовой пояс: +180 (+3 часа по Гринвичу, то есть московское время)
Это означает, что компьютер работает с 21 февраля 2019 года с 07:21. Если вы хотите быть более конкретным, просто вычтите время последней загрузки из текущего времени, чтобы получить количество дней, часов и минут, в течение которых устройство работало.
Использование информации о системе
Вы также можете увидеть uptime системы через командную строку в более удобном формате с помощью средства System Information tool:
- Откройте Командную строку от имени администратора.
- Введите следующую команду для запроса времени последнего запуска устройства и нажмите клавишу Enter : systeminfo | find "Время загрузки системы"
С помощью инструмента «Информация о системе» Вы можете быстро узнать, когда в последний раз перезагружали систему в удобном для чтения формате. Кроме того, как и команда wmic, вы можете вычесть время последней загрузки из текущего времени, чтобы определить количество дней, часов и минут, в течение которых устройство работает.
Проверка uptime компьютера с помощью PowerShell
Кроме того, с помощью PowerShell можно проверить время работы устройства, выполнив следующие действия:
- Откройте PowerShell от имени администратора.
- Введите следующую команду для запроса времени запуска устройства и нажмите клавишу Enter : (get-date) - (gcim Win32_OperatingSystem).LastBootUpTime
После выполнения этих действий вы получите информацию о времени работы в формате списка с указанием дней, часов и минут.
В этом руководстве описываются несколько способов проверки времени работы устройства, но важно отметить, что есть много других методов, чтобы найти ту же информацию, используя сценарии командной строки и PowerShell. Однако, это самые простые методы.
Кроме того, хотя эти инструкции сосредоточены на Windows 10, эти методы используются в течение длительного времени, это означает, что они также будут работать на Windows 8.1 и Windows 7.
1. Запустите диспетчер задач. Для этого нажмите правой кнопкой мыши на меню «Пуск» и выберите соответствующий пункт в меню.
2. Перейдите на вкладку «Производительность».
3. В нижней части окна можно увидеть время беспрерывной работы системы.
Способ 2 – Используя PowerShell
1. В меню «Пуск» введите слово powershell . В списке приложений щелкните правой кнопкой мыши на «Windows PowerShell» и запустите программу от имени администратора.
2. Введите следующую команду и нажмите Enter:
(get-date) - (gcim Win32_OperatingSystem).LastBootUpTime
3. В результате выполнения команды вы увидите количество дней, часов, минут, секунд и миллисекунд, в течение которых ваш компьютер работал без перезагрузки.
Способ 3 – Через командную строку
1. Запустите командную строку, нажав правой клавишей мыши на кнопке «Пуск» и выбрав соответствующий пункт.
2. Введите команду net stats server и нажмите «Enter».
3. Нас будет интересовать строка «Статистика после», в которой отображаются дата и время, когда в последний раз была запущена или перезапущена система.
Способ 4 – Используя инструмент SystemInfo
1. Запустите командную строку, аналогично предыдущему способу.
2. Введите команду systeminfo и нажмите клавишу «Enter».
3. Найдите пункт «Время загрузки системы», который содержит данные о времени включения Windows 10.
Знаете еще способы узнать время работы компьютера в Windows 10? Напишите в комментариях.
Зачастую пользователи не замечают как быстро летит время за компьютером и даже забываются когда его включали. Операционная система Windows 10 позволяет узнать время работы или включения компьютера буквально в несколько нажатий. Время работы компьютера будет рассчитываться после полного включения системы или же перезагрузки компьютера.
Данная статья расскажет как узнать время работы компьютера на Windows 10. Большинство наших способов также будут без проблем работать на компьютерах под управлением предыдущих версий операционной системы Windows. Предлагаем несколько способов позволяющих посмотреть времени работы компьютера на Windows 10. Для новичков рекомендуем использовать только диспетчер задач, более опытные пользователи могут использовать все способы.
Как узнать время работы компьютера Windows 10
Диспетчер задач
Обновленный диспетчер задач в Windows 10 получил множество функций не доступных в предыдущих версиях операционной системы. Посмотреть время работы компьютера можно было и раньше, при этом способы остались прежними даже в Windows 10. А также при необходимости смотрите как включить диспетчер задач на Windows 10, если же он был отключен администратором.
Пользователю достаточно запустить диспетчер задач используя комбинацию клавиш Ctrl+Shift+Esc. Дальше перейти во вкладку Производительность и выбрать пункт Центральный процессор (ЦП). В текущем расположении обратите внимание на пункт Время работы, который собственно и показывает время работы компьютера с момента его включения.
Свойства адаптера
Если же на компьютере присутствует стабильное постоянное подключение к Интернету, то с легкостью можно определить время работы компьютера посмотрев длительность сеанса подключения к сети. Для этого необходимо открыть Пуск > Параметры > Сеть и Интернет > Ethernet и нажать кнопку Настройка параметров адаптера. В открывшемся окне стандартной панели управления выбираем текущее сетевое подключение и смотрим его Длительность.
Текущее расположение можно открыть без использования обновленных параметров системы Windows 10 используя классическую панель управления. Смотрите как найти Панель управления в Windows 10.
Windows PowerShell
Оболочка Windows PowerShell на первый взгляд похожа на командую строку. Она также позволяет выполнять множество команд для управления операционной системой в целом. Для пользователей, которые отдают предпочтение командной строке читайте инструкцию как отключить PowerShell в Windows 10.
Результаты представлены на английском языке даже в русскоязычной версии операционной системы Windows 10. Количество дней, часов, минут, секунд и миллисекунд будет выведено на экран после выполнения предыдущей команды. Пользователю остается самостоятельно посмотреть время работы компьютера в списке данных.
Командная строка
Командная строка нам позволяет посмотреть время включения компьютера, после чего нам будет необходимо самостоятельно рассчитать время работы компьютера. Пользователю достаточно знать как открыть командную строку от имени администратора в Windows 10.
- Откройте пуск и начните вводить Командная строка и в результатах поиска выберите классическое приложение командной строки и нажмите Запуск от имени администратора.
- В открывшемся окне командной строки выполните команду: systeminfo.
- Дальше в результатах выполнения команды найдите пункт Время загрузки системы и рассчитайте время включения компьютера.
Узнать время работы компьютера в Windows 10 можно несколькими способами. К легким способами можно отнести диспетчер задач или просмотр времени подключения Интернет соединения. А способы с использованием командной строки или оболочки Windows PowerShell относятся к более сложным вариантам, поскольку пользователям не только необходимо знать как запустить среду выполнения команд, но и знать команды выводящие необходимые данные.
Время работы или время работы в Windows 10 — это время, в течение которого ваша операционная система работала с момента последнего запуска.
В отличие от Linux / Unix, Windows 10 не имеет встроенной команды uptime. В Windows 10 вы можете просматривать их время выполнения различными способами: из диспетчера задач, командной строки или PowerShell. Давайте посмотрим на все эти методы.
Проверьте Windows 10 Uptime с помощью диспетчера задач Вы можете проверить текущее значение среды выполнения Windows 10 из графического интерфейса. Для этого используйте его Диспетчер задач.
Отображение времени работы вашего компьютера с помощью CMD Чтобы просмотреть время работы компьютера из командной строки, вы можете использовать один из следующих способов. Откройте окно этого командная строка от имени администратора и выполните команду:
Вы также можете просмотреть время работы Windows 10, используя встроенную статистику любой системной службы, которая запускается без перерыва при запуске. Обычно это службы сервера или рабочей станции. Например:
Другой способ получить время безотказной работы Windows 10 — через WMI. Используйте стандартную команду:
Как просмотреть время работы Windows 10 с помощью PowerShell Теперь давайте рассмотрим некоторые способы избавления от времени безотказной работы окон 10 через PowerShell.
Прежде всего, вы можете снова использовать WMI:
Или вы можете получить последнюю дату запуска ОС более удобным способом:
Если вам нравится точность, то есть еще один способ:
Наконец, вы можете использовать средство просмотра событий, где событие 6005 представляет запуск вашего компьютера. Вы можете просмотреть его из самой программы просмотра событий Windows, но вы можете использовать следующую команду Powershell:
Читайте также: