Files
Intune/intune/Desktop Scripts/Drive Mappings/DriveMappingsv1.0_CreateScheduledTask.ps1
Andrew Amason bf7b536ac4 File cleanup
2025-05-14 14:00:19 -04:00

247 lines
14 KiB
PowerShell

# ------------------------------------------------------------------------------------------------------------ #
# 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