操作系统最终可能是管理员的大量工作。努力配置图像,工作以安装应用程序,并努力提供最佳的用户体验。与任何软件一样,提供给您的内容是开发人员的意图,但不一定是最终用户想要或需要的东西。
该博客系列将您介绍Windows®操作系统(OS)优化,从版本1903开始。我将尝试将这些优化保持不可能。希望这些优化对实体机器的管理员而言,对使用NutanixFrame®,Citrix®或VMwareHorizon®虚拟桌面基础架构的虚拟环境同样好。
该系列旨在分享看似无限的方法可以优化Windows环境的方式,这些方式适合初学者以及熟悉优化的管理员,但希望在其环境中提供更好的体验。
当然,此博客系列中提供的优化仅旨在作为指南。在将更改推向生产环境之前,请务必在本系列中测试本系列中所述的优化。
这先前的条目该系列涵盖了主动设置。我们讨论了什么是主动设置,其工作原理以及如何优化它。
该博客介绍了Microsoft®商店平台:其目的,其工作原理以及可以做什么。操作系统的特定领域正在不断变化,因此,将需要恒定的管理以最适合您的组织的方式进行优化。这个博客可能比本系列中的任何其他博客都节省了更多的头痛。
与OS内的其他潜在优化领域相反,Microsoft Store项目当前仅降级为Windows10。虽然Windows Server OS使用UWP,但Windows Server OS中存在的所有UWP应用程序都是必需的,因此无法禁用。
未来的博客将详细讨论如何通过服务和计划的任务优化Windows OS环境。
什么是Microsoft商店?
Microsoft商店(以前称为Windows Store)是一个数字发行平台。尽管它具有多样化的功能和用途,例如控制台游戏和数字视频的统一分销点,但由于通用Windows Platform Apps(有时称为AppX软件包)而培养的原因是其优化主题。
通用Windows平台(UWP)应用程序是可以在多个兼容的Windows设备上使用的应用程序。为什么这对您很重要?因为UWP在OS中安装了大量应用程序,例如Windows计算器或驱动程序。尽管可能甚至需要其中一些应用程序,但其中一些是不必要的,具体取决于您的用例,并且可以删除以提高登录或用户会话的性能。
UWP应用程序如何工作?
你怎么问?我带您到应用程序管理的过去。自PC早期以来,应用程序安装时为您提供了两个选择。它们可以为“仅此用户”或“所有用户”安装。为“仅此用户”安装的应用程序称为单用户应用程序(SUA),并在用户帐户的上下文中运行。为“所有用户”安装的应用程序称为多用户应用程序(MUA),并在系统帐户的上下文中运行。结束闪回。
与UWP应用程序一样,这个圆圈继续进行,您会得到相同的情况,因为每个应用程序都可以作为SUA或MUA开发。由于SUA和MUAS的工作方式的性质,此博客只会关注单个用户应用程序UWP应用程序。
那么,SUA UWP应用程序如何工作?
为了回答这个问题,我们必须更深入地进入已安装的应用程序与已配置的应用程序。当参考UWP时,安装的应用程序是为当前用户安装的应用程序,通常是用户有目的地从Windows商店安装的应用程序。另一方面,提供的应用程序潜伏在您的机器上,等待新的用户登录。当发生新的用户登录时,他们会弹跳,为该用户安装自己。然后,他们成为安装的应用程序。
应用程序安装文件存在于两个不同的位置。对于已安装的应用程序,文件存在于%localappdata%\ packages,该位置对该用户完全可见。对于已配置的应用程序,这些文件存在于%programFiles%\ WindowsApps,该位置被隐藏和锁定。当用户登录时,操作系统检查是否存在未安装应用程序的任何已配置应用程序。如果找到了,则已配置的应用程序安装,成为已安装的应用从%programFiles%\ WindowsApps到%localappdata%\ packages。
我意识到所有这些都可能有些混乱。MUA,SUA,UWP,配置,安装,可能会变得混乱。此工作流的基本分解如下:
Windows功能更新或第三方应用程序可以将UWP应用程序添加到计算机中的一组已安装或配置应用程序中,从而导致您需要定期检查新的UWP应用程序以优化。
这对我意味着什么?
正如我们以前在Active设置中看到的那样,考虑优化UWP应用程序时,有两个主要情况:持久性和非持久性。第三种情况是利用配置文件管理解决方案,我们还将介绍。
持续的场景涵盖了物理机器和持久的机器vdi或者daas虚拟机。对于持续的情况,UWP应用程序如上所述工作。
非持久场景的工作方式不同。由于在操作系统找不到相应的安装应用程序时,已配置的应用程序安装自己,并且这些安装发生在用户查看桌面之前,这可能会导致首次登录时间需要很长时间。
配置文件管理解决方案为用户特定的设置或文件提供了能力,例如桌面上的文件或应用程序外观或工作方式的更改,以在非持久性会话之间持续存在。这允许通过非持久性的图像管理的“两全其美”方案,并在用户体验的配置文件管理上持续存在。
对于启用配置文件管理解决方案的非持久方案,由于安装了应用程序文件的放置,这些应用程序可能会或可能不会由配置文件管理解决方案捕获,具体取决于解决方案的设置。通过个人资料管理捕获应用程序数据可能是好是坏。一方面,这种情况更接近您在持久场景中看到的情况,因为UWP应用程序只需要安装一次。另一方面,应用程序数据的这种捕获可能会导致配置文件膨胀和不必要的存储消耗,这两种都不是首选。
如何防止UWP应用在环境中运行?
有关删除已提供或安装的UWP应用程序的一件事是,操作顺序对于您所看到的很重要。该博客将首先介绍删除不必要的配置应用程序的过程,然后转移到已安装的应用程序上。如果您从已安装的应用程序开始,然后转到已提供的应用程序文件,则文件夹或应用程序状态可能会不同,然后您将在下面看到的内容。
因此,如上图中分解时,UWP应用程序有两种类型:已准备和安装。现在,这并不意味着已安装与已安装的列表将完全匹配。某些安装应用程序对于操作系统的功能是必需的,因此无法删除,而所有配置的应用程序都可以从系统中删除。
提供的UWP应用程序
我们讨论了应用程序安装文件位置,但是如何查看应用程序本身?为此,从高架的powershell中运行命令Get-AppxProvisionedPackage-在线的。输出将向您显示有关每个配置应用程序的信息。下面显示的小示例:
该命令可以管道以仅显示您想要的信息。get -appxprovisionedpackage -Online |选择Packagename将仅显示包裹名字上述字段。下面的列表来自未优化的Windows 10 20H2 VM。
这是大量的应用程序,可以在每个用户的每个登录中以每个用户的基础安装。您的工作,如果您选择接受,就是要了解这些应用程序,以及在您的环境中是否需要或不希望的。
要删除这些配置的UWP应用程序,从高架的PowerShell中,您可以运行命令remove -appxprovisionedpackage -online -packageName“(应用程序的PackageName)”。为此,我们将选择XboxGameoverlay Provisioned应用程序。
那么,这个命令实际上是做什么的?好吧,如下所示,它不再被列为一个已提供的应用程序,这意味着该应用程序将不再安装在新用户的登录上。
前:
后:
由于现有用户以前已安装了已安装的已配置应用程序,因此该应用程序将继续为其安装,并且必须以每个用户为基础作为安装的应用程序删除。
但是文件呢?此命令本身不会删除在%programFiles%\ WindowsApps的配置位置中存在的文件,但是我们将稍后再返回。
现在,这要照顾好的应用程序,但您可能会问:“当前用户登录到机器呢?”。这是一个很好的问题!你知道,因为删除appxprovisionedpackagePowerShell命令是针对已提供的UWP应用程序的特定的,它不适用于匹配安装UWP应用程序的应用程序。
安装了UWP应用程序
那么,如何检查并可能卸载安装的UWP应用程序?要查看已安装的UWP应用程序,在PowerShell中运行的命令是Get-appxpackage。Get-appxpackage将向您展示为运行PowerShell的用户提供的所有已安装应用程序。如果有多个用户在计算机上具有配置文件,建议使用-全部用户转变。这将显示机器上每个用户的已安装应用程序,尽管这将返回大量应用程序列表。您最好的赌注是运行仅返回所需信息的内容。get -appxpackage -allusers |选择名称将返回所有已安装的UWP应用程序,但仅显示名称。已安装应用程序的完整列表非常长,因此我只会给您包含单词的名称列表Xbox,由姓名场地。
上面注意,尽管我们删除了已提供的应用程序,但Microsoft.xboxgameoverlay安装的应用程序仍然存在。
要卸载安装的应用程序,get -appxpackage -name“(应用程序名称)” - 所有用户命令必须被管道删除appxpackage命令。像这样,get -appxpackage -name“(app的名称)” -Allusers |删除appxpackage是正确的powershell命令。从上方继续,我们将使用上述命令删除Microsoft.xboxgameoverlay安装的应用程序。
不幸的是,此命令将不提供可见的命令输出,说明该应用程序已被卸载。如果您密切观看,您可能会看到一个进度栏会出现,但是它很快,因为单个UWP应用程序的卸载不会很长时间。如下所示。
现在,浏览到%programFiles%\ WindowsApps,我们会注意到已提供的应用程序文件已由OS删除。
前:
后:
这意味着仅在删除已配置的应用程序和已安装的应用程序后,删除了所有用户的应用程序安装文件。另一方面,仍然存在位于%localappData%\ packages的安装应用程序文件。与已配置的应用程序文件不同,这些文件不会由OS删除,必须手动删除。
现在,上述未配备应用程序的已安装应用程序呢?如前所述,已安装的应用程序的列表甚至比提供的应用程序列表还要大。请参阅下面的示例:
这大约是未比较机器上的列表的一半。那么,我们如何处理这些应用程序?甚至比提供的应用程序要多,您必须仔细审核这些应用程序。如前所述,OS有时可能需要安装的应用程序才能运行。如果您选择删除它们,请使用remove-appxpackage powershell cmdlet
删除UWP应用程序的潜在缺点是什么?
您将删除UWP应用程序将看到的最大问题是您必须重新安装相同的UWP应用程序的情况。这可以通过add-appxprovisionedpackagePowerShell命令,但此博客将无法涵盖该过程。
尽管PowerShell中的Microsoft.windowsstore的主要Microsoft商店可以作为配置和安装的应用程序删除,但将其恢复非常困难。到那时,通常更容易重建图像或恢复备份。有了这些知识,虽然您可能会看到网站告诉您运行PowerShell命令获得 -appxprovisionedpackage -ONLINE |remove -appxProvisionedPackage -ONLINE为了删除所有配置应用程序,我不建议这样一个简单的事实。
按照相同的行,一些网站会告诉您以类似的方法删除已安装的应用程序。get -appxpackage -allusers |删除appxpackage将尝试删除所有已安装的应用程序。与已配置的应用程序不同,当您尝试删除OS功能所需的已安装应用程序时,此命令将返回很多非终止错误。但与配置应用程序一样,重新安装应用程序可能很乏味。
此外,如果您的环境中使用了任何自定义或第三方UWP应用程序(已配置或安装),则以上命令也将删除这些应用程序。请仔细审查您的UWP应用程序!
哪些UWP应用程序可能有益于删除?
现在,每个人都来这里阅读!以下是我的标准Windows 10配置和安装应用程序清单,这些应用程序有益于大多数环境中的删除。与往常一样,请在删除环境之前对这些应用程序进行审查。
- Microsoft.bingweather
- Microsoft.desktopappinstaller
- Microsoft.gethelp
- microsoft.getstarted
- Microsoft.heifimageExtension
- Microsoft.microsoft3dviewer
- Microsoft.microsoftofficehub
- Microsoft.microsoftsoltairecollection
- Microsoft.microsoftstickynotes
- Microsoft.mixedreality.portal
- Microsoft.mspaint
- Microsoft.Office.Ononote
- Microsoft.People
- Microsoft.screensketch
- Microsoft.skypeapp
- Microsoft.storepurchaseapp
- Microsoft.wallet
- Microsoft.webmediaextensions
- Microsoft.WebPimageExtension
- Microsoft.windowsalarms
- Microsoft.WindowsCamera
- Microsoft.WindowsCommunicationApps
- Microsoft.WindowsFeedBackHub
- Microsoft.windowsmaps
- Microsoft.SoundRecorder
- microsoft.xbox.tcui
- Microsoft.xboxApp
- Microsoft.xboxgameoverlay
- Microsoft.xboxgamingoverlay
- Microsoft.xboxIdentityProvider
- Microsoft.speechtotextoverlay
- Microsoft. yourphone
- Microsoft.ZuneMusic
- Microsoft.Zunevideo
其他提示
显然,您可以拼写整个过程,以逐行删除这些UWP应用程序,但是为什么这样做呢?使用数组作为PowerShell命令的一部分,将允许一个可重复的过程,您可以通过受控方法删除所需的所有UWP应用程序。
设置:
$ packages = @((
“ app1”,
“ app2”,
“ETC。”
)
例子:
$ packages = @((
“ Microsoft.microsoftsoltairecollection”,
“ Microsoft.wallet”,
“ETC。”
)
配置应用命令:
foreach($ packages中的$ package){
get -appxprovisionedpackage -Online |
displayName -eq $ package |
remove -appxProvisionedPackage -ONLINE
}
安装应用命令:
foreach($ packages中的$ package){
get -appxpackage -name $ package -allusers |
删除appxpackage
}
还有我的最爱!如果您想从图形列表中选择想要的应用程序,那也是可以实现的!
使用命令get -appxprovisionedpackage -Online |离格视图-PassThru |remove -appxProvisionedPackage -ONLINE用于提供的软件包。
使用命令get -appxpackage -allusers |离格视图-PassThru |删除appxpackage用于安装的软件包。
这些将每个人都会提出一个多选择的(ctrl+click)图形接口,一旦好的单击按钮,将为您删除这些应用程序。
下一步是什么?
这篇文章涵盖了与操作系统优化有关的Microsoft Store,但是任何开发人员都可以将Microsoft Store作为其应用程序部署的一部分使用。因此,我们建议您定期或在每个应用程序安装之后检查所有已提供和安装的应用程序,以验证已添加或尚未添加新条目。如果有目的,请审核它们,然后根据需要删除或保留它们。
下一篇博客文章将讨论服务和计划的任务。尽管多样化,这些主题会极大地影响您的经验,应考虑到任何优化任务。如果您需要帮助优化VDI或DAAS图像,请查看我们的XPERT服务模板图像创建和优化服务。
杰克·诺曼(Jake Norman)是Nutanix专业服务的高级顾问。他已经成为专业服务团队的一员已有近2年了,在此之前,他在众多专注于EUC和UX工作的不同环境中度过了15年以上。
©2021 Nutanix,Inc。保留所有权利。Nutanix,Nutanix徽标和所有Nutanix产品,此处提到的功能和服务名称是美国和其他国家的Nutanix,Inc。的注册商标或商标。本文提到的其他品牌名称仅用于识别目的,可能是其各自持有人的商标。这篇文章可能包含指向不属于Nutanix.com一部分的外部网站的链接。Nutanix不控制这些站点,并对任何外部站点的内容或准确性不承担所有责任。我们决定链接到外部站点的决定不应被视为对该站点上任何内容的认可。本文中包含的某些信息可能与从第三方来源以及我们自己的内部估计和研究获得的研究,出版物,调查和其他数据有关。尽管我们认为这些第三方研究,出版物,调查和其他数据是在本文之日起可靠的,但它们尚未独立验证,并且我们对任何信息的充分性,公平性,准确性或完整性都没有任何陈述从第三方来源获得。
这篇文章可能包含明确和暗示的前瞻性陈述,这些陈述不是历史事实,而是基于我们当前的期望,估计和信念。此类陈述的准确性涉及风险和不确定性,并取决于未来的事件,包括可能无法控制的事件,实际结果可能与此类陈述所预期的或暗示的事件可能存在重大差异。本文所包含的任何前瞻性陈述仅在此期开始,除了法律要求外,我们没有义务更新或修改任何此类前瞻性陈述,以反映后续事件或情况。