|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Дата последнего обновления серверов |
|
PowerShell - [решено] Дата последнего обновления серверов
|
Старожил Сообщения: 208 |
Добрый день!
Подскажите, как можно получить дату последнего обновления списка серверов? Есть такой вариант: cls $ScriptBlock = { $hash=@{} $Session = New-Object -ComObject Microsoft.Update.Session $Searcher = $Session.CreateUpdateSearcher() $hash[$env:Computername] = $Searcher.QueryHistory(1,1) | select -ExpandProperty Date $hash } $server_list = cat d:\server_list.txt foreach ($server in $server_list) { Invoke-Command -ComputerName $server -ScriptBlock $ScriptBlock } Цитата:
Вероятно это связано с региональными настройками. Например, последнее обновление было 18.12.2015, а выводит 12.10.2015. Даже если прикинуть, что он выводит в формате MM/dd/YYYY. Дата всё равно не верная... |
||
Отправлено: 12:56, 18-12-2015 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $server = $env:ComputerName $key = "SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install" $keytype = [Microsoft.Win32.RegistryHive]::LocalMachine $RemoteBase = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($keytype,$server) $regKey = $RemoteBase.OpenSubKey($key) $regkey.GetValue("LastSuccessTime") |
Отправлено: 12:18, 19-12-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 208
|
Профиль | Отправить PM | Цитировать Kazun,
Большое спасибо за ответ! Такой вариант рассматривался, но в win10 и win serv 2016 такого пути - SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install нет(( |
Отправлено: 09:11, 21-12-2015 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 09:42, 21-12-2015 | #4 |
Старожил Сообщения: 208
|
Профиль | Отправить PM | Цитировать Подскажите, а есть возможность через wmi корректное время получать?
Пример выше шикарен, но на удалённых хостах не работает, очень много где RPC выключен. |
|
Отправлено: 13:27, 21-12-2015 | #5 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать |
Отправлено: 13:51, 21-12-2015 | #6 |
Старожил Сообщения: 208
|
Профиль | Отправить PM | Цитировать Так это будет выглядеть на PS, может кому пригодиться:
cls $log = "C:\temp\log.txt" #путь до лога $ou = "OU=Servers,DC=test,DC=domain,DC=ru" #путь до OU, где будет происходить поиск серверов $server_list = Get-ADComputer -Filter * -SearchBase $ou | Sort-Object #получаем список компьютеров и упорядочиваем их по алфавиту foreach ($server in $server_list.Name) { try { $last_update = Get-WmiObject Win32_NTLogEvent -ComputerName $server -filter "LogFile='System' and EventCode=19" -ErrorAction Stop | Select -First 1 | Foreach {$_.ConvertToDateTime($_.TimeWritten).ToString("dd:MM:yyyy HH:mm:ss")} #через wmi запрос обращаемся к журналу сервера и ищем событие обновлений #Write-Host $server ": " $last_update -ForegroundColor Green #вывод информации в консоль $server + ": " + $last_update | Out-File -FilePath C:\temp\log.txt -Append #запись информация в лог } catch { $ex = $Error[0].Exception.Message #записываем ошибку в переменную #Write-Host $server ": " $ex -ForegroundColor Red #вывод информации в консоль $server + ": " + $ex | Out-File -FilePath C:\temp\log.txt -Append #запись ошибку в лог } } |
Отправлено: 16:06, 29-12-2015 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Загрузка - Windows 8.1 - при запуске чёрный экран после последнего обновления | xXx34rus | Microsoft Windows 8 и 8.1 | 2 | 18-10-2015 02:34 | |
Интерфейс - [решено] После последнего обновления не полностью прорисовывается панель задач | Wusa | Microsoft Windows 7 | 5 | 22-07-2015 21:42 | |
PowerShell - MS SQL / ORACLE статус бэкапа и дата последнего бэкапа отправить на почту | AZABAZA | Скриптовые языки администрирования Windows | 4 | 27-04-2015 12:45 | |
PowerShell - [решено] Дата последнего логона пользователя | RedR | Скриптовые языки администрирования Windows | 1 | 25-12-2014 12:55 | |
[решено] Дата последнего входа в систему | Solitude | Microsoft Windows 2000/XP | 1 | 15-07-2006 02:16 |
|