Win10: Appx Packages for Enterprise Images


I thought I would share what Appx Packages I will be removing from Windows 10 in our Enterprise Image. I’m on the fence with some of them, but better to remove them first and add them back if necessary. Please leave a comment so we can discuss.


Losers:

Microsoft.3DBuilder
Microsoft.BingFinance
Microsoft.BingNews
Microsoft.BingSports
Microsoft.BingWeather
Microsoft.MicrosoftOfficeHub
Microsoft.Office.OneNote
Microsoft.MicrosoftSolitaireCollection
Microsoft.People
Microsoft.SkypeApp
Microsoft.WindowsCommunicationsApps
Microsoft.WindowsPhone
Microsoft.Windows.Photos
Microsoft.XboxApp
Microsoft.ZuneMusic
Microsoft.ZuneVideo

Winners:

Microsoft.AAD.BrokerPlugin
Microsoft.AccountsControl
Microsoft.Appconnector
Microsoft.BioEnrollment
Microsoft.LockApp
Microsoft.MicrosoftEdge
Microsoft.NET.Native.Framework.1.1
Microsoft.NET.Native.Runtime.1.0
Microsoft.NET.Native.Runtime.1.1
Microsoft.VCLibs.140.00
Microsoft.Getstarted
Microsoft.Windows.ParentalControls	
Microsoft.WindowsAlarms
Microsoft.WindowsCalculator
Microsoft.WindowsCamera
Microsoft.WindowsFeedback
Microsoft.WindowsMaps
Microsoft.WindowsSoundRecorder
Microsoft.WindowsStore
Microsoft.Windows.AssignedAccessLockApp
Microsoft.Windows.CloudExperienceHost
Microsoft.Windows.ContentDeliveryManager
Microsoft.Windows.Cortana
Microsoft.Windows.ShellExperienceHost
Microsoft.XboxGameCallableUI
Microsoft.XboxIdentityProvider
Windows.ContactSupport
windows.devicesflow
windows.immersivecontrolpanel
Windows.MiracastView
Windows.PrintDialog
Windows.PurchaseDialog

PS AppxPackagesGet.ps1

Here is my current PowerShell script to generate the list of AppxPackages with source. You will need to adjust your path accordingly, but this will be used in an OSConfig Package I am working on, which explains my path.

#http://ccmexec.com/2015/08/removing-built-in-apps-from-windows-10-using-powershell/

$Appx = Get-AppxPackage | select name
$Appx | Out-File -FilePath C:\Windows\OSConfig\InstalledAppxPackages.txt

PS AppxPackagesRemove.ps1

And here is the script I am using to remove them

#http://ccmexec.com/2015/08/removing-built-in-apps-from-windows-10-using-powershell/

$AppsList = "Microsoft.3DBuilder",
			"Microsoft.BingNews",
			"Microsoft.BingSports",
			"Microsoft.BingWeather",
			"Microsoft.MicrosoftOfficeHub",
			"Microsoft.Office.OneNote",
			"Microsoft.MicrosoftSolitaireCollection",
			"Microsoft.People",
			"Microsoft.SkypeApp",
			"Microsoft.WindowsCommunicationsApps",
			"Microsoft.WindowsFeedback",
			"Microsoft.WindowsPhone",
			"Microsoft.Windows.Photos",
			"Microsoft.XboxApp",
			"Microsoft.ZuneMusic",
			"Microsoft.ZuneVideo"
		
#			"Microsoft.AAD.BrokerPlugin",
#			"Microsoft.AccountsControl",
#			"Microsoft.Appconnector",
#			"Microsoft.BioEnrollment",
#			"Microsoft.LockApp",
#			"Microsoft.MicrosoftEdge",
#			"Microsoft.NET.Native.Framework.1.1",
#			"Microsoft.NET.Native.Runtime.1.0",
#			"Microsoft.NET.Native.Runtime.1.1",
#			"Microsoft.VCLibs.140.00",
#			"Microsoft.Getstarted",
#			"Microsoft.Windows.ParentalControls",	
#			"Microsoft.WindowsAlarms",
#			"Microsoft.WindowsCalculator",
#			"Microsoft.WindowsCamera",
#			"Microsoft.WindowsMaps",
#			"Microsoft.WindowsSoundRecorder",
#			"Microsoft.WindowsStore",
#			"Microsoft.Windows.AssignedAccessLockApp",
#			"Microsoft.Windows.CloudExperienceHost",
#			"Microsoft.Windows.ContentDeliveryManager",
#			"Microsoft.Windows.Cortana",
#			"Microsoft.Windows.ShellExperienceHost",
#			"Microsoft.XboxGameCallableUI",
#			"Microsoft.XboxIdentityProvider",
#			"Windows.ContactSupport",
#			"windows.devicesflow",
#			"windows.immersivecontrolpanel",
#			"Windows.MiracastView",
#			"Windows.PrintDialog",
#			"Windows.PurchaseDialog",


ForEach ($App in $AppsList)
	{
		$PackageFullName = (Get-AppxPackage $App).PackageFullName
		$ProPackageFullName = (Get-AppxProvisionedPackage -online | where {$_.Displayname -eq $App}).PackageName
		write-host $PackageFullName
		Write-Host $ProPackageFullName
		if ($PackageFullName)
			{
				Write-Host "Removing Package: $App"
				remove-AppxPackage -package $PackageFullName
			}
		else
			{
				Write-Host "Unable to find package: $App"
			}
		if ($ProPackageFullName)
			{
				Write-Host "Removing Provisioned Package: $ProPackageFullName"
				Remove-AppxProvisionedPackage -online -packagename $ProPackageFullName
			}
		else
			{
				Write-Host "Unable to find provisioned package: $App"
			}
	}

Win10: Bug – Hyper-V Cancel Apply Checkpoint (Doesn’t Cancel)


Looks like a legit bug in Microsoft Hyper-V in Windows 10 Enterprise x64.  Posted on Technet as well.

When selecting a Checkpoint, I can right click and Apply

2015-10-29_23-51-22

At this point I have an Apply Checkpoint confirmation prompt.  My mistake, I didn’t want to apply this Checkpoint, so I will just Cancel

2015-10-29_23-51-45

And Hyper-V decides to Apply the Checkpoint anyway.

2015-10-29_23-52-03

Partitions: Recommendations and ZTIRecoveryDisk.wsf


Hopefully you have read my two posts on default MDT 2013 Update 1 (Build 8298) BIOS and UEFI Partitions, and here is what I have decided for my layout.  Before you decide to do the same, I recommend reading Microsoft Hardware’s posts on Partitions

Microsoft Hardware Dev: Hard Drives and Partitions

Microsoft Hardware Dev: UEFI/GPT-based hard drive partitions

Microsoft Hardware Dev: BIOS/MBR-based hard drive partitions

I have decided that this is how I want my Partitions for BIOS and UEFI

Partitions

Continue reading

Partitions: MDT 2013 Update 1 Build 8298 Default UEFI Partitions


Continuing from my last post on BIOS Partitions, I’ll explain the UEFI side of things

2015-10-27_11-27-09

On a UEFI system 4 partitions will be created.

  • Boot / 499MB / FAT32 / EFI Bootable
  • MSR / 128MB
  • Windows / 99% Remainder / NTFS
  • Recovery / 100% Remainder / NTFS

I added a pause in my Task Sequence right after the Format and Partition Disk (UEFI) step and on a 127GB drive in Hyper-V, this was my layout:

  • BOOT/ 499MB / NTFS / EFI Bootable
  • MSR / 128MB
  • Windows / 125GB / NTFS
  • Recovery / 1299MB / NTFS

2015-10-27_11-29-30

Very similar to BIOS (in relation to the size of my Recovery Partition), and this variance in Recovery Partition sizes has led me to come up with my own solution.

Partitions: MDT 2013 Update 1 Build 8298 Default BIOS Partitions


Its time to clear the air when it comes to Partitions and the Task Sequences.  I’ll start with the latest MDT 2013 Update 1 (Build 8298) and detail the issues.

2015-10-27_11-12-24

On a BIOS system 3 partitions will be created.

  • System Reserved / 499MB / NTFS / Bootable
  • Windows / 99% Remainder / NTFS
  • Recovery / 100% Remainder / NTFS

I added a pause in my Task Sequence right after the Format and Partition Disk (BIOS) step and on a 127GB drive in Hyper-V, this was my layout:

  • System Reserved / 499MB / NTFS / Bootable
  • Windows / 125GB / NTFS
  • Recovery / 1300MB / NTFS

2015-10-27_11-23-43

The biggest issue that I have is my Recovery Partition is about 1% of my Total Drive Size.  So on a 127GB Drive, this is a 1.27GB Partition, way too large for a 300MB WinRE.wim.  Now if I use the same logic, and apply this to a 20GB drive, my Recovery Partition will be 200MB.  Way too small!  And if I have a rather large 1TB drive, then I get to look forward to a 10GB Recovery Partition.  The main issue for this is that there is no control on the Recovery Partition size (because the partitioning changed from Script based to Task Sequence based).