This is a very basic plugin for Microsoft Command Shell Beta 1 (MSH aka Monad) to reach WinFS data stores. Each WinFS store appears as a "drive" in MSH. This is a readonly plugin. Sources and binaries are also included.
Requirements:
- WinFX Beta 1 SDK (available
here)
- Microsoft Command Shell Beta 1 (contained within the WinFX Beta 1 SDK)
- WinFS Beta 1 (available to MSDN subscribers)
written in VS2k5 beta 2
There is a screen shot of this whithin the zip file.
EDIT1:
The get-winfsitem Cmdlet supports WinFS OPath queries now. A sample:
MSH> get-winfsitem "Extent(@0).Filter(Container.GetPath() = @1)" ([System.Storage.Item]) "\Users" | ft -a ShellPath, {$_}, ItemSize, SizeX, SizeY, Comments
As seen, the first argument is the OPath query expression and the remaining arguments are the positional parameters for the query expression.
EDIT2:
The get-winfsitem Cmdlet can return any object now. This means, it can write StorageRecord to the pipeline as well, if the OPath query contains "Project"-ing constructs.
MSH> get-winfsitem "Extent(@0).Top(5).Project(FullName.GivenName as gn, FullName.Surname as sn)" ([System.Storage.Contacts.Person]) | ft -a {$_["gn"]}, {$_["sn"]}
EDIT3:
The built-in WinFS Schema assemblies are preloaded correctly now. If you want to preload your custom schema assembly, use one of the following commands:
[Reflection.Assembly]::LoadFile("filepath")
[Reflection.Assembly]::Load("assembly strong name")
You can check the loaded assemblies this way:
[AppDomain]::CurrentDomain.GetAssemblies()