File cleanup

This commit is contained in:
Andrew Amason
2025-05-14 14:00:19 -04:00
parent 6312884e29
commit bf7b536ac4
174 changed files with 680 additions and 24564 deletions

View File

@@ -0,0 +1,159 @@
set-executionpolicy -scope CurrentUser -executionPolicy Bypass -Force
If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
{
# Relaunch as an elevated process:
Start-Process powershell.exe "-File",('"{0}"' -f $MyInvocation.MyCommand.Path) -Verb RunAs
exit
}
$ProgressPreference = 'SilentlyContinue'
Function GenerateFolder($path) {
$global:foldPath = $null
foreach($foldername in $path.split("\")) {
$global:foldPath += ($foldername+"\")
if (!(Test-Path $global:foldPath)){
New-Item -ItemType Directory -Path $global:foldPath
# Write-Host "$global:foldPath Folder Created Successfully"
}
}
}
function getStatus
{
try {
# First we create the request.
$HTTP_Request = [System.Net.WebRequest]::Create('http://localhost')
# We then get a response from the site.
$HTTP_Response = $HTTP_Request.GetResponse()
# We then get the HTTP code as an integer.
return [int]$HTTP_Response.StatusCode
} catch [System.Net.WebException] {
}
}
GenerateFolder "~/AppData/Roaming/Docker/"
Write-Host "Checking if Hyper-V is enabled."
$hyperv = Get-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online
# Check if Hyper-V is enabled
if($hyperv.State -eq "Enabled") {
Write-Host "Hyper-V is enabled."
$wsl = Get-WindowsOptionalFeature -FeatureName Microsoft-Windows-Subsystem-Linux -Online
if($wsl.State -eq "Enabled") {
Write-Host "WSL is enabled."
if ([Environment]::Is64BitOperatingSystem)
{
Write-Host "System is x64. Need to update Linux kernel..."
if (-not (Test-Path wsl_update_x64.msi))
{
Write-Host "Downloading Linux kernel update package..."
Invoke-WebRequest -OutFile wsl_update_x64.msi https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
}
Write-Host "Installing Linux kernel update package..."
Start-Process msiexec.exe -Wait -ArgumentList '/I wsl_update_x64.msi /quiet'
Write-Host "Linux kernel update package installed."
}
Write-Host "WSL is enabled. Setting it to WSL2"
wsl --set-default-version 2
# disable distro install
# no need to install distro as docker runs on its own distro
<#
if (-not (Test-Path Ubuntu.zip))
{
Write-Host "Downloading wsl-ubuntu-1804..."
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu.zip -UseBasicParsing
Expand-Archive Ubuntu.zip 'C:\Ubuntu'
Write-Host "A pop up widow will open shortly..."
Write-Host "Once prompted provide user name, password and confirm password..."
Write-Host "This does not have to be your windows user name and password. You can provide any of your prefered username and a password."
Write-Host "Onec the Linux prompt is shown type exit and press enter."
Start-Process c:\Ubuntu\ubuntu1804.exe -Wait
}
wsl -l -v
wsl --set-version Ubuntu-18.04 2
wsl -l -v
#>
if (-not (Test-Path DockerInstaller.exe))
{
Write-Host "Installing Docker."
Write-Host "Downloading the Docker exe"
Invoke-WebRequest -Uri https://desktop.docker.com/win/stable/Docker%20Desktop%20Installer.exe -OutFile DockerInstaller.exe -UseBasicParsing
Write-Host "Download Completed"
start-process .\DockerInstaller.exe "install --quiet" -Wait -NoNewWindow
cd "C:\Program Files\Docker\Docker\"
Write-Host "Installing Docker..."
$ProgressPreference = 'SilentlyContinue'
& '.\Docker Desktop.exe'
$env:Path += ";C:\Program Files\Docker\Docker\Resources\bin"
$env:Path += ";C:\Program Files\Docker\Docker\Resources"
Write-Host "Docker Installed successfully"
Write-Host "You must reboot the sytem to continue. After reboot re-run the script."
Restart-Computer -Confirm
}
Write-Host "Starting docker..."
$ErrorActionPreference = 'SilentlyContinue';
do { $var1 = docker ps 2>$null } while (-Not $var1)
$ErrorActionPreference = 'Stop';
$env:Path += ";C:\Program Files\Docker\Docker\Resources\bin"
$env:Path += ";C:\Program Files\Docker\Docker\Resources"
Write-Host "Docker Started successfully"
}
else {
Write-Host "WSL is disabled."
Write-Host "Enabling WSL2 feature now"
& cmd /c 'dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart'
& cmd /c 'dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart'
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Start-Sleep 30
Write-Host "WSL is enabled now reboot the system and re-run the script to continue the installation."
}
} else {
Write-Host "Hyper-V is disabled."
Write-Host "Enabling Hyper-V feature now"
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Start-Sleep 30
Write-Host "Hyper-V is enabled now reboot the system and re-run the script to continue the installation."
}
<#
REFERENCES USED FOR WRITING THIS SCRIPT
https://adamtheautomator.com/windows-subsystem-for-linux/#:~:text=To%20start%20using%20WSL%2C%20open,exe%20provides%20when%20starting%20up.
https://superuser.com/questions/1271682/is-there-a-way-of-installing-ubuntu-windows-subsystem-for-linux-on-win10-v170
https://stackoverflow.com/questions/61396435/how-do-i-check-the-os-architecture32-or-64-bit-using-powershell
https://renenyffenegger.ch/notes/Windows/Subsystem-for-Linux/index
https://docs.docker.com/docker-for-windows/wsl/
https://docs.microsoft.com/en-us/windows/wsl/install-win10
https://superuser.com/questions/1271682/is-there-a-way-of-installing-ubuntu-windows-subsystem-for-linux-on-win10-v170
https://wiki.ubuntu.com/WSL
https://winaero.com/export-import-wsl-linux-distro-windows-10/
#>

View File

@@ -0,0 +1,246 @@
# ------------------------------------------------------------------------------------------------------------ #
# Author(s) : Peter Klapwijk - www.inthecloud247.com #
# Version : 1.0 #
# #
# Description : Create a Scheduled task to connect drive mapping(s). Task runs on network change. #
# #
# Changes : v1.0 - Initial version #
# #
# This script is provide "As-Is" without any warranties #
# #
#------------------------------------------------------------------------------------------------------------- #
# Microsoft Intune Management Extension might start a 32-bit PowerShell instance. If so, restart as 64-bit PowerShell
If ($ENV:PROCESSOR_ARCHITEW6432 -eq "AMD64") {
Try {
&"$ENV:WINDIR\SysNative\WindowsPowershell\v1.0\PowerShell.exe" -File $PSCOMMANDPATH
}
Catch {
Throw "Failed to start $PSCOMMANDPATH"
}
Exit
}
# ------------------------------------------------------------------------------------------------------- #
# Variables
# ------------------------------------------------------------------------------------------------------- #
$CompanyName = "CareCentrix"
$TaskScriptName = "DriveMappingsv1.0_ScriptRunFromTaskScheduler.vbs"
$TaskScriptName2 = "DriveMappingsv1.0_ScriptRunFromTaskScheduler.ps1"
$TaskScriptFolder = "C:\Program Files\Common Files\$CompanyName\DriveMappings"
$ScriptSourceDirectory = ".\"
#region Functions
Function CleanUpAndExit() {
Param(
[Parameter(Mandatory=$True)][String]$ErrorLevel
)
# Write results to registry for Intune Detection
$Key = "HKEY_LOCAL_MACHINE\Software\$CompanyName\DriveMappings\v1.0"
$NOW = Get-Date -Format "yyyyMMdd-hhmmss"
If ($ErrorLevel -eq "0") {
[microsoft.win32.registry]::SetValue($Key, "Scheduled", $NOW)
} else {
[microsoft.win32.registry]::SetValue($Key, "Failure", $NOW)
[microsoft.win32.registry]::SetValue($Key, "Error Code", $Errorlevel)
}
# Exit Script with the specified ErrorLevel
Stop-Transcript | Out-Null
EXIT $ErrorLevel
}
#endregion Functions
# ------------------------------------------------------------------------------------------------------- #
# Start Transcript
# ------------------------------------------------------------------------------------------------------- #
$Transcript = "C:\programdata\Microsoft\IntuneManagementExtension\Logs\$($(Split-Path $PSCommandPath -Leaf).ToLower().Replace(".ps1",".log"))"
Start-Transcript -Path $Transcript | Out-Null
# ------------------------------------------------------------------------------------------------------- #
# Create local copy of the script to be run from the Task Scheduler
# ------------------------------------------------------------------------------------------------------- #
if (!(Test-Path -path $TaskScriptFolder)) {
# Target Folder does not yet exist
Write-Host "Creating Folder '$TaskScriptFolder' ..."
New-Item $TaskScriptFolder -Type Directory | Out-Null
}
try {
Write-Host "Source folder to copy script from: '$ScriptSourceDirectory'"
Copy-Item "$ScriptSourceDirectory\$TaskScriptName" -Destination "$TaskScriptFolder" -ErrorAction Stop | Out-Null
Write-Host "Created local copy of the script '$TaskScriptName' in folder: '$TaskScriptFolder'"
} catch {
Write-Host "ERROR creating local copy of the script '$TaskScriptName' in folder: '$TaskScriptFolder'"
CleanUpAndExit -ErrorLevel 1
}
try {
Write-Host "Source folder to copy script from: '$ScriptSourceDirectory'"
Copy-Item "$ScriptSourceDirectory\$TaskScriptName2" -Destination "$TaskScriptFolder" -ErrorAction Stop | Out-Null
Write-Host "Created local copy of the script '$TaskScriptName2' in folder: '$TaskScriptFolder'"
} catch {
Write-Host "ERROR creating local copy of the script '$TaskScriptName2' in folder: '$TaskScriptFolder'"
CleanUpAndExit -ErrorLevel 1
}
# ------------------------------------------------------------------------------------------------------- #
# Create Scheduled Task to run At Logon
# ------------------------------------------------------------------------------------------------------- #
# General parameters
$TaskName = "Drive mappings"
$TaskDescription = "Connect drive mappings"
$TaskSettings = New-ScheduledTaskSettingsSet -Compatibility Win8 -MultipleInstances IgnoreNew -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -Hidden -StartWhenAvailable
# Define the triggers of the scheduled task
# Configure a trigger to run the script when a network change is detected
$class = cimclass MSFT_TaskEventTrigger root/Microsoft/Windows/TaskScheduler
$trigger = $class | New-CimInstance -ClientOnly
$trigger
$trigger.Enabled = $true
$trigger.Subscription = '<QueryList><Query Id="0" Path="Microsoft-Windows-NetworkProfile/Operational"><Select Path="Microsoft-Windows-NetworkProfile/Operational">*[System[Provider[@Name=''Microsoft-Windows-NetworkProfile''] and EventID=10000]]</Select></Query></QueryList>'
# Define the action of the Scheduled task
$TaskAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "`"$TaskScriptFolder\$TaskScriptName2`""
#Define the principal
$TaskPrincipal = New-ScheduledTaskPrincipal -GroupId "S-1-5-32-545"
# Register the Scheduled task
Register-ScheduledTask -Action $TaskAction -Trigger $Trigger -Settings $TaskSettings -TaskPath $CompanyName -TaskName $TaskName -Description $TaskDescription -Principal $TaskPrincipal -Force
# ------------------------------------------------------------------------------------------------------- #
# Check End State
# ------------------------------------------------------------------------------------------------------- #
try {
Get-ScheduledTask -TaskName $TaskName -ErrorAction Stop | Out-Null
write-host "SUCCESS: Task is Scheduled."
CleanUpAndExit -ErrorLevel 0
} catch {
write-host "ERROR: Scheduled Task could not be found."
CleanUpAndExit -ErrorLevel 2
}
# SIG # Begin signature block
# MIIWKAYJKoZIhvcNAQcCoIIWGTCCFhUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUys1bykPJUlvLsGv/XWKelbN6
# CSmgghNzMIIFuTCCBKGgAwIBAgITEwAF2WJyfRrDOWPSpAAAAAXZYjANBgkqhkiG
# 9w0BAQsFADBnMRMwEQYKCZImiZPyLGQBGRYDY29tMRswGQYKCZImiZPyLGQBGRYL
# Y2FyZWNlbnRyaXgxEzARBgoJkiaJk/IsZAEZFgNjY3gxHjAcBgNVBAMTFUNDWCBE
# b21haW4gSXNzdWluZyBDQTAeFw0yMzAzMTYxNDE0MzRaFw0yODAzMTQxNDE0MzRa
# MIGUMRMwEQYKCZImiZPyLGQBGRYDY29tMRswGQYKCZImiZPyLGQBGRYLY2FyZWNl
# bnRyaXgxEzARBgoJkiaJk/IsZAEZFgNjY3gxGTAXBgNVBAsTEFNlcnZlcmxlc3Mg
# U2l0ZXMxFzAVBgNVBAsTDldvcmsgRnJvbSBIb21lMRcwFQYDVQQDEw5BbWFzb24s
# IEFuZHJldzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMLCjBaNvPFh
# rtISwkR9DTn3Wx6YlH/AjKFLH+6MEbKdwWWUPyWQ6XUcMug/PbAvKuSMmEodBN+h
# r2pFKPT/YXGZGCWisJMlkR7nQrdnzb6oGiWxhoS7ElD6YUqTriVBxBOj8Dx494Lc
# /P76Jshby0ral37gJsd2nRL8Yw9TzzJP2H6aFuwJ9T/W8vdibYWef4jUxfgTJ+sA
# rePJONZwRTYkZHfCCQTQgGvaBv6RJ3WMWSzCLewnm6cAqu7rgeknmNfC2/gasBg2
# UPXyITK6edSx1XfXTfUr5TbJpi+cWOKuixUqOmNYJaRf/4jlTvnsDCKtBRtMA6WT
# gYGrNx59RFUCAwEAAaOCAi4wggIqMD0GCSsGAQQBgjcVBwQwMC4GJisGAQQBgjcV
# CIe8uiGEwuM0zYklgq6SOoSJ8HiBD4flphKDp98YAgFkAgEDMBMGA1UdJQQMMAoG
# CCsGAQUFBwMDMA4GA1UdDwEB/wQEAwIHgDAbBgkrBgEEAYI3FQoEDjAMMAoGCCsG
# AQUFBwMDMB0GA1UdDgQWBBRpLREEN8ouqVAjy36kDfV4M4YSTzAfBgNVHSMEGDAW
# gBSWx7Rvmiz0f0ZAwCpnHof4LRWcKTBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8v
# cGtpLmNjeC5jYXJlY2VudHJpeC5jb20vY2VydGVucm9sbC9DQ1glMjBEb21haW4l
# MjBJc3N1aW5nJTIwQ0EuY3JsMIGBBggrBgEFBQcBAQR1MHMwcQYIKwYBBQUHMAKG
# ZWh0dHA6Ly9wa2kuY2N4LmNhcmVjZW50cml4LmNvbS9jZXJ0ZW5yb2xsL1BQS0kw
# MDQuY2N4LmNhcmVjZW50cml4LmNvbV9DQ1glMjBEb21haW4lMjBJc3N1aW5nJTIw
# Q0EuY3J0MDgGA1UdEQQxMC+gLQYKKwYBBAGCNxQCA6AfDB1hbmRyZXcuYW1hc29u
# QGNhcmVjZW50cml4LmNvbTBNBgkrBgEEAYI3GQIEQDA+oDwGCisGAQQBgjcZAgGg
# LgQsUy0xLTUtMjEtMTE3OTk0ODU1LTE2OTk3ODc3LTM1ODA5NTM0MzgtODI0MDkw
# DQYJKoZIhvcNAQELBQADggEBAFDwW1McWcyvVDe+vYaKdi3raEkRXlDAUnyblXzw
# juBRARJS/G4SdIT7sWYMefvRDjY6LF+aaJKpBtp/VlIveUaeNZ+wpai7bwXYtxKb
# ZF6dnKFhnSzzmApi09ep3jkD/WADgy6jZ4k5i6GZvqHN3r9s5Wc7/AP45pcgOLXF
# n7yVa+5nlHJ/I4orxGvJuj0H/wOhoH3ESaUJuWXo6ANcfnCsP8ETWfBlm9jrW0tG
# MST88T1GuP8vvL651uacOKYjy5LMIm4zFwjhEtg/fSfXIIybsOUkzrt1FB1OEkiL
# pimivoRafSa2zfZNx2/jws0Q3KVSADB5NI3MHvJiBdGQz1owgga3MIIFn6ADAgEC
# AhMTAAAAAquNE9NCf3mRAAAAAAACMA0GCSqGSIb3DQEBCwUAMCsxKTAnBgNVBAMT
# IENhcmVDZW50cml4IENvcnBvcmF0ZSBSb290IENBIElJMB4XDTE2MDMwMzE5MDQw
# OFoXDTM2MDMwMzE3NDgxMFowLDEqMCgGA1UEAxMhQ2FyZUNlbnRyaXggQ29ycG9y
# YXRlIFBvbGljeSBDQSBJMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
# mih9mZKxa2GGpc3RxX6Y8zQlP8lRsZ05KtC+RkIEJAs9ucIbEvWCTExjqG2Wmt9w
# 0Ph6+ZOxafEa0awsMzvRa2upsBs6rEqhvuWKySoXxtSJE/eJyYqAqwa6qmIeFZYA
# mE6ewprnyO+1r9HSbW+OHWAe7LMWnGLCdX/ls3yB9p9ax/DGR/3xX+XBrEreevOF
# srAUDzcgHpi4vAh4j1TQdvH2AtZ47AsHirakZI1vBrygf9uLPWSxKwyMy9xebiZl
# mKc4WPR51aYXwt8nsUy6MnjTjOvFJto+dHakWQngEW/dYDy3JUh5LIkuYDJvIm5v
# MQyug7Yh02CZs4+1NMVsPQIDAQABo4ID0TCCA80wEAYJKwYBBAGCNxUBBAMCAQAw
# HQYDVR0OBBYEFMP+zZMzw1VnJs8h5P18DA4SsUN0MIGpBgNVHSAEgaEwgZ4wgZsG
# IiqGSIb3FAG+QJN6s3DjBYGPDoGSSILqTYLehhyF1N84AmQwdTA6BggrBgEFBQcC
# AjAuHiwATABlAGcAYQBsACAAUABvAGwAaQBjAHkAIABTAHQAYQB0AGUAbQBlAG4A
# dDA3BggrBgEFBQcCARYraHR0cDovL3BraS5jY3guY2FyZWNlbnRyaXguY29tL3Br
# aS9jcHMudHh0ADAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC
# AYYwEgYDVR0TAQH/BAgwBgEB/wIBATAfBgNVHSMEGDAWgBSrs2vcHt1Q/sf0tn+I
# DWEvItiT3TCCAUcGA1UdHwSCAT4wggE6MIIBNqCCATKgggEuhoHTbGRhcDovLy9D
# Tj1DYXJlQ2VudHJpeCUyMENvcnBvcmF0ZSUyMFJvb3QlMjBDQSUyMElJLENOPVBQ
# S0kwMDEsQ049Q0RQLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZp
# Y2VzLENOPUNvbmZpZ3VyYXRpb24sREM9Q2FyZUNlbnRyaXgsREM9Q29tP2NlcnRp
# ZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmli
# dXRpb25Qb2ludIZWaHR0cDovL3BraS5jY3guY2FyZWNlbnRyaXguY29tL2NlcnRl
# bnJvbGwvQ2FyZUNlbnRyaXglMjBDb3Jwb3JhdGUlMjBSb290JTIwQ0ElMjBJSS5j
# cmwwggFEBggrBgEFBQcBAQSCATYwggEyMIHLBggrBgEFBQcwAoaBvmxkYXA6Ly8v
# Q049Q2FyZUNlbnRyaXglMjBDb3Jwb3JhdGUlMjBSb290JTIwQ0ElMjBJSSxDTj1B
# SUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29u
# ZmlndXJhdGlvbixEQz1DYXJlQ2VudHJpeCxEQz1Db20/Y0FDZXJ0aWZpY2F0ZT9i
# YXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwYgYIKwYBBQUH
# MAKGVmh0dHA6Ly9wa2kuY2N4LmNhcmVjZW50cml4LmNvbS9jZXJ0ZW5yb2xsL0Nh
# cmVDZW50cml4JTIwQ29ycG9yYXRlJTIwUm9vdCUyMENBJTIwSUkuY3J0MA0GCSqG
# SIb3DQEBCwUAA4IBAQBGcGvwx7dsRpHryqeJKG9U60dL6WA3fWHw5laVScvL8TPD
# gh0Jb4fTtkV+pSxfszlPlWzzgHWlUvL/t7QNSLNjeE6eS+17QRxi37sGqBT0xfk3
# iwXK9ydqLz4MUlBL0XBJdM1fd/DLruowgMKaIks7getYzPM6WfJ6ghdk8DWYBdsX
# YwZRw3TU3KD0hS3aAoF41/jZ1OdimXDZpE7xPhcf1eNYyZiGttwidGh0MEouFcuD
# 78Lc/7C0F8F/CyL1IWeaMsqWjksup71owXcTdEqrL0+hOI846KomZXT/6gRsSqJl
# SNf+0/10R7eBWAmNk0ey2kTFGa2fAeCKCBTblcmUMIIG9zCCBd+gAwIBAgITNAAA
# AATg0fZdj7qTuwAAAAAABDANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDEyFDYXJl
# Q2VudHJpeCBDb3Jwb3JhdGUgUG9saWN5IENBIEkwHhcNMTYwMzE3MjAyNzU3WhcN
# MzYwMzAzMTc0ODEwWjBnMRMwEQYKCZImiZPyLGQBGRYDY29tMRswGQYKCZImiZPy
# LGQBGRYLY2FyZWNlbnRyaXgxEzARBgoJkiaJk/IsZAEZFgNjY3gxHjAcBgNVBAMT
# FUNDWCBEb21haW4gSXNzdWluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
# AQoCggEBAJXYrY06ABvry0Gx0t04eEl/UUvtb9yJ5Il+pUIjx5MuR0ya13sEk85J
# p+L4hf1zVf3EniLJDLVn38j3BGxyIJQKkUmsE05JQ2oV1I5Q5bnHesBJSPs/ccRi
# BGAhKxGyx7rMUn5zV/tBzhuDzmLNoWdEeUanbkS38IXOEjlbr/O7PjznCGB0B/8O
# WDE8hBqbceIL3E7Sk/8chcDK24sMTq/5u7NBjGAa7q7R2Qa+WtcqeG1tuNbZiqMk
# wUnIBNy4FVcRIFpEl0AM9zOavGoAUV2o2xCR9yQ3pzhLaUhQr/ozQX1sV+RWCkz8
# WeROkqEkFXoA28vLXRs2KGFo/gD3H4kCAwEAAaOCA9UwggPRMBAGCSsGAQQBgjcV
# AQQDAgEAMB0GA1UdDgQWBBSWx7Rvmiz0f0ZAwCpnHof4LRWcKTCBqQYDVR0gBIGh
# MIGeMIGbBiIqhkiG9xQBvkCTerNw4wWBjw6BkkiC6k2C3oYchdTfOAJkMHUwOgYI
# KwYBBQUHAgIwLh4sAEwAZQBnAGEAbAAgAFAAbwBsAGkAYwB5ACAAUwB0AGEAdABl
# AG0AZQBuAHQwNwYIKwYBBQUHAgEWK2h0dHA6Ly9wa2kuY2N4LmNhcmVjZW50cml4
# LmNvbS9wa2kvY3BzLnR4dAAwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYD
# VR0PBAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUw/7NkzPD
# VWcmzyHk/XwMDhKxQ3QwggFJBgNVHR8EggFAMIIBPDCCATigggE0oIIBMIaB1Gxk
# YXA6Ly8vQ049Q2FyZUNlbnRyaXglMjBDb3Jwb3JhdGUlMjBQb2xpY3klMjBDQSUy
# MEksQ049UFBLSTAwMixDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs
# Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1DYXJlQ2VudHJpeCxEQz1j
# b20/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNS
# TERpc3RyaWJ1dGlvblBvaW50hldodHRwOi8vcGtpLmNjeC5jYXJlY2VudHJpeC5j
# b20vY2VydGVucm9sbC9DYXJlQ2VudHJpeCUyMENvcnBvcmF0ZSUyMFBvbGljeSUy
# MENBJTIwSS5jcmwwggFGBggrBgEFBQcBAQSCATgwggE0MIHMBggrBgEFBQcwAoaB
# v2xkYXA6Ly8vQ049Q2FyZUNlbnRyaXglMjBDb3Jwb3JhdGUlMjBQb2xpY3klMjBD
# QSUyMEksQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZp
# Y2VzLENOPUNvbmZpZ3VyYXRpb24sREM9Q2FyZUNlbnRyaXgsREM9Y29tP2NBQ2Vy
# dGlmaWNhdGU/YmFzZT9vYmplY3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5
# MGMGCCsGAQUFBzAChldodHRwOi8vcGtpLmNjeC5jYXJlY2VudHJpeC5jb20vY2Vy
# dGVucm9sbC9DYXJlQ2VudHJpeCUyMENvcnBvcmF0ZSUyMFBvbGljeSUyMENBJTIw
# SS5jcnQwDQYJKoZIhvcNAQELBQADggEBABdT37EVfHA6MyrYGsYRqcCEqPTAnO3G
# z8u8XDKea4TWA9pEoziLFWD89TJZSYvaUDIdLCwi1/UPyVNpLBrjKhX68FqOZejD
# i2wfaVGXIX/5vT2o4uttXSmIUn+zNx+k2n84u3CwVv0PrO+/8RBdH2Vgm1m+aho7
# G31tgK/63HX9RsJ0gVHLj090dO4GaaSU+0MeeXyouGj933H5r6mYr84uaXyBgs6V
# T1YRWYOGByq6HkS0Y0nYEkwxYeOJO6QxydZdtQN2DL1OPjkTVz20IJ46c8XBEDvo
# Gz2FD2qZw+H4h7mK1DJWPgdpaHLRJFM5lBUmfUVMzed37fE9d7UNhEQxggIfMIIC
# GwIBATB+MGcxEzARBgoJkiaJk/IsZAEZFgNjb20xGzAZBgoJkiaJk/IsZAEZFgtj
# YXJlY2VudHJpeDETMBEGCgmSJomT8ixkARkWA2NjeDEeMBwGA1UEAxMVQ0NYIERv
# bWFpbiBJc3N1aW5nIENBAhMTAAXZYnJ9GsM5Y9KkAAAABdliMAkGBSsOAwIaBQCg
# eDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEE
# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
# BDEWBBQQjwIEel8sIz8q9Yg9axjlDa2YkTANBgkqhkiG9w0BAQEFAASCAQAPvviq
# GJZYzD47MLIGRepgimkB6pFxPS9zaF7QhxGKntZa3W3jcXDEF0g5COE8uoaoHcKv
# QmrnRD18CODOlOZTR6xzLss3iTQ4AWsRYCnpT13gA//OndGvjEAKSrASJQMs+g5o
# TXLoVLjFX2+xC5im7S3h2LGZYSA2jej5aB0TCSD3z+hK6eXke2olEOtqs3GFHfGG
# 7jFROrIa4S9kvm3B7kIRyBPGIaBooMnNvVHmHO1mmqb0tdvzbdstFR+3NcHU4ewZ
# mYZ7K5EbsWMc0F5fPH/wof1UvWGBIVy9rwT+jMm5At0lJ0E0XFL0QKY93WK3bCp+
# TU6LXTL0T+HGZ0Mr
# SIG # End signature block

View File

@@ -0,0 +1,429 @@
# ------------------------------------------------------------------------------------------------------------ #
# Author(s) : Peter Klapwijk - www.inthecloud247.com #
# Version : 1.0 #
# #
# Description : Script that runs on network change and connects drive mapping(s) #
# #
# Changes : v1.0 - Initial version #
# #
# This script is provide "As-Is" without any warranties #
# #
#------------------------------------------------------------------------------------------------------------- #
# ------------------------------------------------------------------------------------------------------- #
# Functions
# ------------------------------------------------------------------------------------------------------- #
Function CleanUpAndExit() {
Param(
[Parameter(Mandatory=$True)][String]$ErrorLevel
)
# Write results to log file
$NOW = Get-Date -Format "yyyyMMdd-hhmmss"
If ($ErrorLevel -eq "0") {
Write-Host "Drive mappings connected successfully at $NOW"
} else {
Write-Host "Connecting drive mappings failed at $NOW with error $Errorlevel"
}
# Exit Script with the specified ErrorLevel
Stop-Transcript | Out-Null
EXIT $ErrorLevel
}
function Test-DCConnection
{
$DCConnection = Test-Connection ldap.ccx.carecentrix.com -Count 1
return ($DCConnection -ne $null)
}
function Test-DriveMappingG
{
$DriveMappingG = Get-PSDrive -Name "G" -erroraction 'silentlycontinue'
return ($DriveMappingG -ne $null)
}
function Test-DriveMappingO
{
$DriveMappingO = Get-PSDrive -Name "O" -erroraction 'silentlycontinue'
return ($DriveMappingO -ne $null)
}
function Test-DriveMappingR
{
$DriveMappingR = Get-PSDrive -Name "R" -erroraction 'silentlycontinue'
return ($DriveMappingR -ne $null)
}
function Test-DriveMappingW
{
$DriveMappingW = Get-PSDrive -Name "W" -erroraction 'silentlycontinue'
return ($DriveMappingW -ne $null)
}
function Test-DriveMappingY
{
$DriveMappingW = Get-PSDrive -Name "Y" -erroraction 'silentlycontinue'
return ($DriveMappingY -ne $null)
}
# ------------------------------------------------------------------------------------------------------- #
# Start Transcript
# ------------------------------------------------------------------------------------------------------- #
$Transcript = "C:\programdata\Microsoft\IntuneManagementExtension\Logs\$($(Split-Path $PSCommandPath -Leaf).ToLower().Replace(".ps1",".log"))"
Start-Transcript -Path $Transcript | Out-Null
# ------------------------------------------------------------------------------------------------------- #
# Check domain connectivity
# ------------------------------------------------------------------------------------------------------- #
if (Test-DCConnection -eq $True){
Write-Host "STATUS: Domain connection OK"
}
else {
Write-Host "STATUS: No connection with the domain. Unable to connect drive mappings!"
CleanUpAndExit -ErrorLevel 1
}
# ------------------------------------------------------------------------------------------------------- #
# Get User AD Information
# ------------------------------------------------------------------------------------------------------- #
#$userinfo = Get-ADUser -Identity $env:username -Server ccx.carecentrix.com -Properties HomeDirectory
$username = $env:username
$filter = "SamAccountName=$username"
$searcher = [DirectoryServices.DirectorySearcher]::new($ad,$filter)
$user = $searcher.FindOne()
$userinfo = $user.Properties
# ------------------------------------------------------------------------------------------------------- #
# Add drive mapping(s)
# ------------------------------------------------------------------------------------------------------- #
# ------------------------------------------------------------------------------------------------------- #
# Standard Mappings
# ------------------------------------------------------------------------------------------------------- #
if (Test-DriveMappingG -eq $True){
Write-Host "A drive with the name 'G' already exists"
}
else {
New-PSDrive -Name "G" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares" -Persist -Scope Global
Write-Host "Drive G: is connected"
}
if (Test-DriveMappingY -eq $True){
Write-Host "A drive with the name 'Y' already exists"
}
else {
New-PSDrive -Name "Y" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\apps\ebins_legacy" -Persist -Scope Global
Write-Host "Drive Y: is connected"
}
# ------------------------------------------------------------------------------------------------------- #
# Dept Specific Mappings
# ------------------------------------------------------------------------------------------------------- #
if (Test-DriveMappingO -eq $True){
Write-Host "A drive with the name 'O' already exists"
}
else {
switch ($userinfo.DistinguishedName) {
($userinfo.DistinguishedName -like "*AZPH*"){
New-PSDrive -Name "O" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\ccx\AZPH" -Persist -Scope Global
Write-Host "Drive O: is connected"
break}
($userinfo.DistinguishedName -like "*FLT2*"){
New-PSDrive -Name "O" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\ccx\FLTA" -Persist -Scope Global
Write-Host "Drive O: is connected"
break}
($userinfo.DistinguishedName -like "*FLTA*"){
New-PSDrive -Name "O" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\ccx\FLTA" -Persist -Scope Global
Write-Host "Drive O: is connected"
break}
($userinfo.DistinguishedName -like "*KSOP*"){
New-PSDrive -Name "O" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\ccx\KSOP" -Persist -Scope Global
Write-Host "Drive O: is connected"
break}
($userinfo.DistinguishedName -like "*CTHA*"){
New-PSDrive -Name "O" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\ccx\CTHA" -Persist -Scope Global
Write-Host "Drive O: is connected"
break}
($userinfo.DistinguishedName -like "*CTST*"){
New-PSDrive -Name "O" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\ccx\CTHA" -Persist -Scope Global
Write-Host "Drive O: is connected"
break}
($userinfo.DistinguishedName -like "*NYME*"){
New-PSDrive -Name "O" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\ccx\NYME" -Persist -Scope Global
Write-Host "Drive O: is connected"
break}
default {
New-PSDrive -Name "O" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\ccx" -Persist -Scope Global
Write-Host "Drive O: is connected"
}
}
}
if (Test-DriveMappingR -eq $True){
Write-Host "A drive with the name 'R' already exists"
}
else {
switch ($userinfo.DistinguishedName) {
($userinfo.DistinguishedName -like "*AZPH*"){
New-PSDrive -Name "R" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\AZPH" -Persist -Scope Global
Write-Host "Drive R is connected"
break}
($userinfo.DistinguishedName -like "*FLT2*"){
New-PSDrive -Name "R" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\FLTA" -Persist -Scope Global
Write-Host "Drive R is connected"
break}
($userinfo.DistinguishedName -like "*FLTA*"){
New-PSDrive -Name "R" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\FLTA" -Persist -Scope Global
Write-Host "Drive R is connected"
break}
($userinfo.DistinguishedName -like "*KSOP*"){
New-PSDrive -Name "R" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\KSOP" -Persist -Scope Global
Write-Host "Drive R is connected"
break}
($userinfo.DistinguishedName -like "*CTHA*"){
New-PSDrive -Name "R" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\CTHA" -Persist -Scope Global
Write-Host "Drive R is connected"
break}
($userinfo.DistinguishedName -like "*CTST*"){
New-PSDrive -Name "R" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\CTHA" -Persist -Scope Global
Write-Host "Drive R is connected"
break}
($userinfo.DistinguishedName -like "*NYME*"){
New-PSDrive -Name "R" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\NYME" -Persist -Scope Global
Write-Host "Drive R is connected"
break}
($userinfo.DistinguishedName -like "*NMAL*"){
New-PSDrive -Name "R" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\NMAL" -Persist -Scope Global
Write-Host "Drive R is connected"
break}
default {
New-PSDrive -Name "R" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts" -Persist -Scope Global
Write-Host "Drive R is connected"
}
}
}
if (Test-DriveMappingW -eq $True){
Write-Host "A drive with the name 'W' already exists"
}
else {
switch ($userinfo.DistinguishedName) {
($userinfo.DistinguishedName -like "*AZPH*"){
New-PSDrive -Name "W" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\AZPH" -Persist -Scope Global
Write-Host "Drive W is connected"
break}
($userinfo.DistinguishedName -like "*FLT2*"){
New-PSDrive -Name "W" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\FLTA" -Persist -Scope Global
Write-Host "Drive W is connected"
break}
($userinfo.DistinguishedName -like "*FLTA*"){
New-PSDrive -Name "W" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\FLTA" -Persist -Scope Global
Write-Host "Drive W is connected"
break}
($userinfo.DistinguishedName -like "*KSOP*"){
New-PSDrive -Name "W" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\KSOP" -Persist -Scope Global
Write-Host "Drive W is connected"
break}
($userinfo.DistinguishedName -like "*CTHA*"){
New-PSDrive -Name "W" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\CTHA" -Persist -Scope Global
Write-Host "Drive W is connected"
break}
($userinfo.DistinguishedName -like "*CTST*"){
New-PSDrive -Name "W" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\CTHA" -Persist -Scope Global
Write-Host "Drive W is connected"
break}
($userinfo.DistinguishedName -like "*NYME*"){
New-PSDrive -Name "W" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\NYME" -Persist -Scope Global
Write-Host "Drive W is connected"
break}
($userinfo.DistinguishedName -like "*NMAL*"){
New-PSDrive -Name "W" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts\NMAL" -Persist -Scope Global
Write-Host "Drive W is connected"
break}
default {
New-PSDrive -Name "W" -PSProvider FileSystem -Root "\\ccx.carecentrix.com\shares\Depts" -Persist -Scope Global
Write-Host "Drive W is connected"
}
}
}
# ------------------------------------------------------------------------------------------------------- #
# Check end state
# ------------------------------------------------------------------------------------------------------- #
if (Test-DriveMappingG -eq $True){
Write-Host "STATUS: G: drive connected"
}
else {
Write-Host "STATUS: G: drive not connected, unknown error"
CleanUpAndExit -ErrorLevel 2
}
if (Test-DriveMappingY -eq $True){
Write-Host "STATUS: Y: drive connected"
}
else {
Write-Host "STATUS: Y: drive not connected, unknown error"
CleanUpAndExit -ErrorLevel 2
}
if (Test-DriveMappingO -eq $True){
Write-Host "STATUS: O: drive connected"
}
else {
Write-Host "STATUS: O: drive not connected, unknown error"
CleanUpAndExit -ErrorLevel 2
}
if (Test-DriveMappingP -eq $True){
Write-Host "STATUS: P: drive connected"
CleanUpAndExit -ErrorLevel 0
}
else {
Write-Host "STATUS: P: drive not connected, unknown error"
CleanUpAndExit -ErrorLevel 2
}
if (Test-DriveMappingR -eq $True){
Write-Host "STATUS: R: drive connected"
CleanUpAndExit -ErrorLevel 0
}
else {
Write-Host "STATUS: R: drive not connected, unknown error"
CleanUpAndExit -ErrorLevel 2
}
if (Test-DriveMappingW -eq $True){
Write-Host "STATUS: W: drive connected"
CleanUpAndExit -ErrorLevel 0
}
else {
Write-Host "STATUS: W: drive not connected, unknown error"
CleanUpAndExit -ErrorLevel 2
}
# SIG # Begin signature block
# MIIWKAYJKoZIhvcNAQcCoIIWGTCCFhUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUXds1YbXTOMQCeX+MxCkjU5+u
# 5I6gghNzMIIFuTCCBKGgAwIBAgITEwAF2WJyfRrDOWPSpAAAAAXZYjANBgkqhkiG
# 9w0BAQsFADBnMRMwEQYKCZImiZPyLGQBGRYDY29tMRswGQYKCZImiZPyLGQBGRYL
# Y2FyZWNlbnRyaXgxEzARBgoJkiaJk/IsZAEZFgNjY3gxHjAcBgNVBAMTFUNDWCBE
# b21haW4gSXNzdWluZyBDQTAeFw0yMzAzMTYxNDE0MzRaFw0yODAzMTQxNDE0MzRa
# MIGUMRMwEQYKCZImiZPyLGQBGRYDY29tMRswGQYKCZImiZPyLGQBGRYLY2FyZWNl
# bnRyaXgxEzARBgoJkiaJk/IsZAEZFgNjY3gxGTAXBgNVBAsTEFNlcnZlcmxlc3Mg
# U2l0ZXMxFzAVBgNVBAsTDldvcmsgRnJvbSBIb21lMRcwFQYDVQQDEw5BbWFzb24s
# IEFuZHJldzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMLCjBaNvPFh
# rtISwkR9DTn3Wx6YlH/AjKFLH+6MEbKdwWWUPyWQ6XUcMug/PbAvKuSMmEodBN+h
# r2pFKPT/YXGZGCWisJMlkR7nQrdnzb6oGiWxhoS7ElD6YUqTriVBxBOj8Dx494Lc
# /P76Jshby0ral37gJsd2nRL8Yw9TzzJP2H6aFuwJ9T/W8vdibYWef4jUxfgTJ+sA
# rePJONZwRTYkZHfCCQTQgGvaBv6RJ3WMWSzCLewnm6cAqu7rgeknmNfC2/gasBg2
# UPXyITK6edSx1XfXTfUr5TbJpi+cWOKuixUqOmNYJaRf/4jlTvnsDCKtBRtMA6WT
# gYGrNx59RFUCAwEAAaOCAi4wggIqMD0GCSsGAQQBgjcVBwQwMC4GJisGAQQBgjcV
# CIe8uiGEwuM0zYklgq6SOoSJ8HiBD4flphKDp98YAgFkAgEDMBMGA1UdJQQMMAoG
# CCsGAQUFBwMDMA4GA1UdDwEB/wQEAwIHgDAbBgkrBgEEAYI3FQoEDjAMMAoGCCsG
# AQUFBwMDMB0GA1UdDgQWBBRpLREEN8ouqVAjy36kDfV4M4YSTzAfBgNVHSMEGDAW
# gBSWx7Rvmiz0f0ZAwCpnHof4LRWcKTBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8v
# cGtpLmNjeC5jYXJlY2VudHJpeC5jb20vY2VydGVucm9sbC9DQ1glMjBEb21haW4l
# MjBJc3N1aW5nJTIwQ0EuY3JsMIGBBggrBgEFBQcBAQR1MHMwcQYIKwYBBQUHMAKG
# ZWh0dHA6Ly9wa2kuY2N4LmNhcmVjZW50cml4LmNvbS9jZXJ0ZW5yb2xsL1BQS0kw
# MDQuY2N4LmNhcmVjZW50cml4LmNvbV9DQ1glMjBEb21haW4lMjBJc3N1aW5nJTIw
# Q0EuY3J0MDgGA1UdEQQxMC+gLQYKKwYBBAGCNxQCA6AfDB1hbmRyZXcuYW1hc29u
# QGNhcmVjZW50cml4LmNvbTBNBgkrBgEEAYI3GQIEQDA+oDwGCisGAQQBgjcZAgGg
# LgQsUy0xLTUtMjEtMTE3OTk0ODU1LTE2OTk3ODc3LTM1ODA5NTM0MzgtODI0MDkw
# DQYJKoZIhvcNAQELBQADggEBAFDwW1McWcyvVDe+vYaKdi3raEkRXlDAUnyblXzw
# juBRARJS/G4SdIT7sWYMefvRDjY6LF+aaJKpBtp/VlIveUaeNZ+wpai7bwXYtxKb
# ZF6dnKFhnSzzmApi09ep3jkD/WADgy6jZ4k5i6GZvqHN3r9s5Wc7/AP45pcgOLXF
# n7yVa+5nlHJ/I4orxGvJuj0H/wOhoH3ESaUJuWXo6ANcfnCsP8ETWfBlm9jrW0tG
# MST88T1GuP8vvL651uacOKYjy5LMIm4zFwjhEtg/fSfXIIybsOUkzrt1FB1OEkiL
# pimivoRafSa2zfZNx2/jws0Q3KVSADB5NI3MHvJiBdGQz1owgga3MIIFn6ADAgEC
# AhMTAAAAAquNE9NCf3mRAAAAAAACMA0GCSqGSIb3DQEBCwUAMCsxKTAnBgNVBAMT
# IENhcmVDZW50cml4IENvcnBvcmF0ZSBSb290IENBIElJMB4XDTE2MDMwMzE5MDQw
# OFoXDTM2MDMwMzE3NDgxMFowLDEqMCgGA1UEAxMhQ2FyZUNlbnRyaXggQ29ycG9y
# YXRlIFBvbGljeSBDQSBJMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
# mih9mZKxa2GGpc3RxX6Y8zQlP8lRsZ05KtC+RkIEJAs9ucIbEvWCTExjqG2Wmt9w
# 0Ph6+ZOxafEa0awsMzvRa2upsBs6rEqhvuWKySoXxtSJE/eJyYqAqwa6qmIeFZYA
# mE6ewprnyO+1r9HSbW+OHWAe7LMWnGLCdX/ls3yB9p9ax/DGR/3xX+XBrEreevOF
# srAUDzcgHpi4vAh4j1TQdvH2AtZ47AsHirakZI1vBrygf9uLPWSxKwyMy9xebiZl
# mKc4WPR51aYXwt8nsUy6MnjTjOvFJto+dHakWQngEW/dYDy3JUh5LIkuYDJvIm5v
# MQyug7Yh02CZs4+1NMVsPQIDAQABo4ID0TCCA80wEAYJKwYBBAGCNxUBBAMCAQAw
# HQYDVR0OBBYEFMP+zZMzw1VnJs8h5P18DA4SsUN0MIGpBgNVHSAEgaEwgZ4wgZsG
# IiqGSIb3FAG+QJN6s3DjBYGPDoGSSILqTYLehhyF1N84AmQwdTA6BggrBgEFBQcC
# AjAuHiwATABlAGcAYQBsACAAUABvAGwAaQBjAHkAIABTAHQAYQB0AGUAbQBlAG4A
# dDA3BggrBgEFBQcCARYraHR0cDovL3BraS5jY3guY2FyZWNlbnRyaXguY29tL3Br
# aS9jcHMudHh0ADAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC
# AYYwEgYDVR0TAQH/BAgwBgEB/wIBATAfBgNVHSMEGDAWgBSrs2vcHt1Q/sf0tn+I
# DWEvItiT3TCCAUcGA1UdHwSCAT4wggE6MIIBNqCCATKgggEuhoHTbGRhcDovLy9D
# Tj1DYXJlQ2VudHJpeCUyMENvcnBvcmF0ZSUyMFJvb3QlMjBDQSUyMElJLENOPVBQ
# S0kwMDEsQ049Q0RQLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZp
# Y2VzLENOPUNvbmZpZ3VyYXRpb24sREM9Q2FyZUNlbnRyaXgsREM9Q29tP2NlcnRp
# ZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmli
# dXRpb25Qb2ludIZWaHR0cDovL3BraS5jY3guY2FyZWNlbnRyaXguY29tL2NlcnRl
# bnJvbGwvQ2FyZUNlbnRyaXglMjBDb3Jwb3JhdGUlMjBSb290JTIwQ0ElMjBJSS5j
# cmwwggFEBggrBgEFBQcBAQSCATYwggEyMIHLBggrBgEFBQcwAoaBvmxkYXA6Ly8v
# Q049Q2FyZUNlbnRyaXglMjBDb3Jwb3JhdGUlMjBSb290JTIwQ0ElMjBJSSxDTj1B
# SUEsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsQ049Q29u
# ZmlndXJhdGlvbixEQz1DYXJlQ2VudHJpeCxEQz1Db20/Y0FDZXJ0aWZpY2F0ZT9i
# YXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwYgYIKwYBBQUH
# MAKGVmh0dHA6Ly9wa2kuY2N4LmNhcmVjZW50cml4LmNvbS9jZXJ0ZW5yb2xsL0Nh
# cmVDZW50cml4JTIwQ29ycG9yYXRlJTIwUm9vdCUyMENBJTIwSUkuY3J0MA0GCSqG
# SIb3DQEBCwUAA4IBAQBGcGvwx7dsRpHryqeJKG9U60dL6WA3fWHw5laVScvL8TPD
# gh0Jb4fTtkV+pSxfszlPlWzzgHWlUvL/t7QNSLNjeE6eS+17QRxi37sGqBT0xfk3
# iwXK9ydqLz4MUlBL0XBJdM1fd/DLruowgMKaIks7getYzPM6WfJ6ghdk8DWYBdsX
# YwZRw3TU3KD0hS3aAoF41/jZ1OdimXDZpE7xPhcf1eNYyZiGttwidGh0MEouFcuD
# 78Lc/7C0F8F/CyL1IWeaMsqWjksup71owXcTdEqrL0+hOI846KomZXT/6gRsSqJl
# SNf+0/10R7eBWAmNk0ey2kTFGa2fAeCKCBTblcmUMIIG9zCCBd+gAwIBAgITNAAA
# AATg0fZdj7qTuwAAAAAABDANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDEyFDYXJl
# Q2VudHJpeCBDb3Jwb3JhdGUgUG9saWN5IENBIEkwHhcNMTYwMzE3MjAyNzU3WhcN
# MzYwMzAzMTc0ODEwWjBnMRMwEQYKCZImiZPyLGQBGRYDY29tMRswGQYKCZImiZPy
# LGQBGRYLY2FyZWNlbnRyaXgxEzARBgoJkiaJk/IsZAEZFgNjY3gxHjAcBgNVBAMT
# FUNDWCBEb21haW4gSXNzdWluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
# AQoCggEBAJXYrY06ABvry0Gx0t04eEl/UUvtb9yJ5Il+pUIjx5MuR0ya13sEk85J
# p+L4hf1zVf3EniLJDLVn38j3BGxyIJQKkUmsE05JQ2oV1I5Q5bnHesBJSPs/ccRi
# BGAhKxGyx7rMUn5zV/tBzhuDzmLNoWdEeUanbkS38IXOEjlbr/O7PjznCGB0B/8O
# WDE8hBqbceIL3E7Sk/8chcDK24sMTq/5u7NBjGAa7q7R2Qa+WtcqeG1tuNbZiqMk
# wUnIBNy4FVcRIFpEl0AM9zOavGoAUV2o2xCR9yQ3pzhLaUhQr/ozQX1sV+RWCkz8
# WeROkqEkFXoA28vLXRs2KGFo/gD3H4kCAwEAAaOCA9UwggPRMBAGCSsGAQQBgjcV
# AQQDAgEAMB0GA1UdDgQWBBSWx7Rvmiz0f0ZAwCpnHof4LRWcKTCBqQYDVR0gBIGh
# MIGeMIGbBiIqhkiG9xQBvkCTerNw4wWBjw6BkkiC6k2C3oYchdTfOAJkMHUwOgYI
# KwYBBQUHAgIwLh4sAEwAZQBnAGEAbAAgAFAAbwBsAGkAYwB5ACAAUwB0AGEAdABl
# AG0AZQBuAHQwNwYIKwYBBQUHAgEWK2h0dHA6Ly9wa2kuY2N4LmNhcmVjZW50cml4
# LmNvbS9wa2kvY3BzLnR4dAAwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYD
# VR0PBAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAUw/7NkzPD
# VWcmzyHk/XwMDhKxQ3QwggFJBgNVHR8EggFAMIIBPDCCATigggE0oIIBMIaB1Gxk
# YXA6Ly8vQ049Q2FyZUNlbnRyaXglMjBDb3Jwb3JhdGUlMjBQb2xpY3klMjBDQSUy
# MEksQ049UFBLSTAwMixDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMs
# Q049U2VydmljZXMsQ049Q29uZmlndXJhdGlvbixEQz1DYXJlQ2VudHJpeCxEQz1j
# b20/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNS
# TERpc3RyaWJ1dGlvblBvaW50hldodHRwOi8vcGtpLmNjeC5jYXJlY2VudHJpeC5j
# b20vY2VydGVucm9sbC9DYXJlQ2VudHJpeCUyMENvcnBvcmF0ZSUyMFBvbGljeSUy
# MENBJTIwSS5jcmwwggFGBggrBgEFBQcBAQSCATgwggE0MIHMBggrBgEFBQcwAoaB
# v2xkYXA6Ly8vQ049Q2FyZUNlbnRyaXglMjBDb3Jwb3JhdGUlMjBQb2xpY3klMjBD
# QSUyMEksQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENOPVNlcnZp
# Y2VzLENOPUNvbmZpZ3VyYXRpb24sREM9Q2FyZUNlbnRyaXgsREM9Y29tP2NBQ2Vy
# dGlmaWNhdGU/YmFzZT9vYmplY3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5
# MGMGCCsGAQUFBzAChldodHRwOi8vcGtpLmNjeC5jYXJlY2VudHJpeC5jb20vY2Vy
# dGVucm9sbC9DYXJlQ2VudHJpeCUyMENvcnBvcmF0ZSUyMFBvbGljeSUyMENBJTIw
# SS5jcnQwDQYJKoZIhvcNAQELBQADggEBABdT37EVfHA6MyrYGsYRqcCEqPTAnO3G
# z8u8XDKea4TWA9pEoziLFWD89TJZSYvaUDIdLCwi1/UPyVNpLBrjKhX68FqOZejD
# i2wfaVGXIX/5vT2o4uttXSmIUn+zNx+k2n84u3CwVv0PrO+/8RBdH2Vgm1m+aho7
# G31tgK/63HX9RsJ0gVHLj090dO4GaaSU+0MeeXyouGj933H5r6mYr84uaXyBgs6V
# T1YRWYOGByq6HkS0Y0nYEkwxYeOJO6QxydZdtQN2DL1OPjkTVz20IJ46c8XBEDvo
# Gz2FD2qZw+H4h7mK1DJWPgdpaHLRJFM5lBUmfUVMzed37fE9d7UNhEQxggIfMIIC
# GwIBATB+MGcxEzARBgoJkiaJk/IsZAEZFgNjb20xGzAZBgoJkiaJk/IsZAEZFgtj
# YXJlY2VudHJpeDETMBEGCgmSJomT8ixkARkWA2NjeDEeMBwGA1UEAxMVQ0NYIERv
# bWFpbiBJc3N1aW5nIENBAhMTAAXZYnJ9GsM5Y9KkAAAABdliMAkGBSsOAwIaBQCg
# eDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEE
# AYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJ
# BDEWBBStTVz+56O45cbuEIQpf6Rj2TfVXjANBgkqhkiG9w0BAQEFAASCAQC58lXC
# i6QwnaFZOdjMSICRTBkkATm3wei1ofU3JuTEhVP5epZxxnPmx88fPWAwnDmf593l
# mU1GsBDH5coxA1aSb17nCfLg4ugaz6PUpd5NXJFgrYIW9W4/XOeoBxS1gZ8zGbmK
# jwNk6QqTyARSmQMUrcanH42U07e/iaRkvXtfI+dDcJDR/SH7iT/x2tPWoEHGZ70J
# fYh/17QDmsBduYbkqy1symQB8hTqmsmoCvnqjXbkCBIhufVCvESGw7sj17N8VZXX
# K3M8EL3MqAk2bkySgjhTukCX4d2ugk26Wdv9CmttSHV59WV9jrtbFap7dXxtKCGv
# BCzxF835hs3tO6u4
# SIG # End signature block

View File

@@ -0,0 +1,5 @@
'Change COMPANY in your own company name
Dim strArgs
Set oShell = CreateObject ("Wscript.Shell")
strArgs = "powershell.exe -executionpolicy bypass -windowstyle hidden -file C:\Program Files\Common Files\Carecentrix\DriveMappings\DriveMappingsv1.0_ScriptRunFromTaskScheduler.ps1"
oShell.Run strArgs, 0, false