PoshCode Archive  Artifact [f34c6ee20b]

Artifact f34c6ee20b302015cbfe14996f0e9f6285e132db71b5043da305ce03e41df776:

  • File Find-SQLServers.ps1 — part of check-in [a96225b878] at 2018-06-10 14:01:20 on branch trunk — This code searches your AD for servers that have active computer accounts within the last 30 days, pings them, and returns a list of Service objects for installed SQL instances. (user: jgrote size: 1119)

# encoding: ascii
# api: powershell
# title: Find-SQLServers
# description: This code searches your AD for servers that have active computer accounts within the last 30 days, pings them, and returns a list of Service objects for installed SQL instances.
# version: 0.1
# author: jgrote
# license: CC0
# x-poshcode-id: 5785
# x-archived: 2016-03-04T23:11:08
# x-published: 2016-03-13T18:20:00
#
# For a more readable view, change last line to:
# $sqlinstances | select machinename,status,name,displayname | sort machinename
# #Requires ActiveDirectory module
#


$servers = get-adcomputer -filter {operatingsystem -like "Windows Server*"} -properties lastlogondate | where {$_.lastlogondate -gt (get-date).adddays(-30)}

$sqlservices = foreach ($server in $servers) {
        if (test-connection $server.dnshostname -quiet -count 1 -delay 1) {
            Get-Service -verbose -computername $server.dnshostname -name "MSSQL*"
        } #if test-connection
} #foreach

$sqlinstances = $sqlservices | where {$_.servicename -like "MSSQLServer" -or $_.servicename -like "MSSQL$*"}

$sqlinstances