PowerShell e o dia a dia do DBA SQL SERVER
(Verificando Logins Novos)
Todos os scripts eu criei um database chamado DBA no meu servidor central e um schema diario. As tabelas sempre serão criadas neste schema e database.
Para todos os scripts, gerar um txt com os nomes dos servidores envolvidos. Eu o chamei de servidores.txt e fica assim :
SERVER1\MSSQLSERVER_1
SERVER2\MSSQLSERVER_2
SERVER3\SQL2005
Os dois primeiros são 2008 e o terceiro 2005
Eu o gravo numa pasta chamada c:\dadosps, vocês irão ver esta chamada em todos os scripts
Criar Tabela no SQL SERVER
create table diario.tb_LoginsNovos( servidor varchar(50),
data datetime,
nomelogin varchar(50),
Datacriacao datetime
)
Script PS
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null
$Datas=(get-date).adddays(- 1).ToShortDateString()
$dataHojeInsert = get-date -format "yyyy-MM-dd hh:mm:ss"
##########################################################
#Atribui o Dabatase e Server central que receberão os dados
##########################################################
$ServidorCentral = "SERVER1\MSSQLSERVER_1"
$DatabaseCentral = "DBA"
$sql = "truncate table diario.tb_loginsnovos"
Invoke-Sqlcmd -ServerInstance $ServidorCentral -Database $DatabaseCentral -Query $sql
foreach ($svr in get-content "C:\dadosps\servidores.txt" )
{
$data = ""
$Servidor=New-Object "Microsoft.SqlServer.Management.Smo.Server" "$svr"
$data = $Servidor.logins | where-object {$_.createdate.ToShortDateString() -ge $Datas -and
$_.isdisabled -eq $False -and $_.IsSystemObject -eq $FAlse } | foreach {
$NomeLogin = $_.name
$DataCriacao = [datetime] $_.createdate
$sql = "set dateformat dmy insert into diario.tb_LoginsNovos(servidor,data,nomelogin,Datacriacao) values (''$svr'',''$DataHojeInsert'',''$NomelOgin'',''$DataCriacao'')"
Invoke-Sqlcmd -ServerInstance $ServidorCentral -Database $DatabaseCentral -Query $sql
}
}
No meu primeiro Artigo eu mostro como rodar os scripts
PowerShell e o dia a dia do DBA SQL SERVER - INTRODUÇÃO e checando a conectividade de linked servers
Laerte Poltronieri Junior
PowerShell no Dia a Dia do DBA
http://laertejuniordba.spaces.live.com