ReportCardPS.psm1
Write-Verbose 'Importing from [C:\projects\reportcardps\ReportCardPS\private]' # .\ReportCardPS\private\Disable-SSLValidation.ps1 function Disable-SSLValidation { <# .SYNOPSIS Disables SSL certificate validation .DESCRIPTION Disable-SSLValidation disables SSL certificate validation by using reflection to implement the System.Net.ICertificatePolicy class. Author: Matthew Graeber (@mattifestation) License: BSD 3-Clause .NOTES Reflection is ideal in situations when a script executes in an environment in which you cannot call csc.ese to compile source code. If compiling code is an option, then implementing System.Net.ICertificatePolicy in C# and Add-Type is trivial. .EXAMPLE Disable-SSLValidation .LINK http://www.exploit-monday.com #> Set-StrictMode -Version 2 # You have already run this function if ([System.Net.ServicePointManager]::CertificatePolicy.ToString() -eq 'IgnoreCerts') { Return } $Domain = [AppDomain]::CurrentDomain $DynAssembly = New-Object System.Reflection.AssemblyName('IgnoreCerts') $AssemblyBuilder = $Domain.DefineDynamicAssembly($DynAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run) $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('IgnoreCerts', $false) $TypeBuilder = $ModuleBuilder.DefineType('IgnoreCerts', 'AutoLayout, AnsiClass, Class, Public, BeforeFieldInit', [System.Object], [System.Net.ICertificatePolicy]) $TypeBuilder.DefineDefaultConstructor('PrivateScope, Public, HideBySig, SpecialName, RTSpecialName') | Out-Null $MethodInfo = [System.Net.ICertificatePolicy].GetMethod('CheckValidationResult') $MethodBuilder = $TypeBuilder.DefineMethod($MethodInfo.Name, 'PrivateScope, Public, Virtual, HideBySig, VtableLayoutMask', $MethodInfo.CallingConvention, $MethodInfo.ReturnType, ([Type[]] ($MethodInfo.GetParameters() | ForEach-Object {$_.ParameterType}))) $ILGen = $MethodBuilder.GetILGenerator() $ILGen.Emit([Reflection.Emit.Opcodes]::Ldc_I4_1) $ILGen.Emit([Reflection.Emit.Opcodes]::Ret) $TypeBuilder.CreateType() | Out-Null # Disable SSL certificate validation [System.Net.ServicePointManager]::CertificatePolicy = New-Object IgnoreCerts return $true } Write-Verbose 'Importing from [C:\projects\reportcardps\ReportCardPS\public]' # .\ReportCardPS\public\New-ReportCard.ps1 function New-ReportCard { <# .DESCRIPTION Builds HTML Reports using VMware's ClarityUI library. .PARAMETER tbd01 working on the details .PARAMETER tbd02 working on the details .EXAMPLE New-ReportCard .NOTES No notes at this time. #> [CmdletBinding( SupportsShouldProcess = $true, ConfirmImpact = "Low" )] [OutputType([String])] [OutputType([Boolean])] param( [Parameter()][String]$tbd01, [Parameter()][String]$tbd02 ) if ($pscmdlet.ShouldProcess("Starting New-ReportCard function.")) { try { #Add Function details Write-Output "This function is currently just a shell." Write-Output "To run the vCenter ReportCard script, Navigate to the ModulePath" Write-Output "Source the .ps1 '. .\Invoke-vCenterHomeReport.ps1'" Write-Output "Use the Comment based help if needed: 'get-help Invoke-vCenterHomeReport'" Write-Output "Connect to your vCenter!" Write-Output "Then run the function 'Invoke-vCenterHomeReport' add the paths if you want." Write-Output "Then pop the page up and do whatever you'd like with it." } catch { $ErrorMessage = $_.Exception.Message $FailedItem = $_.Exception.ItemName Throw "New-ReportCard: $ErrorMessage $FailedItem" } } else { # -WhatIf was used. return $false } } Write-Verbose 'Importing from [C:\projects\reportcardps\ReportCardPS\classes]' |