Windows IT Pro is the authoritative and independent resource for windows nt, windows 2000, windows 2003, windows xp. Features a collection of resources and magazines for windows IT professionals.
  
  
  Advanced Search 


May 02, 2008

Q. How do I talk to COM objects or MSAgents in PowerShell?


RSS
Subscribe to Windows IT Pro | See More Tips Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

A. The Microsoft Agents are just COM objects, which means we can hook into them from anything that supports COM, which includes PowerShell. Run the following commands to see Merlin in action:

PS C:\Users\john.SAVILLTECH> $agent = new-object -com Agent.Control.2
PS C:\Users\john.SAVILLTECH> $agent | get-member
TypeName: System.__ComObject#{8563ff20-8ecc-11d1-b9b4-00c04fd97575}

Name MemberType Definition
---- ---------- ----------
ShowDefaultCharacterProperties Method void ShowDefaultCharacterProperties (Variant, Variant)
AudioOutput Property IAgentCtlAudioObjectEx AudioOutput () {get}
Characters Property IAgentCtlCharacters Characters () {get}
CommandsWindow Property IAgentCtlCommandsWindow CommandsWindow () {get}
Connected Property bool Connected () {get} {set}
PropertySheet Property IAgentCtlPropertySheet PropertySheet () {get}
RaiseRequestErrors Property bool RaiseRequestErrors () {get} {set}
SpeechInput Property IAgentCtlSpeechInput SpeechInput () {get}
Suspended Property bool Suspended () {get}


PS C:\Users\john.SAVILLTECH> $null = $agent.connected = 1
PS C:\Users\john.SAVILLTECH> $null = $agent.Characters.Load("Merlin")
PS C:\Users\john.SAVILLTECH> $null = $merlin = $agent.Characters.Character("Merlin")
PS C:\Users\john.SAVILLTECH> $null = $merlin.show()
At this point Merlin is visible and you can drag him around as shown in the figure:
http://www.windowsitpro.com/Common/adforceimages/powershellagent.jpg
You can then have a little fun using the following code:
PS C:\Users\john.SAVILLTECH> $null = $merlin.MoveTo(250, 250, 1)
PS C:\Users\john.SAVILLTECH> $null = $merlin.Play("DoMagic1")
PS C:\Users\john.SAVILLTECH> $null = $merlin.Play("DoMagic2")
PS C:\Users\john.SAVILLTECH> $null = $merlin.Speak("NTFAQ rocks")
PS C:\Users\john.SAVILLTECH> $null = $merlin.think("Complete Guide to Windows Server 2008 is cool")
PS C:\Users\john.SAVILLTECH> $null = $merlin.Hide()
PS C:\Users\john.SAVILLTECH> $merlin = $null
PS C:\Users\john.SAVILLTECH> $agent = $null

You can also pipe information to an agent. For example, the agent could speak out alerts or output. For example, to find and speak the names of all processes with more than 1000 handles, use this command:
PS C:\Users\john.SAVILLTECH> $null = Get-process | Where { $_.handles -gt 1000 } | sort handles | foreach {$merlin.speak($_.Proc
essName + " has " + $_.handles + " handles.")}

See the Figure to see how this works.

http://www.windowsitpro.com/Common/adforceimages/powershellagenhandles.jpg

End of Article



Reader Comments

You must log on before posting a comment.

If you don't have a username & password, please register now.




Top Viewed ArticlesView all articles
CES 2009: Ballmer Announces Windows 7, Windows Live, Live Search Milestones

During his first-ever Consumer Electronics Show (CES) 2009 keynote address last night in Las Vegas, Microsoft CEO Steve Ballmer announced the pending public availability of a feature-complete Windows 7, the final version of Windows Live Essentials, and ...

Command Prompt Tricks

One reader shares his tip for setting up the command prompt to reflect a remote path. ...

Where is Microsoft NetMeeting in Windows XP?

...


Windows OSs Whitepapers Why SaaS is the Right Solution for Log Management

Related Events Virtualization Forum: Optimizing Storage, Networks, Desktops, and Security

Cloud Computing Forum: Integrating Software, Server and Storage as a Service into Your Enterprise IT Delivery Model

Virtualization Forum: Optimizing Storage, Networks, Desktops, and Security

Check out our list of Free Email Newsletters!

Scripting eBooks Keeping Your Business Safe from Attack: Encryption and Certificate Services

Best Practices for Managing Linux and UNIX Servers

Building an Effective Reporting System

Related Scripting Resources Become a VIP member of the Windows IT Pro community!
Get it all with the VIP CD and VIP access. A $500+ value for only $279!

Subscribe to Windows IT Pro!
Solve your toughest technical problems with our experts and access 10,000 + articles online. 30% off

Monthly Online Pass - Only $5.95!
Get instant access to 10,000+ articles from Windows IT Pro Magazine!

TechNet Virtual Labs
Evaluate and test Microsoft's newest products.


Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro Windows Dev Pro IT Job Hound ITTV
IT Library Technology Resource Directory Connected Home Windows Excavator Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 Copyright © 2009 Penton Media, Inc., All rights reserved. Terms and Use | Privacy Statement | Reprints and Licensing