Как узнать, почему сервер продолжает перезагружать? Как узнать кто перезагрузил сервер 2018
Как узнать кто перезагрузил сервер Windows
Всем привет, сегодня небольшая заметка для начинающих системных администраторов, рассмотрим вопрос как определить кто перезагрузил сервер Windows. Бывают ситуации, что по какой то причине отваливается сервер его удаленно перезагрузили, зайдя на которой вы не видите что у него был синий экран BSOD, и значит надо искать кто то его отправил в ребут. Вам необходимо выяснить кто это был.
И так рассматривать кто перезагрузил сервер Windows я буду на примере Windows Server 2008 R2, но все действия абсолютно одинаковы в любой версии Windows начиная с Vista. Поможет нам в реализации нашей задачи оснастка Просмотр событий. Открыть его можно Пуск-Администрирование-Просмотр событий или нажать WIN+R и ввести там evenvwr.msc.
у вас откроется оснастка Просмотр событий. Вам нужно выбрать журнал Windows Система. В нем как раз и находится нужная нам информация в виде события. Проблема в том что их генерируется порой очень много, для этого придумали фильтр. Жмем справа в колонке действия Фильтр текущего журнала.
В открывшемся окне вам нужно отфильтровать данный журнал. Задаем дату, я выставил период за последнюю неделю,
можете выставить и меньше и больше. Выбираем уровень событий, ставим все и самое главное какой будет источник событий. В источнике событий выбираете USER32, он и хранит нужный лог.
В итоге у меня получилась вот такая картина
После нажатия кнопки ок вы получите отфильтрованный журнал система, у меня нашлось одно событие. Код события 1074 о том что сервер с Windows Server 2008 R2 был перезагружен системой после установки программы Microsoft SOAP Toolkit.
Мне этого мало и нужно понять кто начал установку данного приложения. Для этого так же переходив уже в журнал Приложения, делаем фильтр, дату ставим например тоже неделю
Еще отфильтруем по кодам событий с 1035-1040
И в итоге мы видим вот такое событие
Начало транзакции установщика Windows: C:\Users\имя пользователя\AppData\Local\Temp\IXP000.TMP\soapsdk.msi. ИД клиентского процесса: 6264.
и еще одно
Установщик Windows изменил настройку продукта. Продукт: Microsoft SOAP Toolkit 3.0. Версия: 3.0.1325.4. Язык: 1033. Изготовитель: Microsoft Corporation. Изменение настройки завершено с состоянием: 1625.
Вот мы и выяснили кто он мистер Х. В качестве эксперимента можете удаленно перезагрузить тестовую машину или например я рассказывал как перезагрузить компьютер через командную строку.
Материал сайта pyatilistnik.org
pyatilistnik.org
Как узнать, почему сервер продолжает перезагружать? Flip Linux
Вы можете использовать следующие 2 команды ( who & last ), чтобы узнать, когда последний раз система перезагружалась, а также сообщения о предыдущих изменениях завершения или изменения уровня запуска.
В последний раз система загружалась?
Для этого вы можете использовать команду who . В частности, с ключом -b .
$ who -b system boot 2013-08-01 17:56Это говорит о том, что в последний раз система была загружена в 2013-08-01.
Предыдущие перезагрузки
Если вам интересен более подробный список предыдущих перезагрузок, вы можете использовать last команду.
$ last reboot | less reboot system boot 2.6.35.14-106.fc Thu Aug 1 17:56 - 02:03 (7+08:06) reboot system boot 2.6.35.14-106.fc Thu Aug 1 09:41 - 17:55 (08:14) reboot system boot 2.6.35.14-106.fc Thu Jul 25 15:24 - 17:55 (7+02:31) reboot system boot 2.6.35.14-106.fc Thu Jul 18 18:05 - 15:23 (6+21:17) ...Прошедшие отключения системы и изменения уровня запуска?
Вы также можете использовать last команду. Вам нужно использовать ключ -x .
$ last -x | less saml pts/7 :pts/6:S.0 Sat Aug 3 21:30 - 21:30 (00:00) saml pts/6 :0.0 Sat Aug 3 21:29 - 21:30 (00:01) saml pts/4 :0.0 Fri Aug 2 21:49 - 22:16 (2+00:26) saml pts/2 :0.0 Fri Aug 2 13:30 - 22:16 (2+08:45) saml pts/1 :0.0 Fri Aug 2 13:05 still logged in saml pts/0 :0.0 Fri Aug 2 12:37 still logged in saml pts/0 :0.0 Fri Aug 2 12:35 - 12:37 (00:02) saml pts/0 :0.0 Thu Aug 1 17:58 - 12:35 (18:36) saml tty1 :0 Thu Aug 1 17:56 still logged in runlevel (to lvl 5) 2.6.35.14-106.fc Thu Aug 1 17:56 - 02:04 (7+08:08) reboot system boot 2.6.35.14-106.fc Thu Aug 1 17:56 - 02:04 (7+08:08) shutdown system down 2.6.35.14-106.fc Thu Aug 1 17:55 - 17:56 (00:00) runlevel (to lvl 6) 2.6.35.14-106.fc Thu Aug 1 17:55 - 17:55 (00:00) saml tty2 Thu Aug 1 17:54 - down (00:01) root tty2 Thu Aug 1 17:53 - 17:54 (00:00) ...
Рекомендации
- кто
- последняя страница участника
fliplinux.com
Как найти открытые файлы и принудительно закрыть их на файловом сервере Windows
Администраторы файловых серверов Windows часто сталкиваются с необходимостью принудительного закрытия файлов, открытых пользователями. Такая задача возникает при одновременной работы с одним файлом нескольких пользователей. Часто при некорректной работе ПО или неправильном завершении сессии пользователем, файлы в сетевой папке оказываются открытыми и заблокированными, и остальные пользователи не могут вносить в него изменения. В этой статье мы покажем, как получить список открытых файлов на файловом сервере, узнать какие пользователи их используют, и способы сброса этих файловых сессий.
Вывести список открытых файлов на файловом сервере Windows
Список открытых пользователями файлов на файловом сервере Windows можно получить с помощью стандартной графической консоли Computer Management (Управление компьютером — compmgmt.msc).
Запустите на файловом сервере консоль Computer Management (или подключитесь к нему удаленно консолью со своего компьютера) и перейдите в секцию System Tools -> Shared Folders -> Open files (Служебные программы -> Общие папки -> Открыты файлы). В правой части окна отображается список файлов сервера, открытых удаленно . Список содержит локальный путь к файлу, имя учетной записи пользователя, количество блокировок и режим, в котором открыт файл (Read или Write+Read).
Этот же список открытых файлов можно получит с помощью встроенной консольной утилиты Openfiles. Например, с помощью следующей команды можно получить id сессии, имя пользователя и полный локальный путь к открытому файлу:
Openfiles /Query /fo csv |more
При удаленном доступе пользователя к папке или файлу в сетевой папке (SMB) на сервере, для пользователя создается новая сессия, определяющая данное подключение. Управление подключениями пользователей осуществляется именно через эти идентификаторы сессий.
Эту же команду можно выполнить удаленно, например, нужен список открытых файлов на файловом сервере mskfs01:
Openfiles /Query /s mskfs01 /fo csv
У команды Openfiles есть еще одна интересная возможность просмотра списка локально открытых файлов. Для ее использования нужно включить опцию Maintain Objects List (Построение списка объектов) командой openfiles /local on и перезагрузить сервер. После этого в список начнут попадать файлы, открытые локальными процессами (этот режим желательно использовать только для отладки, т.к. может негативно сказаться на производительности сервера).
Как определить какой пользователь открыл файл
Чтобы определить пользователя, который открыл (заблокировал) файл cons.adm на сервере, выполните команду:
Openfiles /Query /s mskfs01 /fo csv | find /i "cons.adm"
Ключ /i используется, чтобы выполнялся регистронезависимый поиск
Естественно, можно указать только часть имени файла. К примеру, нам нужно узнать кто открыл xlsx файл, в имени которого есть строка farm, воспользуемся таким конвейером:
Openfiles /Query /s mskfs01 /fo csv | find /i "farm"| find /i "xlsx"
Можно, конечно найти файл и в графической консоли Computer Management, но это менее удобно (консоль не предусматривает возможность поиска).
Как закрыть открытый файл
Чтобы закрыть открытый файл, нужно найти его в списке файлов секции Open File и в контекстном меню выбрать пункт «Close Open File».
Если на файловом сервере сотни открытых файлов, найти их в консоли будет непросто. Удобнее воспользоваться утилитой Openfiles. Как мы уже говорили, она возвращает ID сессии открытого файла. Именно по этому ID сессии, файл можно принудительно закрыть, сбросив подключение. Находим ID нужного файла:
Openfiles /Query /s mskfs01 /fo csv | find /i "farm"| find /i ".xlsx"
Отключаем от него пользователя по полученному идентфикатору:
Openfiles /Disconnect /s mskfs01 /ID 67109098
Как удаленно закрыть открытые файлы с помощью PowerShell
В Windows Server 2012 / Windows 8 в PowerShell появились командлеты для работы с шарами и файлами на SMB сервере. Данные командлеты можно использовать для удаленного сброса подключений к открытому файлу.
Список открытых файлов можно получить с помощью командлетов Get-SMBOpenFile , а закрыть файл (сбросить подключение) с помощью Close-SmbOpenFile.
Итак, подключаемся к удаленному серверу:
$sessn = New-CIMSession –Computername mskfs01
Находим и закрываем открытый файл pubs.docx одной командой:
Get-SMBOpenFile -CIMSession $sessn | where {$_.Path –like "*pubs.docx"} | Close-SMBOpenFile -CIMSession $sessn
Подтверждаем закрытие файла, нажав Y.
Чтобы убрать подтверждение принудительного закрытия файла на сервере, используйте ключ -Force
Эти же команды можно использовать, к примеру, чтобы закрыть все файлы, открытые некоторым пользователем (пользователь ушел домой и не освободил файлы). К примеру, чтобы сбросить все файловые сессии для пользователя ipivanov, выполните
Get-SMBOpenFile -CIMSession $sessn | where {$_.ClientUserName –like "*ipivanov*"}|Close-SMBOpenFile -CIMSession $sessn
winitpro.ru
Как посмотреть логи windows | Настройка серверов windows и linux
Всем привет, тема стать как посмотреть логи windows. Что такое логи думаю знают все, но если вдруг вы новичок, то логи это системные события происходящие в операционной системе как Windows так и Linux, которые помогают отследить, что, где и когда происходило и кто это сделал. Любой системный администратор обязан уметь читать логи windows.
Примером из жизни может служить ситуация когда на одном из серверов IBM, выходил из строя диск и для технической поддержки я собирал логи сервера, для того чтобы они могли диагностировать проблему. За собирание и фиксирование логов в Windows отвечает служба Просмотр событий. Просмотр событий это удобная оснастка для получения логов системы.
Как открыть в просмотр событий
Зайти в оснастку Просмотр событий можно очень просто, подойдет для любой версии Windows. Нажимаете волшебные кнопки
Win+R и вводите eventvwr.msc
Откроется у вас окно просмотр событий windows в котором вам нужно развернуть пункт Журналы Windows. Пробежимся по каждому из журналов.
Журнал Приложение, содержит записи связанные с программами на вашем компьютере. В журнал пишется когда программа была запущена, если запускалась с ошибкоу, то тут это тоже будет отражено.
Журнал аудит, нужен для понимания кто и когда что сделал. Например вошел в систему или вышел, попытался получить доступ. Все аудиты успеха или отказа пишутся сюда.
Пункт Установка, в него записывает Windows логи о том что и когда устанавливалось Например программы или обновления.
Самый важный журнал Это система. Сюда записывается все самое нужное и важное. Например у вас был синий экран bsod, и данные сообщения что тут заносятся помогут вам определить его причину.
Так же есть логи windows для более специфических служб, например DHCP или DNS. Просмотр событий сечет все :).
Фильтрация в просмотре событий
Предположим у вас в журнале Безопасность более миллиона событий, наверняка вы сразу зададите вопрос есть ли фильтрация, так как просматривать все из них это мазохизм. В просмотре событий это предусмотрели, логи windows можно удобно отсеять оставив только нужное. Справа в области Действия есть кнопка Фильтр текущего журнала.
Вас попросят указать уровень событий:
- Критическое
- Ошибка
- Предупреждение
- Сведения
- Подробности
Все зависит от задачи поиска, если вы ищите ошибки, то смысла в других типах сообщение нету. Далее можете для того чтобы сузить границы поиска просмотра событий укзать нужный источник событий и код.
Так что как видите разобрать логи windows очень просто, ищем, находим, решаем. Так же может быть полезным быстрая очистка логов windows:
Посмотреть логи windows PowerShell
Было бы странно если бы PowerShell не умел этого делать, для отображения log файлов открываем PowerShell и вводим вот такую команду
Get-EventLog -Logname 'System'
В итоге вы получите список логов журнала Система
Тоже самое можно делать и для других журналов например Приложения
Get-EventLog -Logname 'Application'
небольшой список абревиатур
- Код события - EventID
- Компьютер - MachineName
- Порядковый номер события - Data, Index
- Категория задач - Category
- Код категории - CategoryNumber
- Уровень - EntryType
- Сообщение события - Message
- Источник - Source
- Дата генерации события - ReplacementString, InstanceID, TimeGenerated
- Дата записи события - TimeWritten
- Пользователь - UserName
- Сайт - Site
- Подразделение - Conteiner
Например, для того чтобы в командной оболочке вывести события только со столбцами «Уровень», «Дата записи события», «Источник», «Код события», «Категория» и «Сообщение события» для журнала «Система», выполним команду:
Get-EventLog –LogName ‘System’ | Format-Table EntryType, TimeWritten, Source, EventID, Category, Message
Если нужно вывести более подробно, то заменим Format-Table на Format-List
Get-EventLog –LogName ‘System’ | Format-List EntryType, TimeWritten, Source, EventID, Category, Message
Как видите формат уже более читабельный.
Так же можно пофильтровать журналы например показать последние 20 сообщений
Get-EventLog –Logname ‘System’ –Newest 20
Или выдать список сообщение позднее 1 ноября 2014
Get-EventLog –LogName ‘System’ –After ‘1 ноября 2014’
Так что вам выбирать будь то просмотр событий или PowerShell для просмотра событий windows, это уже ваше дело.
Материал сайта pyatilistnik.org
pyatilistnik.org
Дата установки программы в Windows
Добрый день уважаемые читатели и гости блога, в прошлый раз я вам рассказал, как определяется дата установки системы, сегодня же хочу показать, каким образом вы можете определить дату установки программ в Windows. Иногда бывают случаи, когда требуется узнать, кто именно инсталлировал, тот или иной софт, особенно если он не согласован по вашим стандартам на работе, так как чаще всего все отвечают не знаю или не я, а после фактов и логов уже не отмажешься или же вы заразили ваш компьютер, вирусом, который накачал вам левых программ, захламившим вашу операционную систему.
Методы получения даты установки программ
- Через программы и компоненты
- Через сторонние программы
- Через логи Windows
Программы и компоненты
Все ниже описанные действия, будут актуальны в любой версии Windows. Откройте "Панель управления > Программы и компоненты"
В открывшемся окне найдите нужную вам программу, в столбце "Установлено" вы увидите нужную вам дату, если щелкнуть по столбцу сверху, то у вас будет все отфильтровано по дате.
Через утилиту Ccleaner
Ранее я вам описывал все достоинства программы ccleaner, в ней вы так же можете узнать дату инсталляции программного обеспечения, для этого откройте пункт "Сервис - Удаление программ", тут вы можете найти соответствующий столбец, для нужной программы.
Через просмотр событий
Все события происходящие в Windows, записываются в логи просмотра событий. Нажмите WIN+R и введите eventvwr.msc
В открывшемся окне "Просмотр событий" перейдите в пункт "Приложение"
В правой части, найдите пункт "Фильтр текущего журнала". В окне "Фильтровать текущий журнал", выберите источник событий Msinstaller.
В итоге вы получите список событий, по которому можете узнать кто и когда устанавливал программное обеспечение. В моем примере вы видите событие с кодом 11707, рассказывающее о установке Microsoft Visual C++ и видно, что его устанавливал пользователь sem.
Уверен, что данные методы по узнаванию даты установки программ и утилит вам пригодятся и вы сами сможете применить их на своей практике.
pyatilistnik.org
Как узнать аптайм сервера
Как узнать аптайм сервера
Аптайм (uptime) — это время непрерывной работы сервера, т.е. время, прошедшее с момента загрузки операционной системы. С помощью аптайма можно оценить, как долго сервер работает без сбоев и перезагрузок. В операционных системах Windows есть много способов посмотреть аптайм, вот некоторые из них.
Самый простой способ — это запустить Task Manager и перейти на вкладку «Performance».
Атайм можно посмотреть и в свойствах сетевого подключения.
Также аптайм можно определить по системным логам. При выключении и перезагрузке сервера происходит остановка и запуск службы Event Log, поэтому мы можем открыть Event Viewer и отфильтровать события с кодом 6006 (остановка) или 6005 (старт службы).
Узнать время последнего старта операционной системы можно из командной строки, введя команду systeminfo и найдя строку System Boot Time.
Можно ввести команду net statistics workstation и посмотреть, с какого момента времени собирается статистика. Как правило, это момент загрузки системы.
Ну и конечно для выяснения аптайма можно воспользоваться WMI и PowerShell. Выяснить время старта ОС можно вот так:
$wmi = Get-WmiObject Win32_OperatingSystem$wmi.LastBootUpTime
Время выводится в несколько неудобном формате, поэтому сконвертируем его:
$wmi.ConvertToDateTime($wmi.LastBootUpTime)
И выведем время работы с точностью до миллисекунды, вычтя из текущей даты дату последней загрузки:
$wmi.ConvertToDateTime($wmi.LocalDateTime) — $wmi.ConvertToDateTime($wmi.LastBootUpTime)
windowsnotes.ru
Script How to check if any Windows Server is pending for reboot
This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use.Learn moreHow to check if any Windows server is pending for reboot
Translated in 中文(简体) 旧版, čeština, 中文(繁體) 舊版, Türkçe, русский, português, 한국어, 日本語, italiano, français, español, Deutsch, español, polskigallery.technet.microsoft.com