【发布时间】:2019-07-18 08:36:13
【问题描述】:
我正在处理的脚本出现错误,该脚本会取消配置一些 Win10 过时软件应用程序。
第 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 build 18362 修订版 145,脚本正常工作 - 按预期删除应用程序。 第2次,运行PowerShell 5.1 build 17134 revision 228,脚本出现上述问题。
【问题讨论】:
-
Get-AppXProvisionedPackage -Online是否列出了您要删除的软件包?如果是这样,如果您从该命令中获取目标包并将其通过管道传输到Remove-AppxProvisionedPackage -online会发生什么? -
为我工作。必须是管理员。包名对吗?
Remove-AppxProvisionedPackage -Online -PackageName Microsoft.ZuneMusic_2019.19011.11311.0_neutral_~_8wekyb3d8bbwe -
是的,正在删除的应用程序已安装。但是我刚刚发现没有出现错误的应用程序都没有安装,而出现错误的应用程序都是。在此之前我有更多代码可以在尝试卸载之前检测包是否已安装。软件包名称是正确的,并且在卸载之前会对其进行修剪,以防万一之前和之后的奇怪内容(例如
19011.11311.0_neutral_~_8wekyb3d8bbwe)发生变化。我有一个早期版本的脚本,但现在我不确定出了什么问题。我不记得修改过这段代码。 -
我呃,我才意识到我之前确实编辑过这个部分。
$PackageFullName = (Get-AppxPackage $App -AllUsers).PackageFullName是我声明该变量的原因。我添加了-AllUsers,因为它并没有为所有用户卸载应用程序,事后看来,我是个白痴,我认为这可以在一个用作字符串而不是数组的变量中工作。 -
而且.. 由于某种原因,即使在修复该问题后,问题仍然存在。仍然没有卸载,仍然是同样的错误,在同一行和字符上。
标签: powershell windows-10