if(-not (Get-PSSnapin VMware.VimAutomation.Core -ErrorAction SilentlyContinue)) { Add-PSSnapin VMware.VimAutomation.Core } ##### Get VC connected ###################### $VCServer = "<vCenter_Server_Name>" $VCUserName = "<Domain\User>" $VCPassword = "<Password>" $VCconnection = Connect-VIServer $VCServer -Protocol https -User $VCUserName -Password $VCPassword -ErrorAction SilentlyContinue $a = (Get-VM | where-object {$_.Folder -notmatch "Replica Servers"} | Get-Snapshot | Where-object { $_.Created -lt (Get-Date).AddDays(-2)} | Where-object { $_.Description -notlike "*skipMonitoring*"} | select VM, Name, Created, Description | Measure-Object) $b = (Get-VM | where-object {$_.Folder -notmatch "Replica Servers"} | Get-Snapshot | Where-object { $_.Created -lt (Get-Date).AddDays(-2)} | Where-object { $_.Description -notlike "*skipMonitoring*"} | select -expand VM) -join ', ' $c = [System.DateTime]::Now #'Statistic: ' + $a.Count #'Message: ' + $b #'DateTimeStamp: ' + $c Disconnect-VIServer $VCServer -Confirm:$False -ErrorAction SilentlyContinue ##### Write to Database ######################### ### open database connection $SQLServer = "<SAM_SQL_Server_Name>" #use Server\Instance for named SQL instances! $SQLDBName = "<Aux_DB_Name>" $SQLDBUser = "<SQL_User_Name>" $SQLDBPwd = "<Password>" $SqlConnection = New-Object System.Data.SqlClient.SqlConnection $SqlConnection.ConnectionString = "Server = $SQLServer; Database = $SQLDBName; user id=$SQLDBUser;password=$SQLDBPwd" $SqlConnection.Open() ### Update [dbo.VIM_OldSnapShots] table $Sqlcmd = $SqlConnection.CreateCommand() $Update = "UPDATE dbo.VIM_OldSnapshots SET CountOldSnapshots = '" + $a.Count + "'," $Update = $Update + "AffectedVMs = '" + $b + "'," $Update = $Update + "DateTimeStamp = '" + $c + "'" $Sqlcmd.CommandText = $Update $Sqlcmd.ExecuteNonQuery() $SqlConnection.Close() ########################################### |