Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


Боковая панель

powershell:sql-server:powershell-one-line-solutions-for-common-sql-server-dba-tasks-more-complex-examples

Однострочные решения PowerShell для общих задач SQL Server DBA. Пример 3: Более сложные примеры PowerShell для SQL Server

В этой заметке рассмотрены примеры создания однострочных сценариев PowerShell, работающих с объектами баз данных SQL Server


В первую очередь нужно импортировать PowerShell-модуль SQLPS:

Import-Module SQLPS -DisableNameChecking;

Найти членство пользователя в ролях БД:

dir sqlserver:\sql\SERVERNAME\INSTANCENAME\databases\DBNAME\users `
 | % -Begin {$a=@()} ` 
 -process {$a += New-Object PSObject -property @{User=$_; Role=$_.EnumRoles()}} `
 -end {$a} `
 | select User, Role | ft -AutoSize -Wrap;

Найти статус последнего исполнения Заданий SQL Server Agent на экземпляре SQL Server:

dir sqlserver:\sql\SERVERNAME\default\jobserver\jobs `
 | % {$_.enumhistory()} | group  jobname | % {$_.group[0]} `
 | select  Server,  JobName,  RunDate,  Message;

Найти текущие сбойные задания SQL Server Agent:

dir sqlserver:\sql\SERVERNAME\default\jobserver\jobs `
 | % {$_.enumhistory()} | group  jobname | % {$_.group[0]} `
 | ? {$_.RunStatus -eq 0}  |  select Server, JobName, Rundate, Message;

Найти причину последней остановки/перезагрузки сервера (Примечание: локальный язык должен быть English — US, иначе, [Message] не отобразится. Это известный баг):

'Server1', 'Server2', 'Server3' `
 | % {Get-WinEvent -ComputerName $_ `
 -filterhashtable @{logname='System'; id=1074; level=4} -MaxEvents 1 } `
 | select Message, TimeCreated | format-list;

Проверить, когда в последний раз была перезагрузка множества машин:

gwmi -class win32_OperatingSystem -Computer 'Server1', 'Server2', 'Server3' `
 | select @{label='Server'; e={$_.PSComputerName}}, `
 @{label='LastBootupTime'; e={$_.converttodatetime($_.lastBootupTime)}};

Проверено на следующих конфигурациях:

Версия ОС Версия PowerShell Версия SQL Server
Windows Server 2008R2 3.0+ SQL Server 2012

Автор первичной редакции:
Пётр Окунев
Время публикации: 29.11.2021 15:32

Обсуждение

Ваш комментарий:
 

powershell/sql-server/powershell-one-line-solutions-for-common-sql-server-dba-tasks-more-complex-examples.txt · Последнее изменение: 30.11.2021 19:44 — Пётр Окунев