引子(?):
我从消费者预览版开始使用的win8,大概是因为我年龄不大的缘故,我很快熟悉了这个操作系统并习惯了使用windows8的Modern App。我之前使用过一个叫Windows8 Modern UI小应用删除卸载管理器的应用软件对我的windows8 app进行管理(破解,离线部署之类的),之前感觉还不错,但是直到我后来升级到windows8.1后,我再次使用此软件后,被处理过的软件就打不开了。百度后发现,这是应用程序损坏的情况。
于是这就验证了那个软件对新系统是不兼容的吧,我也就不敢再用那个软件了。但是那个软件已经照成我的app损坏了一大半,运行闪退甚至没图标之类,我试着使用自带的卸载,最后图标消失,但是重新安装是不可以安装的,实际检测我是没有卸载干净。那么,如何修复呢?
PowerShell使用:
根据网上的说法,我可以使用win8.1附带进去的PowerShell进行管理以对app进行手动卸载,操作是这样的:
1、Add-AppxPackage 用途:安装一个appx程序包。 语法:Add-AppxPackage [–DependencyPath <依赖的包路径>] 举例:Add-AppxPackage D:\AppxSource\MyAppx.appx 2、Add-AppxProvisionedPackage 用途:设置应用程序到计算机。 举例:Add-AppxProvisionedPackage -Online -FolderPath D:\Appx 说明:将应用程序设置到计算机,所有的用户都将默认安装此APPX包。 3、Get-AppxPackage 用途:获取应用程序清单 举例: Get-AppxPackage -AllUsers #获取所有用户安装的APPX包 Get-AppxPackage -Name Package1 -User domain\username #获取指定域下面的指定用户的指定包 4、Get-AppxPackageManifest 用途:获取应用程序包的详细信息 举例: Get-AppxPackageManifest -Package Package1 5、Remove-AppxPackage 用途:卸载一个appx程序包。 语法:Remove-AppxPackage <包名> 举例:Remove-AppxPackage MyAppx 6、Remove-AppxProvisionedPackage 用途:移除计算机对包的设置 举例:Remove-AppxProvisionedPackage -Online -PackageName MyAppxPkg 说明:移除之后,新建用户不再安装此包,但已经安装此包的用户,不会被删除。
于是我就又可以部署离线appx了。之后我突然有想法要写一个方便卸载appx的小应用,之后却发现有这样的问题,执行需要使用管理员身份才能进行操作,而程序获取了管理员权限后,程序启动的进程就不是当前用户而是管理员用户去启动进程了。(可以在任务管理器中查看到进程的用户名是管理员)。这时,卸载操作会卸载所属进程(管理员)账户上的appx应用,那么这样无法达到管理效果。
至于这个问题,目前没有找到解决方案,找到后我会来补全的。。。
顺便,csdn的文章审核真是让我感觉到不方便呢。。