使用PowerShell管理Windows8应用
引子(?):
我从消费者预览版开始使用的win8,大概是因为我年龄不大的缘故,我很快熟悉了这个操作系统并习惯了使用windows8的Modern App。我之前使用过一个叫Windows8 Modern UI小应用删除卸载管理器的应用软件对我的windows8 app进行管理(破解,离线部署之类的),之前感觉还不错,但是直到我后来升级到windows8.1后,我再次使用此软件后,被处理过的软件就打不开了。百度后发现,这是应用程序损坏的情况。
于是这就验证了那个软件对新系统是不兼容的吧,我也就不敢再用那个软件了。但是那个软件已经照成我的app损坏了一大半,运行闪退甚至没图标之类,我试着使用自带的卸载,最后图标消失,但是重新安装是不可以安装的,实际检测我是没有卸载干净。那么,如何修复呢?
PowerShell使用:
根据网上的说法,我可以使用win8.1附带进去的PowerShell进行管理以对app进行手动卸载,操作是这样的:
- 打开PowerShell
- 使用get-appxpackage指令获取已安装appx列表
- 复制所需卸载的appx的完整包名称(PackageFullName)
- 使用指令remove-appxpackage [完整包名称] 卸载
如果你觉得这个描述不是很清楚,你可以参考这篇文章来进行操作。不过那个文章存在少许错误,这里顺带说一下:
- 你可以通过右键左下角的win图标或者按Winkey+X打开菜单并选择启动PowerShell,当然如果你的菜单里没有此选项,请右键任务栏,点击属性并在“导航选项卡”勾选边角导航的第三个选择框(一看就知道了)。
- 使用get-appxpackage可以获取已经安装的应用列表,当然,直接使用appxpackage指令也可以,效果一样
- PowerShell中,复制的操作方法是先用鼠标左键选中需要复制的内容,然后再内容附近点鼠标右键即可,Ctrl+C没效果...粘贴的话在输入指令那一行右键就可以了
执行完毕后所卸载的程序就被完整卸载了,这时去应用商店重新下载就好了。于是为了实现离线部署,我又了解了一下PowerShell中appxpackage的其他用法:
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的文章审核真是让我感觉到不方便呢。。
使用PowerShell管理Windows8应用的更多相关文章
- 【转】PowerShell入门(十二):编写PowerShell管理单元和二进制模块
转至:http://www.cnblogs.com/ceachy/archive/2013/03/13/PowerShell_SnapIn.html PowerShell一开始就提出利用管理单元来实现 ...
- Azure PowerShell (4) 使用PowerShell管理多个订阅
<Windows Azure Platform 系列文章目录> 笔者手上有两个Azure账户. - Azure Global (windowsazure.com)账户.有两个订阅. - 世 ...
- 使用 Windows PowerShell 管理Windows Azure映像
你可以使用 Azure PowerShell 模块中的 cmdlet 管理可供你的 Azure 订阅使用的映像.这包括 Azure 提供的映像以及你上载的映像.对于某些映像任务,你还可以使用 Azur ...
- 使用 Azure PowerShell 管理 Azure 虚拟网络和 Windows 虚拟机
Azure 虚拟机使用 Azure 网络进行内部和外部网络通信. 本教程介绍了如何在虚拟网络中创建多个虚拟机 (VM),以及如何在虚拟机之间配置网络连接. 你将学习如何执行以下操作: 创建虚拟网络 创 ...
- 使用 PowerShell 管理 Azure 磁盘
Azure 虚拟机使用磁盘来存储 VM 操作系统.应用程序和数据. 创建 VM 时,请务必选择适用于所需工作负荷的磁盘大小和配置. 本教程介绍如何部署和管理 VM 磁盘. 学习内容: OS 磁盘和临时 ...
- PowerShell管理Azure
PowerShell第一次连接Azure1.下载Azure SDK,安装azure powershell http://azure.microsoft.com/zh-cn/downloads/?rnd ...
- 如何使用PowerShell管理Windows服务
[TechTarget中国原创] 作为一名系统管理员,最常见的任务之一就是学会管理Windows服务,这是保证Windows服务器和客户端正常运行的重要内容. 许多操作系统和应用程序都依赖于这些服务. ...
- 使用powershell管理域用户
在域内环境中,常常需要使用命令行管理域用户,此时可以使用Active Directory中的命令行工具Dsquery.exe,或CSVE,以及Ldifde等,其实,使用Windows Powershe ...
- PowerShell管理Exchange
#添加Exchange管理单元get-pssnapin -registeredadd-pssnapin microsoft.exchange* #启用邮箱账号(需要域管理员权限,因为需要将某些属性写入 ...
随机推荐
- JS获取request字符串
function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...
- JSP总结1
JSP: JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动 ...
- [Linked List]Copy List with Random Pointer
Total Accepted: 53943 Total Submissions: 209664 Difficulty: Hard A linked list is given such that ea ...
- C++ 开源库
1.C++各大有名库的介绍——C++标准库 2.C++各大有名库的介绍——准标准库Boost 3.C++各大有名库的介绍——GUI 4.C++各大有名库的介绍——网络通信 5.C++各大有名库的介绍— ...
- 【Tika基础教程之一】Tika基础教程
一.快速入门 1.Tika是一个用于文本解释的框架,其本身并不提供任何的库用于解释文本,而是调用各种各样的库,如POI,PDFBox等. 使用Tika,可以提取文件中的作者.标题.创建时间.正文等内容 ...
- HTML5 Web存储(Web Storage)技术及用法
在如今的Web开发中,HTML5是大家讨论的最大一个话题.HTML5提供的新功能特征使得Web程序员如虎添翼,并免去了以往钻研各种方法来让网站更好.更快.更灵活的气力.这些新功能中有一个非常让我感兴趣 ...
- Canvas的补充
一.Canvas.save()作用:让后续的操作就好像在一个新图层上. 二.Canvas.restore():让之前save()产生的图层全部合并. 三.Canvas.translate():将原点( ...
- VMware下设置CentOS虚拟机与主机同一网段
由于在开发中经常使用到自己的电脑搭建虚拟机器进行个人开发,而虚拟机器每次登录所使用的命令行界面比较小,看起来也不舒服.以下主要对centos虚拟机器下配置与主机共享同一网段IP,通过第三方软件(put ...
- ArrayList的contains方法(转)
今天在用ArrayList类的caontains方法是遇到了问题,我写了一个存放User类的ArrayList 但在调用list.contains(user)时总是返回false. 去看了下Arra ...
- JVM的体系结构——JVM之三
JVM的内部体系结构分为四部分, (1)类装载器(ClassLoader)子系统 作用: 用来装载.class文件 (2)执行引擎 作用:执行字节码,或者执行本地方法 (3)垃圾回收子系统 作用:垃圾 ...