SOLVED

how to remove Lenovo Welcome app via intune

Bronze Contributor

Hi all,

 

I want to remove Lenovo Welcome software on all devices via intune 

 

Any ideas on how when I go into HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall I cant seem to find Lenovo Welcome. 

 

 

 

24 Replies
You can reinstall it to fix any missing registry values, but it there an uninstall.exe or unins000.exe something that you can use in the program folder?

Hi @Harm_Veenstra 

 

So i cant find an uninstall in program files but I open file location it goes to C:\ProgramData\Lenovo\ImController\Plugins\LenovoFirstRunExperiencePackage\x86 within here there is a uninstall script. 

 

How would I go about running this remotely I wouldnt need any of the lenovo bloat software. 

 

 

Create a intunewin package with a detection of the uninstall script in that location, create a uninstall script which runs the script (Hopefully it's silent or has support or parameters for that) and a empty install script. Assign it to be uninstalled for the users/devices which have the software installed

Hi @Harm_Veenstra 

 

This is the uninstall.ps1 

 

$PackageName = "LenovoFirstRunExperiencePackage"
$Version = "3.4.0"
$LogFileName = ($PackageName + (Get-Date -Format "-yyyy_MM_dd-HH-mm-ss") + "-uninstall.txt")
[bool]$EnableLogging = $false
try { $EnableLogging = ((Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Wow6432Node\Lenovo\Modern\Logs" -Name "ImController.Service" -ErrorAction Stop) -eq 0 ) } catch { Write-Host "LOGGING DISABLED - Lenovo modern logs registry key not found" }
$Is64BitOs = [Environment]::Is64BitOperatingSystem
if($Is64BitOs) { $OsBitness = 64 } else { $OsBitness = 86 }
$DomainUser = $(Get-WMIObject -class Win32_ComputerSystem | select username).username
$username = $DomainUser -Split "\\" | Select-Object -Index 1

#### Shared Functions ####
function Write-Log($text)
{
$pathToLogsDir = "$env:ProgramData\lenovo\Modern\Logs"
Write-Host $text
if($EnableLogging)
{
$pathToFile = "$pathToLogsDir\$LogFileName"
if( -not(Test-Path $pathToFile)) { New-Item -Path $pathToLogsDir -Name $LogFileName -ItemType File | Out-Null }
Add-Content -Path ($pathToFile) -Value $text
}
}

function Invoke-LnkFile($pathToLnk)
{
if(Test-Path $pathToLnk)
{
Write-Log "Invoking LNK $pathToLnk"
Invoke-Item -Path $pathToLnk
if($outVar -ne ""){ Write-Log "Error: $outVar" }
}else{
Write-Log "Error: Hide LNK $pathToLnk does not exist"
}
}


function Invoke-Cmd($cmd){
$errorVar = ""
$outVar = ""
Write-Log "Info: Invoking $cmd"
Invoke-Expression -Command $cmd -ErrorVariable errorVar -OutVariable outVar

if($outVar -ne ""){ Write-Log "Info: $outVar" }
if($errorVar -ne ""){ Write-Log "Error: $errorVar" }
}

function Invoke-RegSvr($pathToDll, $arg){
if(Test-Path $pathToDll)
{
$cmd = "& $env:windir\System32\regsvr32.exe $arg '$pathToDll'"
Invoke-Cmd -cmd $cmd

}else{
Write-Error "Warning: DLL $pathToDll does not exist"
}
}

function Stop-Process($processName)
{
# Stop the OLD quick optimizer
$cmd = "& $env:windir\System32\taskkill.exe /t /f /im $processName"
Write-Log "Stopping process named $processName"
Invoke-Cmd $cmd
}

#### /Shared Functions ####


#### LEGACY ITEMS ####

# Stop the current process if needed
function Stop-LegacyProcess($processName)
{
Stop-Process -processName $processName
}

#### / LEGACY ITEMS ####


#### Lenovo Welcome Functions ####
$companyName = 'Lenovo'
$taskName = 'LenovoWelcomeTask'
$welcomeTaskEXE = 'LenovoWelcomeTask.exe'
$taskLauncherName = 'LenovoWelcomeLauncher'
$welcomeEXE = 'LenovoWelcome.exe'
$shortcutName = 'Lenovo Welcome'
$taskRemindMeLaterName = 'LenovoWelcomeTaskRemindMeLater'

function Delete-ScheduledTask()
{
## Delete the old scheduled task if it exist
if (Get-ScheduledTask -TaskPath "\$companyName\" -TaskName "$taskName" -ErrorAction SilentlyContinue)
{
Write-Log 'Remove existing scheduled task...'
Unregister-ScheduledTask -TaskPath "\$companyName\" -TaskName "$taskName" -Confirm:$false
Start-Sleep -Seconds 2
if (Get-ScheduledTask -TaskPath "\$companyName\" -TaskName "$taskName" -ErrorAction SilentlyContinue)
{
Write-Log 'Scheduled task has NOT been removed...'
return $false
}
}
return $true
}

function Delete-LauncherScheduledTask()
{
## Delete the old scheduled task if it exist
if (Get-ScheduledTask -TaskPath "\$companyName\" -TaskName "$taskLauncherName" -ErrorAction SilentlyContinue)
{
Write-Log 'Remove existing launcher scheduled task...'
Unregister-ScheduledTask -TaskPath "\$companyName\" -TaskName "$taskLauncherName" -Confirm:$false
Start-Sleep -Seconds 2
if (Get-ScheduledTask -TaskPath "\$companyName\" -TaskName "$taskLauncherName" -ErrorAction SilentlyContinue)
{
Write-Log 'Launcher Scheduled task has NOT been removed...'
return $false
}
}
return $true
}

function Delete-RemindMeLaterScheduledTask()
{
## Delete the old scheduled task if it exist
if (Get-ScheduledTask -TaskPath "\$companyName\" -TaskName "$taskRemindMeLaterName" -ErrorAction SilentlyContinue)
{
Unregister-ScheduledTask -TaskPath "\$companyName\" -TaskName "$taskRemindMeLaterName" -Confirm:$false
Start-Sleep -Seconds 2
if (Get-ScheduledTask -TaskPath "\$companyName\" -TaskName "$taskRemindMeLaterName" -ErrorAction SilentlyContinue)
{
return $false
}
}
return $true
}


function Delete-StartMenu()
{
$sysDrive = "$env:systemdrive"

$shortcutFilePath = $sysDrive + "\Users\" + $userName + "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\" + $shortcutName + ".lnk"
if (Test-Path $shortcutFilePath)
{
Write-Log "Removing start menu item $shortcutFilePath"
Remove-Item $shortcutFilePath
}
else
{
Write-Log "Unable to find shortcut $shortcutFilePath"
}

$commonShortcutFilePath = [System.Environment]::GetFolderPath(22) + "\Programs\"+ $shortcutName + ".lnk"
if (Test-Path $commonShortcutFilePath)
{
Write-Log "Removing start menu item $commonShortcutFilePath"
Remove-Item $commonShortcutFilePath
}
else
{
Write-Log "Unable to find shortcut $commonShortcutFilePath"
}
}

function Delete-TempFolder()
{
Write-Log "Delete the temp folder..."
#$path = "$env:localappdata\Lenovo\ImController\PluginData\LenovoFirstRunExperiencePackage"
$userPublicPath = $env:public
$userPath = Split-Path -Path $userPublicPath
$userProfilePath = Join-Path -Path $userPath -ChildPath $DomainUser.Split('\')[1]
$pathToFreTempFolder = Join-Path -Path $userProfilePath -ChildPath 'AppData\Local\Lenovo\ImController\PluginData\LenovoFirstRunExperiencePackage'
if(Test-Path $pathToFreTempFolder)
{
Remove-Item -Path $pathToFreTempFolder -Force -Recurse
}
}

function Delete-Registry()
{
## Delete the app registry key from HKCU, need do mapping because of system account
Write-Log "Delete the registry..."
#$explorers = Get-WmiObject -Namespace root\cimv2 -Class Win32_Process -Filter "Name='explorer.exe'"
#$explorers | ForEach-Object {
# $owner = $_.GetOwner()
# if($owner.ReturnValue -eq 0) {
# $user = '{0}\{1}' -f $owner.Domain, $owner.User
# $ntAccount = New-Object -TypeName System.Security.Principal.NTAccount($user)
# $sid = $ntAccount.Translate([System.Security.Principal.SecurityIdentifier]).Value
# $RegKey = "HKU:\" + $sid + "\Software\Lenovo\LenovoFirstRunExperience"
# New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
# Remove-Item -Path $RegKey
# Write-Log "Deleted the registry... $RegKey"
# }
#}

$ntAccount = New-Object -TypeName System.Security.Principal.NTAccount($DomainUser)
$sid = $ntAccount.Translate([System.Security.Principal.SecurityIdentifier]).Value
$RegKey = "HKU:\" + $sid + "\Software\Lenovo\LenovoFirstRunExperience"
New-PSDrive -Name HKU -PSProvider Registry -Root HKEY_USERS | Out-Null
Remove-Item -Path $RegKey
Write-Log "Deleted the registry... $RegKey"


}

function Unregister-Uninstall()
{
Write-Log "Start to Unregister Uninstall list"

$UninstallPath = 'HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Lenovo Welcome'
Reg delete $UninstallPath /f /reg:32

Write-Log "Unregister Uninstall list"
}

function Delete-RegistryProtocol(){
$ProtocolName = "lenovo-welcome"
$ProtocolPath = "HKLM:\Software\Classes\" + $ProtocolName
Remove-Item -Path $ProtocolPath -Force -Recurse
}

function Delete-AssociatedApp(){
$Guid = "cbaiwsfv6wrbhyuj"
$AppId = "Lenovo_Welcome_" + $Guid + "!App"
$ActivatorId = "{82FBA2BA-C0F2-40B7-8D60-C1AA78502F99}"

$AUMIDPath = "HKLM:\SOFTWARE\Classes\AppUserModelId\" + $AppId
Remove-Item -Path $AUMIDPath -Force -Recurse

$COMPath = "HKLM:\SOFTWARE\Classes\CLSID\"+ $ActivatorId
Remove-Item -Path $COMPath -Force -Recurse
}
#### /Lenovo Welcome Functions ####


Write-Log "UNINSTALL START - $PackageName"
Write-Log "Version is $Version"
# Stop the legacy process (if running)
Stop-LegacyProcess($welcomeEXE)
Stop-LegacyProcess($welcomeTaskEXE)

try
{
Delete-TempFolder
Delete-StartMenu
Delete-ScheduledTask
Delete-LauncherScheduledTask
Delete-RemindMeLaterScheduledTask
Delete-Registry
Unregister-Uninstall
Delete-RegistryProtocol
Delete-AssociatedApp
}
catch
{
Write-Log "Exception happen..."
Write-Log $_.Exception.Message
}

Write-Log "UNINSTALL COMPLETE - $PackageName"

# SIG # Begin signature block
# MIIj9wYJKoZIhvcNAQcCoIIj6DCCI+QCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCGJd6jBRL47IRh
# GB3xasGXLHpbFPInDnAmUu6t5W6SJqCCHeowggT+MIID5qADAgECAhANQkrgvjqI
# /2BAIc4UAPDdMA0GCSqGSIb3DQEBCwUAMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNV
# BAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJRCBUaW1lc3RhbXBpbmcgQ0EwHhcN
# MjEwMTAxMDAwMDAwWhcNMzEwMTA2MDAwMDAwWjBIMQswCQYDVQQGEwJVUzEXMBUG
# A1UEChMORGlnaUNlcnQsIEluYy4xIDAeBgNVBAMTF0RpZ2lDZXJ0IFRpbWVzdGFt
# cCAyMDIxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwuZhhGfFivUN
# CKRFymNrUdc6EUK9CnV1TZS0DFC1JhD+HchvkWsMlucaXEjvROW/m2HNFZFiWrj/
# ZwucY/02aoH6KfjdK3CF3gIY83htvH35x20JPb5qdofpir34hF0edsnkxnZ2OlPR
# 0dNaNo/Go+EvGzq3YdZz7E5tM4p8XUUtS7FQ5kE6N1aG3JMjjfdQJehk5t3Tjy9X
# tYcg6w6OLNUj2vRNeEbjA4MxKUpcDDGKSoyIxfcwWvkUrxVfbENJCf0mI1P2jWPo
# GqtbsR0wwptpgrTb/FZUvB+hh6u+elsKIC9LCcmVp42y+tZji06lchzun3oBc/gZ
# 1v4NSYS9AQIDAQABo4IBuDCCAbQwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQC
# MAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwQQYDVR0gBDowODA2BglghkgBhv1s
# BwEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMB8G
# A1UdIwQYMBaAFPS24SAd/imu0uRhpbKiJbLIFzVuMB0GA1UdDgQWBBQ2RIaOpLqw
# Zr68KC0dRDbd42p6vDBxBgNVHR8EajBoMDKgMKAuhixodHRwOi8vY3JsMy5kaWdp
# Y2VydC5jb20vc2hhMi1hc3N1cmVkLXRzLmNybDAyoDCgLoYsaHR0cDovL2NybDQu
# ZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC10cy5jcmwwgYUGCCsGAQUFBwEBBHkw
# dzAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tME8GCCsGAQUF
# BzAChkNodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRTSEEyQXNz
# dXJlZElEVGltZXN0YW1waW5nQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4IBAQBIHNy1
# 6ZojvOca5yAOjmdG/UJyUXQKI0ejq5LSJcRwWb4UoOUngaVNFBUZB3nw0QTDhtk7
# vf5EAmZN7WmkD/a4cM9i6PVRSnh5Nnont/PnUp+Tp+1DnnvntN1BIon7h6JGA078
# 9P63ZHdjXyNSaYOC+hpT7ZDMjaEXcw3082U5cEvznNZ6e9oMvD0y0BvL9WH8dQgA
# dryBDvjA4VzPxBFy5xtkSdgimnUVQvUtMjiB2vRgorq0Uvtc4GEkJU+y38kpqHND
# Udq9Y9YfW5v3LhtPEx33Sg1xfpe39D+E68Hjo0mh+s6nv1bPull2YYlffqe0jmd4
# +TaY4cso2luHpoovMIIFMTCCBBmgAwIBAgIQCqEl1tYyG35B5AXaNpfCFTANBgkq
# hkiG9w0BAQsFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j
# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBB
# c3N1cmVkIElEIFJvb3QgQ0EwHhcNMTYwMTA3MTIwMDAwWhcNMzEwMTA3MTIwMDAw
# WjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL
# ExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3Vy
# ZWQgSUQgVGltZXN0YW1waW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
# CgKCAQEAvdAy7kvNj3/dqbqCmcU5VChXtiNKxA4HRTNREH3Q+X1NaH7ntqD0jbOI
# 5Je/YyGQmL8TvFfTw+F+CNZqFAA49y4eO+7MpvYyWf5fZT/gm+vjRkcGGlV+Cyd+
# wKL1oODeIj8O/36V+/OjuiI+GKwR5PCZA207hXwJ0+5dyJoLVOOoCXFr4M8iEA91
# z3FyTgqt30A6XLdR4aF5FMZNJCMwXbzsPGBqrC8HzP3w6kfZiFBe/WZuVmEnKYmE
# UeaC50ZQ/ZQqLKfkdT66mA+Ef58xFNat1fJky3seBdCEGXIX8RcG7z3N1k3vBkL9
# olMqT4UdxB08r8/arBD13ays6Vb/kwIDAQABo4IBzjCCAcowHQYDVR0OBBYEFPS2
# 4SAd/imu0uRhpbKiJbLIFzVuMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3z
# bcgPMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQM
# MAoGCCsGAQUFBwMIMHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYYaHR0cDov
# L29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2FjZXJ0cy5k
# aWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGBBgNVHR8E
# ejB4MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1
# cmVkSURSb290Q0EuY3JsMDqgOKA2hjRodHRwOi8vY3JsMy5kaWdpY2VydC5jb20v
# RGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3JsMFAGA1UdIARJMEcwOAYKYIZIAYb9
# bAACBDAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
# MAsGCWCGSAGG/WwHATANBgkqhkiG9w0BAQsFAAOCAQEAcZUS6VGHVmnN793afKpj
# erN4zwY3QITvS4S/ys8DAv3Fp8MOIEIsr3fzKx8MIVoqtwU0HWqumfgnoma/Capg
# 33akOpMP+LLR2HwZYuhegiUexLoceywh4tZbLBQ1QwRostt1AuByx5jWPGTlH0gQ
# GF+JOGFNYkYkh2OMkVIsrymJ5Xgf1gsUpYDXEkdws3XVk4WTfraSZ/tTYYmo9WuW
# wPRYaQ18yAGxuSh1t5ljhSKMYcp5lH5Z/IwP42+1ASa2bKXuh1Eh5Fhgm7oMLStt
# osR+u8QlK0cCCHxJrhO24XxCQijGGFbPQTS2Zl22dHv1VjMiLyI2skuiSpXY9aaO
# UjCCBZAwggN4oAMCAQICEAWbG1eejiEy4jkHvad3dVwwDQYJKoZIhvcNAQEMBQAw
# YjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQ
# d3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290
# IEc0MB4XDTEzMDgwMTEyMDAwMFoXDTM4MDExNTEyMDAwMFowYjELMAkGA1UEBhMC
# VVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0
# LmNvbTEhMB8GA1UEAxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290IEc0MIICIjANBgkq
# hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAv+aQc2jeu+RdSjwwIjBpM+zCpyUuySE9
# 8orYWcLhKac9WKt2ms2uexuEDcQwH/MbpDgW61bGl20dq7J58soR0uRf1gU8Ug9S
# H8aeFaV+vp+pVxZZVXKvaJNwwrK6dZlqczKU0RBEEC7fgvMHhOZ0O21x4i0MG+4g
# 1ckgHWMpLc7sXk7Ik/ghYZs06wXGXuxbGrzryc/NrDRAX7F6Zu53yEioZldXn1RY
# jgwrt0+nMNlW7sp7XeOtyU9e5TXnMcvak17cjo+A2raRmECQecN4x7axxLVqGDgD
# EI3Y1DekLgV9iPWCPhCRcKtVgkEy19sEcypukQF8IUzUvK4bA3VdeGbZOjFEmjNA
# vwjXWkmkwuapoGfdpCe8oU85tRFYF/ckXEaPZPfBaYh2mHY9WV1CdoeJl2l6SPDg
# ohIbZpp0yt5LHucOY67m1O+SkjqePdwA5EUlibaaRBkrfsCUtNJhbesz2cXfSwQA
# zH0clcOP9yGyshG3u3/y1YxwLEFgqrFjGESVGnZifvaAsPvoZKYz0YkH4b235kOk
# GLimdwHhD5QMIR2yVCkliWzlDlJRR3S+Jqy2QXXeeqxfjT/JvNNBERJb5RBQ6zHF
# ynIWIgnffEx1P2PsIV/EIFFrb7GrhotPwtZFX50g/KEexcCPorF+CiaZ9eRpL5gd
# LfXZqbId5RsCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
# AYYwHQYDVR0OBBYEFOzX44LScV1kTN8uZz/nupiuHA9PMA0GCSqGSIb3DQEBDAUA
# A4ICAQC7Ydl9qWy+F8SRG8OhogCN42RoD1bPd65w+f2aSpm5yXhcDAxf5OYUKVYL
# NkldRGPgrZyWGGYbIw09eelta9ZU+NI8wUNArh1Q9VL8kDu7mJlpa8fBp6hopCfc
# nfknrjCFufZnTTo+j1k5IlNE68hdA8rtUHp9YiEKgMhzZtGgBWBf6KW0p6+o9201
# nHxaitaiOJnzeIv0TdIgC94E7oybR4FyDcAUMu8wWS6u4HHyVuRql2+SUG2WjWh6
# mrI2FHoG8iS5CRFQ1wixuIl6hCNhQinlo82iIEHX0Zxk2eomoYsU10wZslBBcT0/
# TXAjhgxK3IHSzDKUhA0ICZccT8DuayB0MNLgOTQQhSEVAQjoVTLecUnZKBdQTea+
# TdF1rNDK+0G4Q6Wq08MFRE8sNpvi+uJFuCNTbAZvZ1V/RrVMP24oWnkm0qSoYpfS
# HuLtSou8G/1HSg3fZ2Z+sltB0Dvk9Dv0BGPp78JUAFGgiirJznjM1eqHBBizzq9J
# iK/zkpm2s+ZhD9KFAOdQGuQblZ0ZobmcsZuxAB7v0A9PQmzJCrzuQ/o6caXITSal
# Nf2JXbyFYh0y0qArVO2aV8Hb+hDPGbeLShuPAbYnlVPotoltW7xo1CPoi1GiVvnw
# poCg1h6zvA8PU3UpquoTd+TejIEhrQcQRxGthz0H0XW8z/NmfjCCBrAwggSYoAMC
# AQICEAitQLJg0pxMn17Nqb2TrtkwDQYJKoZIhvcNAQEMBQAwYjELMAkGA1UEBhMC
# VVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0
# LmNvbTEhMB8GA1UEAxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290IEc0MB4XDTIxMDQy
# OTAwMDAwMFoXDTM2MDQyODIzNTk1OVowaTELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
# DkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IENv
# ZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENBMTCCAiIwDQYJKoZIhvcN
# AQEBBQADggIPADCCAgoCggIBANW0L0LQKK14t13VOVkbsYhC9TOM6z2Bl3DFu8SF
# JjCfpI5o2Fz16zQkB+FLT9N4Q/QX1x7a+dLVZxpSTw6hV/yImcGRzIEDPk1wJGSz
# jeIIfTR9TIBXEmtDmpnyxTsf8u/LR1oTpkyzASAl8xDTi7L7CPCK4J0JwGWn+piA
# STWHPVEZ6JAheEUuoZ8s4RjCGszF7pNJcEIyj/vG6hzzZWiRok1MghFIUmjeEL0U
# V13oGBNlxX+yT4UsSKRWhDXW+S6cqgAV0Tf+GgaUwnzI6hsy5srC9KejAw50pa85
# tqtgEuPo1rn3MeHcreQYoNjBI0dHs6EPbqOrbZgGgxu3amct0r1EGpIQgY+wOwnX
# x5syWsL/amBUi0nBk+3htFzgb+sm+YzVsvk4EObqzpH1vtP7b5NhNFy8k0UogzYq
# ZihfsHPOiyYlBrKD1Fz2FRlM7WLgXjPy6OjsCqewAyuRsjZ5vvetCB51pmXMu+NI
# UPN3kRr+21CiRshhWJj1fAIWPIMorTmG7NS3DVPQ+EfmdTCN7DCTdhSmW0tddGFN
# PxKRdt6/WMtyEClB8NXFbSZ2aBFBE1ia3CYrAfSJTVnbeM+BSj5AR1/JgVBzhRAj
# IVlgimRUwcwhGug4GXxmHM14OEUwmU//Y09Mu6oNCFNBfFg9R7P6tuyMMgkCzGw8
# DFYRAgMBAAGjggFZMIIBVTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBRo
# N+Drtjv4XxGG+/5hewiIZfROQjAfBgNVHSMEGDAWgBTs1+OC0nFdZEzfLmc/57qY
# rhwPTzAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYIKwYB
# BQUHAQEEazBpMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20w
# QQYIKwYBBQUHMAKGNWh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2Vy
# dFRydXN0ZWRSb290RzQuY3J0MEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwz
# LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRSb290RzQuY3JsMBwGA1UdIAQV
# MBMwBwYFZ4EMAQMwCAYGZ4EMAQQBMA0GCSqGSIb3DQEBDAUAA4ICAQA6I0Q9jQh2
# 7o+8OpnTVuACGqX4SDTzLLbmdGb3lHKxAMqvbDAnExKekESfS/2eo3wm1Te8Ol1I
# bZXVP0n0J7sWgUVQ/Zy9toXgdn43ccsi91qqkM/1k2rj6yDR1VB5iJqKisG2vaFI
# GH7c2IAaERkYzWGZgVb2yeN258TkG19D+D6U/3Y5PZ7Umc9K3SjrXyahlVhI1Rr+
# 1yc//ZDRdobdHLBgXPMNqO7giaG9OeE4Ttpuuzad++UhU1rDyulq8aI+20O4M8hP
# OBSSmfXdzlRt2V0CFB9AM3wD4pWywiF1c1LLRtjENByipUuNzW92NyyFPxrOJukY
# vpAHsEN/lYgggnDwzMrv/Sk1XB+JOFX3N4qLCaHLC+kxGv8uGVw5ceG+nKcKBtYm
# Z7eS5k5f3nqsSc8upHSSrds8pJyGH+PBVhsrI/+PteqIe3Br5qC6/To/RabE6BaR
# UotBwEiES5ZNq0RA443wFSjO7fEYVgcqLxDEDAhkPDOPriiMPMuPiAsNvzv0zh57
# ju+168u38HcT5ucoP6wSrqUvImxB+YJcFWbMbA7KxYbD9iYzDAdLoNMHAmpqQDBI
# SzSoUSC7rRuFCOJZDW3KBVAr6kocnqX9oKcfBnTn8tZSkP2vhUgh+Vc7tJwD7YZF
# 9LRhbr9o4iZghurIr6n+lB3nYxs6hlZ4TjCCB2cwggVPoAMCAQICEAQeEMwPIHXP
# hEYRSj3cLPwwDQYJKoZIhvcNAQELBQAwaTELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
# DkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IENv
# ZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENBMTAeFw0yMTA5MTMwMDAw
# MDBaFw0yMjA5MTMyMzU5NTlaMGwxCzAJBgNVBAYTAlVTMRcwFQYDVQQIEw5Ob3J0
# aCBDYXJvbGluYTEUMBIGA1UEBxMLTW9ycmlzdmlsbGUxDzANBgNVBAoTBkxlbm92
# bzEMMAoGA1UECxMDRzA4MQ8wDQYDVQQDEwZMZW5vdm8wggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQDqY0eTJU5Yy7d3dou+uAaNsyjtaMI6/ww9IiQAduFR
# oFLT6QRkdYvRhAqiz5m5E2uV0St9mBmAEbR8wLFQ9UeJtq9LRuO+R7g/kaHteown
# fhE52ra4tMu4WCGFVtBSt5ppAemvceJ+detFSff4eORgz9VGHxaZeOQycuUa2r//
# jhB5rLbORZL5k+YlA/gv2VjVM13yPRjt2pwCozQRjumKnTtxkH1zLWSaLYtKW6+M
# FPmhT27h8KttCZzb+JlhiLF5Hcxr9iIi+ptDL3M2W/v7ZzsXQfAnoTkwPEgFkSYu
# I+ThfJYR5T4jQqDtcFcNQUTLsLZilHm/GJrSvhZFxdIj0vMbZeSaP33Km5bCQwwp
# mYrPIoGIx4GFXanAp1a3PnfbRY1M/bisV1j5eyIuoUIgfbEO8pNEK5Ix3xZG1Tab
# n8hUBeJ5NXU+8Ps3lxq7smIIV3iytI7YP0u4KuVl6RTzpvNOL36YHWl28L9oV5EZ
# QtBGoXRcaToOtAnNBiVRIm5QF6X9suUDFv7S7V81Ds1t2L/ZyfG6xOA4f4E5rmfR
# kegv9ao+WZRISyc64EcYAqFfXn6OBBY1exobuyrFY9lmQGRR4WCn5GBHh4QDEUY4
# xWxTwrRfglyH2GrCqWh0OryTOzgMXGRm/KV37TJ5V/3mWvpQ+tAzb35MPlANYHoc
# CQIDAQABo4ICBjCCAgIwHwYDVR0jBBgwFoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIw
# HQYDVR0OBBYEFCGo3FvTjiZDq+YCPTCWRQrhXdBjMA4GA1UdDwEB/wQEAwIHgDAT
# BgNVHSUEDDAKBggrBgEFBQcDAzCBtQYDVR0fBIGtMIGqMFOgUaBPhk1odHRwOi8v
# Y3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JT
# QTQwOTZTSEEzODQyMDIxQ0ExLmNybDBToFGgT4ZNaHR0cDovL2NybDQuZGlnaWNl
# cnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hBMzg0
# MjAyMUNBMS5jcmwwPgYDVR0gBDcwNTAzBgZngQwBBAEwKTAnBggrBgEFBQcCARYb
# aHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BTMIGUBggrBgEFBQcBAQSBhzCBhDAk
# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFwGCCsGAQUFBzAC
# hlBodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRD
# b2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNydDAMBgNVHRMBAf8EAjAA
# MA0GCSqGSIb3DQEBCwUAA4ICAQAVUanR6cthRQoUKTg3jMsMflEZQKeHJY9Vw4Pu
# gMNXBuHyKkXfzGA+nh4G1kzTopMWW7mjyg9rJTmVu9dxDE7H2r0BSovOXO0oWHdW
# RXhRvee5ZsmlShdofSezg6YXXqq271+oAanl3klpAUI3SfgAlEFBTMT9NVmBzX8J
# Ycje3IMAmq+fi92WKwsli/r4+O4f2/alxRH3PJCQbrxCD/RfH9s0mx8BAfuH4d3e
# 9r9s56S/9Pkof3wR7Zxq31jw/2Wko10EsUgSguMGOYcNxJnFUfmPiwrcVqVZVlgK
# +bmgF8T7nWRZmmoaqq72HWGCa9YC0JkCgW/fuT3RUr6ugx8BlW6o5tHbDSeOxFR6
# P2RUV/7x1wB9RQFJgvh1idhdFj+nTqU3eXKE5B9Kt4rI2wV0sJsD4AHTnoWa/vk9
# u5hNcO2ttyQadg08kmsQ+JxHKHw28GEDSGB5C+6G9EwS0CpjEM7eoP07pioa895b
# nEfV66J4ON4Iquhq3FgDY9orkpNkdZshskeqTomT3QSPfVcIqU8+HhRuDY8OdZRG
# fFNwNdruZsVtOSalNZ2luzIAZKiSoWzsmm3FioIitjUvsAJ9zHqJVIs9MjSO9Z00
# Rbg4ECHIm+crTfy3rvPeOTncnBvz2N+FJCCupcPnHx2OSFjd8IuDmd9xMZQAHAsy
# sREs/TGCBWMwggVfAgEBMH0waTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lD
# ZXJ0LCBJbmMuMUEwPwYDVQQDEzhEaWdpQ2VydCBUcnVzdGVkIEc0IENvZGUgU2ln
# bmluZyBSU0E0MDk2IFNIQTM4NCAyMDIxIENBMQIQBB4QzA8gdc+ERhFKPdws/DAN
# BglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqG
# SIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3
# AgEVMC8GCSqGSIb3DQEJBDEiBCAcpG2R/3vFfymMGJA1qup/D+QG8X/1zbaWy5E2
# qI9pyjANBgkqhkiG9w0BAQEFAASCAgA4l+DVmA+NviLWY8DF11kYjCru6MFraM7e
# MMXP7aJ1Q6gFjipsL5GqqGRGvK8Y8XZlPh3bJt6ey+kSGtrX4vADks1ugDEpA6y/
# XUhElr1Ark9H3CAFv9b9pO4BDvDWE838VbcrAyjljageK+iyVhY/mj9sZOKlq8qo
# 30VXK+QD9DV5Mdu8mzm1Q7OaIwQnYIiuEBot10Xzbj++pbm0KnBQLUp9fCFIMpY/
# OJESDlecaqG3D8w3f2jNC7V21jH9uzJueHwq4546JqVpwLfUjsdvBg1kYmMnilxX
# qtkGNSdQWNApTfXVnA3KhBlSvEgHwLjladJAXZQBQi9D5qUQ0iA83dbuVhOE5CCM
# XAkuE527ILpm2tl4BOTGaA9jCJ2o3rO0EKREHbNP+Z8sO2RtEfa6W0z3F291Czxr
# gkqHxP6tGbYS5AQy5LtJgOKdAbaQg6rw5LFRsRZX06i/NwDM0r8A1H1IlCh7TJhD
# CsDeEDgi6i6MhFG3fLcJCKTNcLUsTiPgOISpwY27gzgAIG991ctjC6vB6Vx2K8mt
# mK+AhcHyuPMDOelwnIaTFOQNNT+/8yFq9RTWLn0mh2T+yPPNr8D0fOcju8PGzoCT
# WYi+9le0iaGrQ7HhoVBA9dclkbMLdD2MYK/NNlxJk4MRbf6cKG2+8XfQb7CWfM1+
# /tyad+D23aGCAjAwggIsBgkqhkiG9w0BCQYxggIdMIICGQIBATCBhjByMQswCQYD
# VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGln
# aWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgVGlt
# ZXN0YW1waW5nIENBAhANQkrgvjqI/2BAIc4UAPDdMA0GCWCGSAFlAwQCAQUAoGkw
# GAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjExMTE3
# MDI1MjI2WjAvBgkqhkiG9w0BCQQxIgQgZEsM+Xtplh6OB99HjNfl1Ts458Nb0NyW
# +k3m3KqVygowDQYJKoZIhvcNAQEBBQAEggEAJVwru0kFwXxAQHHiLrVpOwQT+HRx
# iCB853gf5HMbkKLy35DF3SMQ0jADvajThn8BEmnGa6HEHfFfm4+rXSZg2soTvajO
# aEmOyPGJMq6j7CjUF8L7/0EMhOZ/3e6I0voEPL+llMZl25JG0eWKvlgWpMUjidmp
# oCgVm7oKo5CzPrK+pu9jzgyMPb6hBWW+g8iMzej6lidoMRQULsQi28p8zX6gior3
# ZZrJ9lwGC2FPLWsrzUXUVQEKvnULivyDjCGCHR3a0OZoDjGIDrwiPWUs1HWf/7cr
# aZdWlPSNQNeLbavCKk4lQxLlJYznfKwIPX7umpIZ+zkihZ1LutTYDujbNg==
# SIG # End signature block

 

 

If I package the above as the uninstall and point this when creating the intunewin will this work? 

Try it, looks good
How do I get this to run via the intunewin package? do I include the uninstall script via the package or do I create a script that runs the uninstall.ps1 from the location its in (C:\ProgramData\Lenovo\ImController\Plugins\LenovoFirstRunExperiencePackage\x86)

If I am running a script to open and run the uninstall from the location above what would it look like?
best response confirmed by AB21805 (Bronze Contributor)
Solution
Create a script that runs the uninstall.ps1, like a uninstall.cmd, with powershell.exe -executionpolicy bypass -file "C:\ProgramData\Lenovo\ImController\Plugins\LenovoFirstRunExperiencePackage\x86)\uninstall.ps1" Add that together with an empty install.cmd in a folder and create a package from that with a detection on the uninstall.ps1 file

And do I point to the uninstall.cmd when creating the intunewin?

when creating the install and uninstall command on intune would they be like so?

Install command: powershell -ex bypass -file install.cmd
Uninstall command: powershell -ex bypass -file uninstall.cmd




Install.cmd when creating and just select install.cmd as installation command and Uninstall.cmd as uninstall command

Hi @Harm_Veenstra 

 

 

So like this:

 

Screenshot 2022-04-07 at 2.04.21 PM.png

Yes, like that
I’ll give it a try! And let you know thank you !

@Harm_Veenstra 

 

I have got this error: 

 

Screenshot 2022-04-07 at 3.25.44 PM.png

 

Any ideas how I can troubleshoot this? 

If you run the uninstall manuall, does it work?

Hi @Harm_Veenstra 

 

It seems to of worked! the path was incorrect first time but I am still getting failed message is there away to stop this erroring out? 

 

Screenshot 2022-04-08 at 1.26.30 PM.png

Ok... So the uninstall command worked, the application folder and everything is gone now?
Yes, thank you but it says failed and the notification on the device when uninstalling states failed too since this fails will this mean it pops up for the user every time it try's to uninstall the app?
You have assigned a group to uninstall the application that you created right? Members of that group will start the uninstall.cmd that you made which starts the uninstall.ps1 on the effected computer? If the uninstall.ps1 is no longer there, then the detection should detect that the application is uninstalled.

You could try to modify the uninstall.cmd with an extra line containing EXIT 0 . This way the uninstall routine will always exit with a succes exit code.
You marked my response as solution, does it work now?
1 best response

Accepted Solutions
best response confirmed by AB21805 (Bronze Contributor)
Solution
Create a script that runs the uninstall.ps1, like a uninstall.cmd, with powershell.exe -executionpolicy bypass -file "C:\ProgramData\Lenovo\ImController\Plugins\LenovoFirstRunExperiencePackage\x86)\uninstall.ps1" Add that together with an empty install.cmd in a folder and create a package from that with a detection on the uninstall.ps1 file

View solution in original post