The “Hey, Scripting Guys!” blog has been retired. There are many useful posts in this blog, so we keep the blog here for historical reference. However, some information might be very outdated and many of the links might not work anymore.
New PowerShell content is being posted to the
PowerShell Community
blog where members of the community can create posts by submitting content in the
GitHub repository
.
July 26th, 2013
Summary
: Microsoft Scripting Guy, Ed Wilson, talks about using Windows PowerShell to look at modern apps in Windows 8.
Microsoft Scripting Guy, Ed Wilson, is here. One of the things I love about Windows 8 (including my Surface RT) are the modern apps. They are, well, just so modern. Of course, what I really like about them are the Windows PowerShell cmdlets that are part of the Appx module. Here are the cmdlets and functions from that module:
PS C:\> Get-Command -Module appx
CommandType Name ModuleName
———– —- ———-
Function Get-AppxLastError Appx
Function Get-AppxLog Appx
Cmdlet Add-AppxPackage Appx
Cmdlet Get-AppxPackage Appx
Cmdlet Get-AppxPackageManifest Appx
Cmdlet Remove-AppxPackage Appx
Using Get-AppxPackage
I can use the
Get-AppxPackage
cmdlet to view application packages for my current user ID. But If I want to view packages from all users, I need to start Windows PowerShell with Admin rights. To see all of the modern apps that are installed for my sign-in ID, I use the
Get-AppxPackage
cmdlet with no parameters. An example of this is shown here:
Because the cmdlet displays packages for my current sign-in ID, the output does not include user information by default. When I use the
–AllUsers
switch,
PackageUserInformation
becomes available, as shown here:
Get-AppxPackage –AllUsers
The command and the associated output are shown in the image that follows.
I can also specify a particular user. This user can be from the domain (if the computer is domain-joined), or it can be from the local account database. In the following example, I choose a user from the local account database. The syntax is computername\username.
Get-AppxPackage -User edlt\ed
Note
Like when I use the cmdlet to retrieve current sign-in user information,
PackageUserInformation
does not display by default when retrieving specific user information.
The cool thing is that with Windows PowerShell, I can also sort by group and do any parsing that I feel I should do. For example, I might want to see how many different users installed modern applications on this computer. I do this by using the
–Unique
switch in conjunction with the
Select-Object
cmdlet as follows:
Get-AppxPackage -AllUsers | select packageuserinformation –Unique
The command and its associated output are shown here:
It also appears that I have several packages that are already downloaded, but not yet installed. I see this by looking at “Unknown user: Staged.” So I query for all users, and I select the name and version of the product when the user contains the word “staged.” Here is the command and the associated output:
PS C:\> Get-AppxPackage -AllUsers | where packageuserinformation -match staged |
select name, version
Name Version
—- ——-
5269FriedChicken.YouTubeVideosDownloader 1.0.0.132
24264Craftbox.Showtime 6.0.0.19
LenovoCorporation.LenovoSettings 1.2.0.13723
PixelTuckerPtyLtd.MetroTwit 1.0.0.126
PixelTuckerPtyLtd.MetroTwit 1.0.0.127
Because I see there are two copies of MetroTwit staged, I decide to look at information concerning my version of MetroTwit. To do this, I use the
–Name
parameter as shown here:
PS C:\> Get-AppxPackage -Name *metrotwit*
Name : PixelTuckerPtyLtd.MetroTwit
Publisher : CN=34979D06-CC5C-48B5-BB2F-8EF70E1A425E
Architecture : Neutral
ResourceId :
Version : 1.0.0.116
PackageFullName : PixelTuckerPtyLtd.MetroTwit_1.0.0.116_neutral__5kbmb3e034y6r
InstallLocation : C:\Program Files\WindowsApps\PixelTuckerPtyLtd.MetroTwit_1.0.0.1
16_neutral__5kbmb3e034y6r
IsFramework : False
PackageFamilyName : PixelTuckerPtyLtd.MetroTwit_5kbmb3e034y6r
PublisherId : 5kbmb3e034y6r
Cool. I see that I am using an older version of MetroTwit. I already have two updated versions on my system, and I simply need to upgrade the package.
Well, that is all there is to exploring Appx packages with Windows PowerShell. Join me tomorrow when I will talk about more cool Windows PowerShell stuff.
I invite you to follow me on
Twitter
and
Facebook
. If you have any questions, send email to me at
[email protected]
, or post your questions on the
Official Scripting Guys Forum
. See you tomorrow. Until then, peace.
Ed Wilson, Microsoft Scripting Guy
Weekend Scripter: Use PowerShell to Uninstall Modern Apps
Summary: Microsoft Scripting Guy, Ed Wilson, talks about uninstalling modern apps.
Microsoft Scripting Guy, Ed Wilson, is here. It is the weekend here in Charlotte, North...
0 comment