My ISVs have been talking about how to expose methods in their application to sorta process data similar to batch processing.

PowerShell can be used to help batch process your applications through scripting. This has a couple steps. First is seeing how PowerShell uses cmdlets to pipe data in the same way as cmd.exe, or KSH or BASH. The big difference is that PowerShell allows you to access .NET inside cmdlets. And you can also access data in your own app.

For an introduction to PowerShell, check out PowerShell for developers. And to see what script looks like, here's an example of how someone scripted moving files between folder based on the date of the file.

You can see how to pipe data using Powershell, or move it from one method to the next within a script.

The second step is to be able to access your application's data and method through PowerShell. If you expose a data store that the user will need to access, you might need to write your own Windows PowerShell provider, as described in How to Create a Windows PowerShell Provider. So you can expose your API to PowerShell in the same way that Microsoft exposed the all of .NET.

You can access web services too from PowerShell cmdlets. So if your application exposes its API through web services, you can script it as well. You can write a batch process in script that access web services in your application. Or you can script WCF. Either way, you can access the important methods in your application with a little amount of additional work.

It just seems to me that this might be a great way to pull together functionality and empower ITPros to do their jobs with your application.

PowerShell is part of Windows Server 2008. You can learn more on the PowerShell team blog too.