<# .SYNOPSIS Queries database for all servers designated to an owner. .DESCRIPTION Uses MySql .Net Connector to perform query and outputs results to an excel spreadsheet. .NOTES List filters based on POC_Primary, for full listing remove Where clause. .LINK http://www.mysql.com/downloads/connector/net/6.2.html #> $ErrorActionPreference = "SilentlyContinue" # Requires MySQL .Net Connector installed see link above [void][system.reflection.Assembly]::LoadFrom("C:\Program Files\MySQL\MySQL Connector Net 6.1.2\Assemblies\MySQL.Data.dll") #region Build instance to write output to Excel $a = New-Object -comobject Excel.Application $a.Visible = $True $b = $a.Workbooks.Add() $c = $b.Worksheets.Item(1) # Create header Row $c.Cells.Item(1,2) = "App Owner" $c.Cells.Item(1,1) = "Server Name" $c.Cells.Item(1,4) = "SLA" $c.Cells.Item(1,3) = "OS Version" $c.Cells.Item(1,5) = "Application" $c.Cells.Item(1,6) = "Status" #endregion #region Acquire Data $myconnection = New-Object MySql.Data.MySqlClient.MySqlConnection $myconnection.ConnectionString = "server=server.domain.com;user id=sa;password=sapassword;database=server;pooling=false" $myconnection.Open() $mycommand = New-Object MySql.Data.MySqlClient.MySqlCommand $mycommand.Connection = $myconnection $mycommand.CommandText = "SELECT Device_Name, POC_Primary, App_Owner1, Metal_Level, OS, Application, Status FROM Computers WHERE POC_Primary LIKE '%Name%' Order By Device_Name" $myreader = $mycommand.ExecuteReader() #endregion $rowval=2 while($myreader.Read()) { Write-Progress "Reading record" ($rowval - 1) Write-Host "Looking at: " $myreader.GetString('Device_Name') $c.Cells.Item($rowval,1) =$myreader.GetString('Device_Name') $c.Cells.Item($rowval,2) =$myreader.GetString('App_Owner1') $c.Cells.Item($rowval,3) =$myreader.GetString('OS') $c.Cells.Item($rowval,4) =$myreader.GetString('Metal_Level') $c.Cells.Item($rowval,5) =$myreader.GetString('Application') $c.Cells.Item($rowval,6) =$myreader.GetString('Status') $rowval=$rowval + 1 } $rowval = $rowval + 2 $WorkBook= $c.UsedRange $WorkBook.EntireColumn.AutoFit() #region filename construction $curdate = Get-Date # Numeric date $curday=$curdate.Day $curday = $curday.ToString("00") # Numeric month $curmonth=$curdate.Month $curmonth=$curmonth.ToString("00") # Numeric year $curyear=$curdate.Year # Create a single value $dateval = $curday + $curmonth + $curyear $listname="C:\temp\myservers" + $dateval + ".xls" #endregion $b.SaveAs($listname) Write-Host "Closing connection" $myreader.close() $myconnection.close() # SIG # Begin signature block # MIIEGQYJKoZIhvcNAQcCoIIECjCCBAYCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB # gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR # AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUJs+TIYuE+yNbUtaZkJ32kBTP # 5A6gggIuMIICKjCCAZegAwIBAgIQBWvR4TvkQb1Nsuz2LJJOnjAJBgUrDgMCHQUA # MCExHzAdBgNVBAMTFlBvd2VyU2hlbGwgQ2VydGlmaWNhdGUwHhcNMDkxMTIwMTU1 # NDE5WhcNMzkxMjMxMjM1OTU5WjAhMR8wHQYDVQQDExZQb3dlclNoZWxsIENlcnRp # ZmljYXRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCn3YPl6WlH5G0smXVS # tLd8PlpEppqe7197qlmDzDOsfIFrJyw5CtHAw20j6bzhADsI2QJrpQcRvO0mcrdn # GNJoXsYH/aHdMzRiybPVTgZK305oNLkQ3bn8YPMkfGbXgwZT2uAI7cL42RJC6MFq # OF3/sHrjeu0IkpKCfbW7cK5o4QIDAQABo2swaTATBgNVHSUEDDAKBggrBgEFBQcD # AzBSBgNVHQEESzBJgBCl9FjEF23wFZFOSUNYP5QNoSMwITEfMB0GA1UEAxMWUG93 # ZXJTaGVsbCBDZXJ0aWZpY2F0ZYIQBWvR4TvkQb1Nsuz2LJJOnjAJBgUrDgMCHQUA # A4GBAHbFtF3acwjL2jkgcharfvkgAmDMI5BWvyJ4i7pyK4JcILPXWusK+f7P/wVN # XH0sf/EgofRI3/hHSx52YkcT7vjMhix8+GyS+Du9UB/ocLgmZFS9VK1o97mO1Qnp # dBroPJKzAvPnfSzHO6xOOGT6i5MMlQOdXzp2+8yFJY5P5lcdMYIBVTCCAVECAQEw # NTAhMR8wHQYDVQQDExZQb3dlclNoZWxsIENlcnRpZmljYXRlAhAFa9HhO+RBvU2y # 7PYskk6eMAkGBSsOAwIaBQCgeDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkG # CSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEE # AYI3AgEVMCMGCSqGSIb3DQEJBDEWBBTwG3TN2AhsGp/MEEst/djD6dJOwjANBgkq # hkiG9w0BAQEFAASBgCwFMsx/sx6prEXVlGJ6D1j1AsBgZZz7NCWpc6xDUTyq1LWF # IN5sBnwyg95lk3Y/qlSRGM8WWmI5qNuMyYgi9eVyYaXHF+LCNooEAqSRer45oKC5 # yrUnXk1CmVhja/w35zWrCdBiN0pCIjF9oEkRpHrVVqnSQvYGhcgpQAY7vIqs # SIG # End signature block