Kaseya Community

WIndows 10 - How to cleanup Start Menu, deploy Creator's Update? And some great links

  • Hi all, has anyone managed to cleanup the WIn 10 Start Menu with an Agent Procedure?

    This link contains some good stuff: https://community.spiceworks.com/scripts/show/3298-windows-10-decrapifier-version-1

    Here is another great resource for Windows 10 configuration: https://gist.github.com/alirobe/7f3b34ad89a159e6daa1

    The commands are below, but I can't seem to get Kaseya to do it.

    Get-AppxPackage -AllUsers | where-object {$_.name -notlike '*Store*' -and $_.name -notlike '*Calculator*' -and $_.name -notlike '*Windows.Photos*' -and $_.name -notlike '*SoundRecorder*' -and $_.name -notlike '*MSPaint*'} | Remove-AppxPackage -erroraction silentlycontinue

    Get-AppxProvisionedPackage -online | where-object {$_.displayname -notlike '*Store*' -and $_.displayname -notlike '*Calculator*' -and $_.displayname -notlike '*Windows.Photos*' -and $_.displayname -notlike '*SoundRecorder*' -and $_.displayname -notlike '*MSPaint*'} | Remove-AppxProvisionedPackage -online -erroraction silentlycontinue

    Also, has anyone managed to deploy the Creator's Update with Kaseya?

    I'm thinking that this stuff is useful to anyone that's looking after Windows 10.

  • This is what I use for removal - easily edited to add or remove apps for removal:

    $File = New-Item -type File "C:\kworking\app-remove.txt"
    $PackagesToRemove = @(

    #Uninstall from current user and default user
    #This also prevents these packages from being installed on new users

    Start-Transcript -path $File

    ForEach ($package in $PackagesToRemove)
    Get-AppxPackage | where-object {$_.packagename -like $package} | Remove-AppxPackage
    Get-AppxProvisionedPackage –Online | where-object {$_.packagename -like $package} | Remove-AppxProvisionedPackage -Online
    Start-Sleep -s 4
    Get-AppXPackage -allusers | Remove-AppxPackage


    [edited by: zippo at 8:18 AM (GMT -7) on Jul 14, 2017]
  • This is what I use for restoring apps to the original - if I screw something up and need to put it back:

    Get-appxPackage -AllUsers| ForEach {Add-appxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppxManifest.xml"}

  • Zippo, did you use it for some time, did you have some problems with widows after performing it, maybe some dependency or something like that?

  • I've been using it since we began deploying Win10 and still use it for every machine we deploy. No issues, to date. It does not remove everything but does do a great job of getting the majority of the bloatware out of there.

  • Zippo, why do you use this line  because this removes all builds in packages , not only listed in an array. correct me if I'm wrong

    "Get-AppXPackage -allusers | Remove-AppxPackage"

    [edited by: szelic at 12:33 PM (GMT -7) on Jul 27, 2017]
  • That's correct. If I miss including anything in the list this will get it. If they add new garbage, this should get it. You can comment it out (or remove it) if you prefer.

  • If that case you don't need this

    Get-AppxPackage | where-object {$_.packagename -like $package} | Remove-AppxPackage

    just this

    Get-AppxPackage -allusers | Remove-AppxPackage

    in Get-appxpackage you can't have $_.packagename but $_.name.

    Besides that when you execute get-appxpackage | remove-appxpackage you can't remove all apps but most of them because there are some that can't be removed as I tested it.

  • Yes, you are correct. Sorry if I gave the impression that this would remove every bit of bloatware from a WIN10 machine. There will be some that will need to be removed manually and some that will not be able to be removed and, what I consider bloatware, you may consider invaluable application programming. The script works well for us but YMMV...

  • As I could see , Microsoft often add new unwanted software here, my solution is delete all except stated in order not to check if any new software is added every time. I want to keep photos, weather.. everything else want to delete

    Get-AppxPackage | where-object {{$_.name -notlike "*soundrecorder*"} -or `

    {$_.name -notlike "*weather*"} -or `

    {$_.name -notlike "*photos*"}  | Remove-AppxPackage

    We have only one user per computer so I don't use

    Get-AppxProvisionedPackage –Online | where-object {$_.packagename -like "*photos*"} | Remove-AppxProvisionedPackage -Online

  • I finally succeeded in running this via procedure. 

    I needed to put "set-executionpolicy -executionpolicy bypass -force" in ps script itself. 

    Before that I was putting the same command in agent procedure properties but didn't work for me. 

    [edited by: szelic at 11:38 AM (GMT -7) on Jul 29, 2017]