Quantcast
Channel: SQLServerCentral » Programming » Powershell » Latest topics
Viewing all articles
Browse latest Browse all 467

Poweshell script to script out jobs, databases, users, linked servers, logins, roles, alerts, etc from a list of servers

$
0
0
create a c:\servers.txt file with list of serversand copy the following into a file .ps1enjoyfunction getwmiinfo ($svr) { gwmi -query "select * from Win32_ComputerSystem" -computername $svr | select Name, Model, Manufacturer, Description, DNSHostName, Domain, DomainRole, PartOfDomain, NumberOfProcessors, SystemType, TotalPhysicalMemory, UserName, Workgroup | export-csv -path .\$svr\BOX_ComputerSystem.csv -noType gwmi -query "select * from Win32_OperatingSystem" -computername $svr | select Name, Version, FreePhysicalMemory, OSLanguage, OSProductSuite, OSType, ServicePackMajorVersion, ServicePackMinorVersion | export-csv -path .\$svr\BOX_OperatingSystem.csv -noType gwmi -query "select * from Win32_PhysicalMemory" -computername $svr | select Name, Capacity, DeviceLocator, Tag | export-csv -path .\$svr\BOX_PhysicalMemory.csv -noType gwmi -query "select * from Win32_LogicalDisk where DriveType=3" -computername $svr | select Name, FreeSpace, Size | export-csv -path .\$svr\BOX_LogicalDisk.csv –noType}function get-databasescripts {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.Databases | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "Databases.sql") }function get-backupdevices {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.BackupDevices | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "BackupDevices.sql") }function get-triggers {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.Triggers | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "Triggers.sql") }function get-endpointscripts {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.EndPoints | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "EndPoints.sql") }function get-errorlogs {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.ReadErrorLog() | export-csv -path $($directoryname + "Box_errorlogs.csv") -noType}function get-sqlagentscript {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.JobServer | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "sqlagentscript.sql") }function get-jobscripts {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.JobServer.Jobs | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "jobs.sql") }function get-linkscripts {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.LinkedServers | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "linkedservers.sql") }function get-userlogins {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.Logins | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "logins.sql") }function get-roles {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.Roles | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "roles.sql") }function get-alerts {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.JobServer.Alerts | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "alerts.sql") }function get-operators {[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null$srv = New-Object "Microsoft.SqlServer.Management.Smo.Server" $sqlserver$srv.JobServer.Operators | foreach {$_.Script()+ "GO"} | Out-File $($directoryname + $serverfilename + "operators.sql") }$servers = get-content c:\servers.txtforeach ($server in $servers){ if (!(Test-Path -path .\$server)) { New-Item .\$server\ -type directory }$directoryname = "c:\downloads\DRTest\" + '\' + $server + '\' $sqlserver = $server$serverfilename = $servergetwmiinfo $serverget-databasescriptsget-errorlogsget-triggersget-backupdevicesget-endpointscriptsget-sqlagentscriptget-jobscriptsget-linkscriptsget-userloginsget-operatorsget-alerts}

Viewing all articles
Browse latest Browse all 467

Trending Articles