SkylineUtils.psm1


function patching {

    $patches = get-patch $PATCHX

    $getpatchx = get-patchbaseline $PATCHX
    if ($getpatchx -lt 1) {
     new-patchbaseline -name $PATCHX -includepatch $patches -static
    }

    get-baseline $PATCHX | attach-baseline -entity $ESX
    get-inventory $ESX | scan-inventory

}


function skyline-fixer {
[CmdletBinding()] 
param(
 [string]$CSVFILE
)

if ($CSVFILE -eq "kblist")
{
 ''
 ''
 write-host "vSphere"
 write-host "https://kb.vmware.com/s/article/55650"
 write-host "https://kb.vmware.com/s/article/58874" 
 write-host "https://kb.vmware.com/s/article/1003736"
 write-host "https://kb.vmware.com/s/article/2003322" 
 write-host "https://kb.vmware.com/s/article/2136430"
 write-host "https://kb.vmware.com/s/article/2147959"
 write-host "https://kb.vmware.com/s/article/2150353" 
 ''
 write-host "horizon"
 write-host "https://kb.vmware.com/s/article/2144475"
 ''
 ''
} else {
import-csv $CSVFILE | foreach-object {

$KB = $_."Reference"
$VCENTER = $_."Source Name"
$ESX = $_."Object Name"

 switch ( $KB ) {
 "https://kb.vmware.com/s/article/2144475" 
    {     #NOTE: ESX is really VM in this context
        #NOTE: VDI
        connect-viserver -server $VCENTER
            get-advancesetting -entity $ESX -name svga.enableScreenDMA  | set-advancesetting -value TRUE -confirm:$false
        disconnect-viserver -confirm:$false
        } #2144475

 "https://kb.vmware.com/s/article/1003736" 
    {
        connect-viserver -server $VCENTER
        add-vmhostntpserver -vmhost $ESX -ntpserver 0.north-america.pool.ntp.org
        get-vmhost -name $ESX | get-vmhostservice | where-object {$_.key -eq "ntpd" } | start-vmhostservice
        get-vmhost -name $ESX | get-vmhostservice | where-object {$_.key -eq "ntpd" } | set-vmhostservice -policy "automatic"
        disconnect-viserver -confirm:$false
        } #1003736


 "https://kb.vmware.com/s/article/2147959" 
    {
        connect-viserver -server $VCENTER
        $PATCHX = "ESXi600-Update03"
        patching
        disconnect-viserver -confirm:$false
    } #2147959

 "https://kb.vmware.com/s/article/58874" 
    {
        connect-viserver -server $VCENTER
        $PATCHX = "ESXi670-Update02"
        patching
        disconnect-viserver -confirm:$false
    } #58874

 "https://kb.vmware.com/s/article/2150353" 
    {
        connect-viserver -server $VCENTER
        $HOSTX= get-vmhost $ESX
        switch ( $HOSTX.Version ) {
         "6.0.0"    {
        $PATCHX = "ESXi600-201711001"
        patching
        } #6.0.0

        "6.5.0" {
        $PATCHX = "ESXi650-201712001"
        patching
        } #6.5.0
        } #switch-HOSTX
        disconnect-viserver -confirm:$false
    }

 "https://kb.vmware.com/s/article/2136430" 
    {
        connect-viserver -server $VCENTER
        $HOSTX= get-vmhost $ESX
        switch ( $HOSTX.Version ) {
         "5.5.0"    {
        $PATCHX = "ESXi550-201608001"
        patching
        } #5.5.0

        "6.0.0" {
        $PATCHX = "ESXi600-201611401-BG"
        patching
        } #6.0.0
        } #switch-HOSTX
        disconnect-viserver -confirm:$false
    }

 "https://kb.vmware.com/s/article/55650" 
    {
        connect-viserver -server $VCENTER
        $HOSTX= get-vmhost $ESX
        switch ( $HOSTX.Version ) {
         "6.7.0"    {
        $PATCHX = "ESXi670-201811401-BG"
        patching
        } #6.7.0

        "6.5.0" {
        $PATCHX = "ESXi650-201811401-BG"
        patching
        } #6.5.0
        } #switch-HOSTX
        disconnect-viserver -confirm:$false    
        } #55650

 "https://kb.vmware.com/s/article/2003322" 
    {
    connect-viserver -server $VCENTER
        get-advancedsetting -entity $ESX -name "Syslog.global.logDir" | set-advancedsetting -value "[datastore1b] /" -confirm:$false
        get-advancedsetting -entity $ESX -name "Syslog.global.logDirUnique" | set-advancedsetting -value $true -confirm:$false
        get-advancedsetting -entity $ESX -name "Syslog.global.logHost" | set-advancedsetting -value "udp://192.168.222.100:514" -confirm:$false
        disconnect-viserver -confirm:$false
     } #2003322

 } #switch
 
} #import
} #if-csvfile
} #function

Export-ModuleMember -Function 'skyline-fixer'