Getting Started with Microsoft Ecosystem Metadata Exchange

If you're a developer who has ever dealt with Windows Error Reporting you'll have used the AppMap tool and the WinQual site at some point to create product definitions that allow you to retrieve information about product crashes in the wild. What you might only just have found out is that these have recently been replaced - WinQual is now part of Dev Center, and AppMap has now become the Microsoft Ecosystem Metadata Exchange (I'm sure they didn't just name it so they could give it the acronym MEME :-)).

How do I get hold of Microsoft Ecosystem Metadata Exchange?

Download Microsoft Ecosystem Metadata Exchange - you'll need to be logged into Dev Center. Or if you'd rather find the link yourself find the "Product Mapping Tool" link on the Reports page.

Where are my old products?

They're still available and have been ported to MEME - open it up and you'll be able to manage your existing products as well as adding/removing new ones.

What's changed?

  • MEME stores a lot more information about each file - a signature for each file, company and product name information
  • You can now group products together in MEME using product groups
  • MEME now has a field that allows you to specify third party components instead of just not specifying them at all

Can Microsoft Ecosystem Metadata Exchange run from the command line?

Not in the same way as AppMap. MEME does come with a PowerShell interface, but you'll need to write your own scripts to get it working.

What PowerShell Cmdlets does Microsoft Ecosystem Metadata Exchange have?

There are commands to create products, product groups and files, as well as exporting and importing the new style EMX product mapping files:

  • Add-DriverFile
  • Add-Product
  • Add-ProductFile
  • Add-ProductGroup
  • Clear-Metadata
  • Export-Metadata
  • Get-DriverFile
  • Get-Product
  • Get-ProductFile
  • Get-ProductGroup
  • Import-Metadata
  • Merge-Metadata
  • New-DriverFile
  • New-Product
  • New-ProductFile
  • New-ProductGroup
  • Remove-DriverFile
  • Remove-Product
  • Remove-ProductFile
  • Remove-ProductGroup
  • Set-Metadata

PowerShell Example

The following script:

  • Create a product
  • Selects files in a path that have been signed with a certificate belonging to the product owners company
  • Adds each file to the product
  • Exports the product mapping file


[CmdletBinding()]
Param (

[Parameter(Mandatory=$True, Position=0)]
[string]$productName,

[Parameter(Mandatory=$True, Position=1)]
[string]$productVersion,

[Parameter(Mandatory=$True, Position=2)]
[string]$productPath,

[Parameter(Mandatory=$True, Position=3)]
[string]$outputFile,

)

Import-Module MetadataExchange

$product = New-Product -Name $productName -Version $productVersion
Add-Product -Product $product

$executables = @(".exe", ".dll", ".ocx")

$files = Get-ChildItem $productPath -Recurse | Where-Object { $executables -contains $_.Extension } | Get-AuthenticodeSignature
$internalFiles = $files | Where-Object { $_.SignerCertificate -like "*My Company*" }
$externalFiles = $files | Where-Object { $_.SignerCertificate -notlike "*My Company*" }

$productFiles = $internalFiles | New-ProductFile
Add-ProductFile -Product $product -ProductFile $productFiles

$productFiles = $externalFiles | New-ProductFile
$productFiles | ForEach-Object { $_.IsThirdParty = $true }
Add-ProductFile -Product $product -ProductFile $productFiles

Export-Metadata -Path $outputFile

Can I upload product mappings using PowerShell?

At the time this was written - no. But the UI does allow mappings to be uploaded, and support for PowerShell is possible in the future.

Microsoft Ecosystem Metadata Exchange

Comments

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
By submitting this form, you accept the Mollom privacy policy.