В этой заметке рассмотрены варианты запроса информации об установленных экземплярах SQL Server по списку серверов из Active Directory с помощью PowerShell.
В этом примере из AD выбираются компьютеры по маске имени *SQL*
и *DB*
:
Import-Module ActiveDirectory $servernames = ( ` Get-ADComputer -Filter ('Name -like "*SQL*" -Or Name -like "*DB*"') ` -SearchBase "OU=YourServers,DC=YourDomain,DC=com" ` | Select-Object -expand Name ) Invoke-Command -ComputerName ( ` Get-ADComputer -Filter ('Name -like "*SQL*" -Or Name -like "*DB*"') ` -SearchBase "OU=YourServers,DC=YourDomain,DC=com" ` | Select-Object -expand Name ) ` -ScriptBlock { ` Import-Module SQLPS -DisableNameChecking $Srv = New-Object "Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer" $servernames $Srv.ServerInstances ` | Select-Object Name, State, ServerProtocols, Urn ` | Format-Table -AutoSize } ` | Out-File C:\Temp\SQL_Servers_Poll.txt
Проверено на следующих конфигурациях:
Версия ОС | Версия PowerShell | Версия SQL Server |
---|---|---|
Windows Server 2008R2, 2012R2 | 3.0+ | SQL Server 2012 |
Автор первичной редакции:
Пётр Окунев
Время публикации: 06.12.2021 20:56