我正在处理的脚本出错,取消了某些Win10 bloatware应用程序的配置。
第97行的字符17是下面发现的Remove-AppxProvisionedPackage
的第一个字符。
相关变量:
$Logfile = "$Env:SystemRoot\Temp\RemoveApps_$($Buildnr).log"
{WriteHostFile
是一个仅将文本同时发送到终端和$Logfile
的功能。
这是在最新的Windows 10 Pro系统上使用的脚本,该脚本是Powershell .ps1脚本。
我已经研究了$Logfile
,它不仅是被创建的,而且Removing Provisioned Package: $ProPackageFullName
也会按预期被附加。可以修改日志文件,并且WriteHostFile
函数可以正常工作。 (另外,我知道这是一个不好的var名称。稍后我将使其变得更明智。)
老实说,我不确定我还能尝试什么,否则我不会在这里问。
# Removes app from provisioning
if ($ProPackageFullName) {
WriteHostFile "Removing Provisioned Package: $ProPackageFullName"
start-sleep -Seconds 5
Remove-AppxProvisionedPackage -online -packagename $ProPackageFullName | Out-File -FilePath $Logfile -Append -Encoding ascii
错误:
Remove-AppxProvisionedPackage : The system cannot find the path specified.
At [redacted directory]\RemoveApps.ps1:97 char:17
+ ... Remove-AppxProvisionedPackage -online -packagename $ProPa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Remove-AppxProvisionedPackage], COMException
+ FullyQualifiedErrorId : Microsoft.Dism.Commands.RemoveAppxProvisionedPackageCommand
该错误仅发生在实际卸载的软件包上。此代码段包含在一个foreach循环中,该循环首先检查软件包是否已安装。
我现在注意到我正在测试的两台机器之间的差异。 在第一个运行PowerShell 5.1内部版本18362修订版145的脚本中,脚本可以正常工作-按预期删除应用程序。 在第二个运行PowerShell 5.1内部版本17134修订版228的脚本中,会产生上述问题。
答案 0 :(得分:0)
没有那么复杂。
# "remove-appxpackage -allusers" only works starting in windows 10 version 1809,
# otherwise works on current user
# "remove-appxpackage -user" does not work
# remove installed apps starting with "a"
get-appxpackage -allusers a* | remove-appxpackage -whatif -allusers
# this would ONLY delete the a* apps for the current user
get-appxpackage -allusers a* | remove-appxpackage -whatif
# remove-appxprovisionedpackage has no -whatif option
# remove "to be installed apps for new users" starting with "a"
Get-AppxProvisionedPackage -Online | where displayname -like a* |
Remove-AppxProvisionedPackage -Online