Configuring Lenovo Vantage with an MDM

by Phil Jorgensen

Overview

Lenovo Vantage contains some features which may not be appropriate for enterprise users. Please read this section carefully to understand these features and consider whether they should be disabled in your specific environment.


Lenovo Software and Driver Updates – One of the features of Lenovo Vantage, called System Update, will automatically install updates for Lenovo software and drivers. Some IT organizations will want to disable this.


Ads, messaging, and metrics data collection – Lenovo Vantage tells users about special offers from Lenovo through in-app and toast messages. Lenovo Vantage also collects metrics/telemetry data about how users interact with the application. These things can be disabled.


This guide will demonstrate how to control parts of the Lenovo Vantage User Interface that is displayed to the user and how to deploy the configuration with MobileIron Cloud with Bridge or Microsoft Intune.

Deployment from MobileIron

Log into MobileIron Cloud, click Configurations and click the Add button.


Tick the Windows 10+ box under the OS Version filter.

Select MobileIron Bridge from the available Configurations.


Enter a name and description (optional)

Add the PowerShell script file and click the Next button.  The contents for the .ps1 file are included in this post below.

Choose the appropriate option for the new MI Bridge Configuration and click Done.

Status of the configuration can be checked under Devices > Configurations tab.


Deployment from Intune

This is assuming Lenovo Vantage has been added to the MS Store for Business, synced to your Azure Active Directory tenant’s Mobile Apps catalog and assigned for installation to the desired AAD group.

In the Intune dashboard, select Device Configuration > PowerShell scripts



Click the +Add button to add a new PowerShell Script. Enter a Name and description.




Click the blue folder beside Script location to upload a file. The contents of the .ps1 file is included in this post below. Script settings can be defined to run using the logged-on credentials or enforcing a signature check on the script. For this guide, these options will be skipped. (Note: The settings that will be configured are commented in the script).

Click the blue Create button to add the PowerShell script to your tenant.

To assign the script to a group, click Assignments, Select groups, choose the desired group and Save settings.




You can monitor the status under Monitor > Device Status




Example: Before Vantage Configurations




Example: After Vantage Configurations



PowerShell Script:


<# PSScriptInfo
# Updated: 10/26/2018
#
# Set-VantageConfig_Updated.ps1
#
# This script is designed to hide Vantage features that may not be appropriate
# for enterprise customers.  Each feature is commented out beside each GUID in
# each array.
#
#>

##############################
### Transcript for logging ###
##############################

        $stampDate = Get-Date
        $vantageTempDir = "C:\Vantage\Config"
        $transcriptName = $vantageTempDir + "\VantageConfig_" + $stampDate.ToFileTimeUtc() + ".txt"
        Start-Transcript -Path $transcriptName -NoClobber

##########################################
### Start PowerShell as 64 bit process ###
##########################################

If ($ENV:PROCESSOR_ARCHITEW6432 -eq AMD64) {
     Try {
         &$ENV:WINDIR\SysNative\WindowsPowershell\v1.0\PowerShell.exe -File $PSCOMMANDPATH
     }
     Catch {
         Throw Failed to start $PSCOMMANDPATH
     }
     Exit
}

#######################################################
### Create Vantage registry key if it doesn't exist ###
#######################################################

$path = "HKLM:\SOFTWARE\Policies\Lenovo\E046963F.LenovoCompanion_k1h2ywk1493x8"

IF(!(Test-Path $path\Messaging))

    {

        New-Item -Path $path\Messaging -Force > $null

    }

#########################################
### System Health and Support Section ###
#########################################

                Write-Output "--------------------------------------------------------------------------------------"
                Write-Output "Configuring System Health and Support Section"
                Write-Output "--------------------------------------------------------------------------------------"

    $array = @('6674459E-60E2-49DE-A791-510247897877',` # Knowledge Base
               'CCCD4009-AAE7-4014-8F5D-5AEC2585F503',` # Hardware Scan
               'D65D67BF-8916-4928-9B07-35E3A9A0EDC3',` # Discussion Forum
               'bc690b89-77aa-4cc9-b217-73573202b94e','C615AC2F-F818-4AF6-99CA-D95E6FF1BD18' # Tips & Tricks
               )
foreach($i in $array){
    New-ItemProperty -Path $path -Name $i -Value 0 -PropertyType DWord -Force > $null
}

###############################
### Apps and Offers Section ###
###############################

                Write-Output "--------------------------------------------------------------------------------------"
                Write-Output "Configuring Apps and Offers Section"
                Write-Output "--------------------------------------------------------------------------------------"
                 
    $array2 = @('08EC2D60-1A14-4B27-AF71-FB62D301D236',` # Accessories
                '0E101F47-9A6F-4915-8C5F-E577D3184E5D',` # Offers & Deals
                '8A6263C0-490C-4AE6-9456-8BBD81379787',` # Rewards
                'CD120116-1DE7-4BA2-905B-1149BB7A12E7',` # Apps For You (Entire Feature)
                'CD120116-1DE7-4BA2-905B-1149BB7A12E7_UserDefaultPreference',` # Apps For You (User Default Preference)
                '41A76A93-E02F-4703-862F-5187D84E7D90',` # Apps For You/Drop Box
                'ECD16265-0AE8-429E-BC0A-E62BADFE3708' # Apps For You/Connect2
                )

foreach($i in $array2){
    New-ItemProperty -Path $path -Name $i -Value 0 -PropertyType DWord -Force > $null
}

#################################
### Hardware Settings Section ###
#################################

                Write-Output "--------------------------------------------------------------------------------------"
                Write-Output "Configuring Hardware Settings Section"
                Write-Output "--------------------------------------------------------------------------------------"

    $array3 = @('10DF05AE-BA16-4808-A436-A40A925F6EF6',` # HubPage/Recommended Settings
                '6F486CF5-5D51-4AE8-ABA9-089B5CB96420' # Wifi Security Settings 
                )

foreach($i in $array3){
    New-ItemProperty -Path $path -Name $i -Value 0 -PropertyType DWord -Force > $null
}

#############################
### Messaging Preferences ###
#############################

                Write-Output "--------------------------------------------------------------------------------------"
                Write-Output "Configuring Messaging Preferences"
                Write-Output "--------------------------------------------------------------------------------------"

    $array4 = @('6BBE64B3-0E60-4C88-B901-4EF86BC01031',` # App Features
                'B187E8D5-D2AB-4A8B-B27E-2AF878017008',` # Marketing
                'EB3D3705-FA1F-4833-A88D-2F49A2968A1A' # Action Triggered
                )

foreach($i in $array4){
    New-ItemProperty -Path $path -Name $i -Value 0 -PropertyType DWord -Force > $null
}
    New-ItemProperty -Path $path\Messaging -Name Marketing -Value 1 -PropertyType DWord -Force > $null

###################################
### Launch page and Preferences ###
###################################

                Write-Output "--------------------------------------------------------------------------------------"
                Write-Output "Setting Launch Page and Preferences"
                Write-Output "--------------------------------------------------------------------------------------"

    $array5 = @('2210FAAF-933B-4985-BC86-7E5C47EB2465',` # Lenovo ID Welcome Page
                '2885591F-F5A8-477A-9744-D1B9F30B5B79',` # Preferences & WiFi Security
                '349B8C6E-6AE4-4FF3-B8A0-25D398E75AAE',` # Device Refresh
                '369C3066-08A0-415A-838C-9C56C5FBF5C4',` # Welcome Page
                '41A76A93-E02F-4703-862F-5187D84E7D90_Help',` # Location Tracking
                '422FDE50-51D5-4A5B-9A44-7B19BCD03A29',` # Anonymous Usage Statistics (Entire Feature)
                '422FDE50-51D5-4A5B-9A44-7B19BCD03A29_UserConfigurable',` # Anonymous Usage Statistics (Allow User Configuration)
                '422FDE50-51D5-4A5B-9A44-7B19BCD03A29_UserDefaultPreference',` # Anonymous Usage Statistics (User Default Preference)
                '9023E851-DE40-42C4-8175-1AE5953DE624',` # User Feedback
                'AE37F328-7A7B-4E2F-BE67-A5BBBC0F444A',` # Vantage Toolbar
                'AE37F328-7A7B-4E2F-BE67-A5BBBC0F444A_UserDefaultPreference',` # Vantage Toolbar Default Preferences
                'E0DF659E-02A6-417C-8B39-DB116529BFDD' # Lenovo ID
                )

foreach($i in $array5){
    New-ItemProperty -Path $path -Name $i -Value 0 -PropertyType DWord -Force > $null
}

#####################
### System Update ###
#####################

                Write-Output "--------------------------------------------------------------------------------------"
                Write-Output "Disabling System Update Plugin"
                Write-Output "--------------------------------------------------------------------------------------"

$SUplugin = "HKLM:\SOFTWARE\WOW6432Node\Policies\Lenovo\ImController\Plugins\LenovoSystemUpdatePlugin"

IF(!(Test-Path $SUplugin))

    {

        New-Item -Path $SUplugin -Force > $null

    }

        New-ItemProperty -Path $SUplugin -Name Imc-Block -Value 1 -Force > $null # System Update Plugin
        New-ItemProperty -Path $path -Name E40B12CE-C5DD-4571-BBC6-7EA5879A8472 -Value 0 -Force > $null # System Update GUI

Stop-Transcript

Comments

  1. Tips & Tricks is not hidden by this command

    New-ItemProperty -Path $path -Name bc690b89-77aa-4cc9-b217-73573202b94e -Value 0 -Force | Out-Null # Tips & Tricks

    Anything changed, or something wrong?

    Some other suggestions:
    * "$null = *" is much faster than "* | Out-Null"
    * Write-Host should not be used, better to use Write-Output or Write-Verbose
    ** http://www.jsnover.com/blog/2013/12/07/write-host-considered-harmful/
    * Using "Set-ItemProperty" instead of "New-ItemProperty" you can specify "-Type 'DWord'". It gives more control IMO.

    ReplyDelete
    Replies
    1. Thanks for the feedback. Some GUIDs were added/changed in newer versions of Vantage. Tips & Tricks were one of them. Script has been updated.

      Delete
  2. No SCCM or MDT deployment options?

    ReplyDelete
    Replies
    1. Hey Allen,

      You should be able to add this script (adjusted to your needs) to your OSD task sequence. Keep in mind, the registry keys would need to be set before Vantage is installed on the client, so when the app is launched for the first time, the settings would be applied.

      Delete

Post a Comment