Write-Log.ps1

function Write-Log 
{
  [cmdletbinding()]
  Param(
  [Parameter(Mandatory=$true,Position=0)]
  [ValidateNotNullOrEmpty()]
  [string]$Message,
  [Parameter(Position=1)]
  [string]$Path = $global:ScriptLogPath,
  [string]$ResponseColor = $null
  )
    if ($ResponseColor -ne $null -and $ResponseColor -ne '')
    {
        Write-Host $Message -ForegroundColor $ResponseColor
    }
    else
    {
        Write-Host $Message
    }

    if ($Path)
    {
      $dir = Split-Path -Path $Path
      Test-Directory -dir $dir
      Write-Output -InputObject ('{0} {1}' -f (Get-Date), $Message) | Out-File -FilePath $Path -Append
    }
}
# SIG # Begin signature block
# MIINIQYJKoZIhvcNAQcCoIINEjCCDQ4CAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUnoK7DscbjMKq+AHiZCD9y1qP
# YbKgggpWMIIE9TCCA92gAwIBAgIQDds7KUp1C2lNg1S+Cw9FaDANBgkqhkiG9w0B
# AQsFADB/MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRp
# b24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMDAuBgNVBAMTJ1N5
# bWFudGVjIENsYXNzIDMgU0hBMjU2IENvZGUgU2lnbmluZyBDQTAeFw0xNTEyMDIw
# MDAwMDBaFw0xODAxMzAyMzU5NTlaMIGHMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# Q2FsaWZvcm5pYTESMBAGA1UEBxMJUml2ZXJzaWRlMRcwFQYDVQQKFA5DaHJvbnRl
# Y2ggSW5jLjEdMBsGA1UECxQUU29mdHdhcmUgRGV2ZWxvcG1lbnQxFzAVBgNVBAMU
# DkNocm9udGVjaCBJbmMuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
# pukh0glcvSNZ3FVOdbx60qhY1kNa89fdPNEBhQ/BOvYQN+FcwEoWoDp4HmclDUtT
# pncKvsXZySbPMtZQOUGpI2D1lRnCQQCTWqJQ2UWBDJKfhk3O/46AI8SjwC0H60DJ
# SA7I1K9oVpyGp595iQ66hsnaLUmNq4/CtLrUeyhBALtlbwrWJJgnTizJT9+N8FWR
# r3aqTW1rjpN6ydDI5WopzrcJQDY3OX7Gkn5bud1QbY5mERoQ6t5JHun1u2MbkXBu
# R5G24JMcXkdJrTQoKHolWXknU8yjnglqtZ+WcdVnUmoOs301dASJ2Ij384HoZe7P
# E6CoPoWKxs93w7NEFP8PzQIDAQABo4IBYjCCAV4wCQYDVR0TBAIwADAOBgNVHQ8B
# Af8EBAMCB4AwKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3N2LnN5bWNiLmNvbS9z
# di5jcmwwZgYDVR0gBF8wXTBbBgtghkgBhvhFAQcXAzBMMCMGCCsGAQUFBwIBFhdo
# dHRwczovL2Quc3ltY2IuY29tL2NwczAlBggrBgEFBQcCAjAZDBdodHRwczovL2Qu
# c3ltY2IuY29tL3JwYTATBgNVHSUEDDAKBggrBgEFBQcDAzBXBggrBgEFBQcBAQRL
# MEkwHwYIKwYBBQUHMAGGE2h0dHA6Ly9zdi5zeW1jZC5jb20wJgYIKwYBBQUHMAKG
# Gmh0dHA6Ly9zdi5zeW1jYi5jb20vc3YuY3J0MB8GA1UdIwQYMBaAFJY7U/B5M5ev
# fYPvLivMyreGHnJmMB0GA1UdDgQWBBQjUbqnPTPQ1a1EWJmpTZfzT/yEETANBgkq
# hkiG9w0BAQsFAAOCAQEAjY6yJ1LtbzLiESH9MAQC/7EtLpayedozPxvy80psOmo8
# IVl3CC1L0AQH0Fa7qSNL313kTBzC9i/488XZz6cg4x1Ek94D82E9UL2e/Ur0CHeO
# c9znbS9oKK6FoYjy/JFmr3UUI6LmVwJ1IK95MlRtHhf3e19rVdQDlA33z6Nk33hy
# CU6kgrgxSmNKwsjY/YW1WPZpBXELK8aIxRyTepVYTQetCoLyDhTd8MuZYUzFIDCg
# FTInQKHPf8JNMND/iItFadGbkUelmM1j1Q/x1n3it1245A/J3K4UzfE2Xslv41JU
# l3dg6leOodoKUfwWzYm+H+Sx/rezb6IdgN7LpM0tBDCCBVkwggRBoAMCAQICED14
# 1/l2SWCyYX308B7KhiowDQYJKoZIhvcNAQELBQAwgcoxCzAJBgNVBAYTAlVTMRcw
# FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3Qg
# TmV0d29yazE6MDgGA1UECxMxKGMpIDIwMDYgVmVyaVNpZ24sIEluYy4gLSBGb3Ig
# YXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMyBQ
# dWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc1MB4XDTEz
# MTIxMDAwMDAwMFoXDTIzMTIwOTIzNTk1OVowfzELMAkGA1UEBhMCVVMxHTAbBgNV
# BAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVz
# dCBOZXR3b3JrMTAwLgYDVQQDEydTeW1hbnRlYyBDbGFzcyAzIFNIQTI1NiBDb2Rl
# IFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCXgx4A
# Fq8ssdIIxNdok1FgHnH24ke021hNI2JqtL9aG1H3ow0Yd2i72DarLyFQ2p7z518n
# TgvCl8gJcJOp2lwNTqQNkaC07BTOkXJULs6j20TpUhs/QTzKSuSqwOg5q1PMIdDM
# z3+b5sLMWGqCFe49Ns8cxZcHJI7xe74xLT1u3LWZQp9LYZVfHHDuF33bi+VhiXjH
# aBuvEXgamK7EVUdT2bMy1qEORkDFl5KK0VOnmVuFNVfT6pNiYSAKxzB3JBFNYoO2
# untogjHuZcrf+dWNsjXcjCtvanJcYISc8gyUXsBWUgBIzNP4pX3eL9cT5DiohNVG
# uBOGwhud6lo43ZvbAgMBAAGjggGDMIIBfzAvBggrBgEFBQcBAQQjMCEwHwYIKwYB
# BQUHMAGGE2h0dHA6Ly9zMi5zeW1jYi5jb20wEgYDVR0TAQH/BAgwBgEB/wIBADBs
# BgNVHSAEZTBjMGEGC2CGSAGG+EUBBxcDMFIwJgYIKwYBBQUHAgEWGmh0dHA6Ly93
# d3cuc3ltYXV0aC5jb20vY3BzMCgGCCsGAQUFBwICMBwaGmh0dHA6Ly93d3cuc3lt
# YXV0aC5jb20vcnBhMDAGA1UdHwQpMCcwJaAjoCGGH2h0dHA6Ly9zMS5zeW1jYi5j
# b20vcGNhMy1nNS5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMA4G
# A1UdDwEB/wQEAwIBBjApBgNVHREEIjAgpB4wHDEaMBgGA1UEAxMRU3ltYW50ZWNQ
# S0ktMS01NjcwHQYDVR0OBBYEFJY7U/B5M5evfYPvLivMyreGHnJmMB8GA1UdIwQY
# MBaAFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqGSIb3DQEBCwUAA4IBAQAThRoe
# aak396C9pK9+HWFT/p2MXgymdR54FyPd/ewaA1U5+3GVx2Vap44w0kRaYdtwb9oh
# BcIuc7pJ8dGT/l3JzV4D4ImeP3Qe1/c4i6nWz7s1LzNYqJJW0chNO4LmeYQW/Ciw
# sUfzHaI+7ofZpn+kVqU/rYQuKd58vKiqoz0EAeq6k6IOUCIpF0yH5DoRX9akJYmb
# BWsvtMkBTCd7C6wZBSKgYBU/2sn7TUyP+3Jnd/0nlMe6NQ6ISf6N/SivShK9DbOX
# Bd5EDBX6NisD3MFQAfGhEV0U5eK9J0tUviuEXg+mw3QFCu+Xw4kisR93873NQ9Tx
# TKk/tYuEr2Ty0BQhMYICNTCCAjECAQEwgZMwfzELMAkGA1UEBhMCVVMxHTAbBgNV
# BAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVz
# dCBOZXR3b3JrMTAwLgYDVQQDEydTeW1hbnRlYyBDbGFzcyAzIFNIQTI1NiBDb2Rl
# IFNpZ25pbmcgQ0ECEA3bOylKdQtpTYNUvgsPRWgwCQYFKw4DAhoFAKB4MBgGCisG
# AQQBgjcCAQwxCjAIoAKAAKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFIAa
# eKmbjs3PQsMCabLicqYYo6hbMA0GCSqGSIb3DQEBAQUABIIBACV0Mp2TuRblnyUm
# Zfy3fPkxohF3X9w4QVS5d9WhnpNSjo4ANBxgia2w8r0e5RBqZFP0sMzIr1dAWmXY
# 5aImhrd2SNxUW4Q0qnu7CQ5PRv/PU8XwdWPThiUAn2zHmBkEG+2IuWRzWPpygYO4
# T0kE+NcKhtnaxxvtaI0YvKPS/N/iDOSduFuPN1/9BXXUzvKUtDUES043JmolDk5Q
# kZ+g9UJFybEKph+jSjFoWDFsMlMAhz53SxwHD3mfJ96qPBLdtTp+miyaPWHMKTBa
# 5Yt+qZNhV1WTs7n3cUk7xeo8HRFmW2ZjP3wjn1k3xesaryvpuAH6yuiNRCvRmcoC
# ZqwYDd4=
# SIG # End signature block