Как узнать время последней перезагрузки текущего сервера в SQL Server? - PullRequest
0 голосов
/ 20 марта 2020

Поскольку я уже знаю, как получить скорость процессора текущего сервера в SQL Сервер , и я могу узнать в последний раз SQL Служба сервера запущена и общий объем оперативной памяти на текущем сервере

Теперь я хотел бы знать, когда в последний раз текущий сервер перезагружался .

Это может быть полезным, так как мы делаем много исправлений из SQL экземпляров сервера.

Сначала я начал с этого скрипта - но у меня есть некоторые проблемы:

Где-объект не распознается как внутренняя или внешняя команда

 declare @sql varchar(1008)
 set @sql = 'powershell.exe -command  get-eventlog System ^| where-object {$_.EventID -eq "6005"} ^| sort -desc TimeGenerated'

 EXEC xp_cmdshell @sql

Но тогда я нашел лучший способ:

declare @sql varchar(1008)
set @sql = 'powershell.exe -command  Get-CimInstance -ClassName win32_operatingsystem ^| select csname, lastbootuptime'

EXEC xp_cmdshell @sql

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

enter image description here

Вопрос: есть ли более простой способ получить время последней перезагрузки на SQL сервере?

У меня будет чтобы манипулировать строками, мне действительно нужна желтая часть ниже, в datatime2(3) или любой другой SQL тип данных сервера t если я смогу прочитать и преобразовать в datatime2(3) или ок datetime.

enter image description here

...