=====Изменения PowerShell и новые командлеты для SQL Server 2016===== {{:powershell:sql-server:pasted:20211127-122145.png }} Данный материал является переводом оригинальной стать: [[https://www.mssqltips.com/sqlservertip/4513/powershell-changes-and-new-cmdlets-for-sql-server-2016/|Rajendra Gupta "PowerShell changes and new cmdlets for SQL Server 2016"]] **PowerShell** - это важная оболочка Windows, которая может взаимодействовать с **SQL Server**, помогая автоматизировать и выполнять несколько задач администратора баз данных. Windows PowerShell поддерживает более сложную логику, чем сценарии T-SQL, что дает администраторам SQL Server возможность создавать надежные сценарии администрирования. В **SQL Server 2016** есть некоторые существенные изменения, а также новые командлеты, и в этом совете мы рассмотрим некоторые из этих новых командлетов PowerShell. \\ ==== PS-модуль SQLSERVER ==== Microsoft изменила модуль SQL PowerShell с ''SQLPS'' на ''SQLSERVER''. Чтобы увидеть командлеты в модуле SQLSERVER, выполните следующую команду. get-command -module SQLSERVER \\ ==== Командлет Get-SqlErrorLog ==== PowerShell командлет **Get-SqlErrorLog** используется для получения сведений из журналов SQL Server. Мы можем фильтровать журналы ошибок по тексту, датам и т.д. Мы можем получить свойство и определение **Get-sqlErrorLog** следующим образом: Get-Command | Where-Object {$_.Name -eq"Get-SqlErrorLog"} | Format-List * Получить общее количество событий в журналах ошибок: Get-SqlErrorLog -ServerInstance localhost\sql2016 | measure Отфильтровать журналы ошибок Вот пример, в котором мы ищем слово «login». Get-SqlErrorLog | Where-Object { $_.text -like "*Login*"} | Out-Grid View Точно так же, если мы хотим отфильтровать с помощью ключевого слова ''SQL Server'', выполните следующую команду. Get-SqlErrorLog | Where-Object { $_.text -like "*SQL Server*"} | Out-GridView Чтобы отфильтровать журналы между двумя датами, мы можем использовать параметр -Before и -After. Get-SqlErrorLog -After "2021/09/25" -Before "2021/10/01" ` | Where-Object { $_.text -like "*SQL Server*"} | Out-GridView Чтобы просмотреть журналы ошибок после определенной даты, мы можем запустить следующую команду. Get-SqlErrorLog ` | Where-Object {$_.Text -like '*SQL Server*' -and $_.Date -gt '10/01/2016'} ` | Out-GridView \\ ==== Командлет Set-SqlErrorLog ==== Мы можем получить свойство и определение Set-sqlErrorLog следующим образом: Get-Command | Where-Object {$_.Name -eq "Set-SqlErrorLog"} | Format-List * Мы можем настроить количество журналов ошибок с помощью этой команды. Самые старые файлы удаляются при создании нового файла журнала. Чтобы ограничить количество файлов с помощью PowerShell, напишите следующее: Set-SqlErrorLog -MaxLogCount 10 Если мы хотим сгенерировать сценарий T-SQL, чтобы установить максимальное количество файлов журнала ошибок равным 12, выполните следующую команду. Set-SqlErrorLog -MaxLogCount 12 -Script ---- {{:user:pokunev.png?50&nolink |}} Автор первичной редакции:\\ [[user:pokunev|Пётр Окунев]] \\ Время публикации: 27.11.2021 11:22 {{tag>PowerShell "SQL Server" "SQL Server 2016" T-SQL}} ~~DISCUSSION~~