PowerGUI 2.2 public beta is now available!
Today we released a public beta of our upcoming PowerGUI 2.2 release. This beta includes a very significant change to our debugger as well as compatibility support with version 1.4 of the Quest AD cmdlets. Here are a few of the improvements that come with the new debugger:
- Native support for the PowerShell 2.0 debugger, including command-line management of breakpoints using Disable-PSBreakpoint, Enable-PSBreakpoint, Get-PSBreakpoint, Remove-PSBreakpoint and Set-PSBreakpoint;
- Advanced breakpoint support such as command and variable breakpoints through the PSBreakpoint cmdlets;
- $MyInvocation support in scripts that you are debugging (this has been an issue we have wanted to fix for a long time)
- Start-Job and Invoke-Command support in scripts that you are debugging (this was another issue that had to be worked around that is fixed by the new debugger);
This is the first public beta that we have had in a while, so I want to make sure everyone interested knows how the beta works. It’s a pretty straightforward process, as follows:
- If you are interested in trying out the beta, go to the beta download page and follow the instructions to download and install the beta. If you are using PowerGUI 2.1.1, it will automatically be upgraded when you install the beta.
- Use the beta just like you would use the previous version of PowerGUI.
- If you run into any issues, please notify us on the PowerGUI 2.2 public beta forum.
That’s pretty much it. I should also note that auto-update from the beta version of PowerGUI 2.2 to the RTM version of PowerGUI 2.2 will be supported.
We’re looking forward to your feedback, so please download the beta and let us know what you think!
Kirk out.
PowerGUI Script Editor Essentials
Have you ever thought to yourself that it would be great if the PowerGUI Script Editor would allow you to…
How about if it would allow you to…
…view white space characters (tabs and spaces); or
…move the cursor through the whitespace outside of a document while you edit the same column in multiple lines in your script; or
…zoom in or out using Ctrl+Add or Ctrl+Subtract so that you can adjust the font as necessary during presentations?
Some of these features were requested by members of our community, and others are features that I have wished for at one point or another. As of today you can get all of these features in the PowerGUI Script Editor by simply downloading and installing the Script Editor Essentials Add-on!
How do I do that you ask? Simply visit the Script Editor Essentials Add-on page and follow the installation instructions. It shouldn’t take more than a few minutes to set up. Once you have it set up, you can start using the new features right away. For example, to enable the new features that affect your open documents, take a look at the new menu items in the Edit | Advanced menu:

That menu allows you to enable the view white space, word wrap, or virtual white space features. If you enable view white space, you’ll see tabs appear as arrows and spaces appear as dots, like in this screenshot:

You can also turn on word wrap, which is great when working with documents that contain long lines of PowerShell script (unless you like scrolling back and forth horizontally when reading script lines). It even shows a small arrow at the end of any lines that are wrapped, making it easier to distinguish between lines that wrap and lines that don’t:

All of these features can be turned on at the same time, allowing you to customize your experience for your needs, and the configuration is saved so that it persists between sessions. Here’s another screenshot showing the virtual white space feature, which allows you to place the cursor anywhere on any line (normally you cannot place the cursor beyond the end of a line):

This feature can come in quite handy when you are modifying script on multiple lines in a similar column position, and when those lines aren’t necessarily adjacent to one another (I’ve had this experience which made me wish for this feature myself).
Do you ever show PowerShell to others, either via the web using desktop sharing or LiveMeeting or perhaps during presentations? Being able to zoom in and zoom out on the fly can be useful if you do, so you may like these new menu items:

They will increase or decrease the font size in the open documents as well as in the embedded PowerShell console by 1. You can do this without this Add-on today by using Ctrl while moving your mouse wheel, but it is can be very difficult to control depending on your mouse sensitivity and it increases or decreases the font size by 10% instead of by a fixed value, plus it sets all fonts to the same font, which may not give you the results you are looking for (if you use the Blue Console Add-on, it applies a different font to the embedded console window). The keyboard shortcuts for these menu items are very useful to learn if you ever show PowerShell to anyone while using the PowerGUI Script Editor.
And last, but not least, I have wanted to have multi-select support in the File Open dialog for a long time. That support is now available, and while I was adding it I also flushed out the list of file extensions to include all PowerShell file extensions plus other extensions commonly used with PowerShell. Here’s what that looks like once this Add-on is installed (you can click on the image to see it full size):
I would really appreciate any feedback that you would like to share on this (or any other) Script Editor Add-on. I’ve called this Script Editor Essentials because it contains a variety of general editor features that I think are essential for anyone using the PowerGUI Script Editor without being tied to a specific need. That doesn’t mean it contains everything that is essential though, and there are a lot of other Script Editor Add-ons available that you should take a look at to see the other options available to you to enhance your script editing experience. What features would you consider essential to you as you work with PowerShell files in the Script Editor that are not yet available in the core product or as an Add-on? Let me know in the comments or on the PowerGUI Forums so that we can make sure we’re meeting your needs.
Also, I would be remiss if I didn’t point out that this Add-on, as well as all other Add-ons, are created using PowerShell modules. There’s even an Add-on Authoring Toolkit that makes it easier to create Script Editor Add-ons, along with a tutorial showing you how you can create your own Add-ons! Creating an Add-on can be pretty easy to do, so don’t be afraid to give it a try and use the PowerGUI Forums to ask questions as needed.
Hopefully this will be a useful and welcome addition to your PowerGUI experience. Enjoy!
Kirk out.
| Share this post: |
VMware Infrastructure Management PowerPack – now with Visio 2010 support!
Tonight I have published a new version of the VMware Infrastructure Management PowerPack. This release (version 2.4.0) is the first release that provides near 100% feature parity between both PowerGUI and the Virtualization EcoShell. I say near 100% feature parity because PowerGUI supports displaying progress dialogs during calls to Write-Progress but the Virtualization EcoShell does not, so PowerGUI users have a minor leg up over the Virtualization EcoShell experience. Depending on what environment you are coming from, you will notice some of the following improvements to this PowerPack:
- Visio 2010 support for vDiagram functionality
- Charts for virtual machines, datastores, and resource configuration data
- Progress bars during the rendering of diagrams created with the vDiagram functionality
- Improved layout in the nodes in the tree
- Simplified connection logic, making it easier for you to reuse scripts generated by the PowerPack
- Additional minor bug fixes
Note that version 4.1 of the VMware PowerCLI is not supported with this release at this time, due to a number of issues. For now the only supported version of the VMware PowerCLI is version 4.0 U1.
If you are an existing user of this PowerPack, you will automatically get notified about the new version. If you haven’t looked at this PowerPack yet and you manage VMware vSphere, Virtual Center, ESX, or ESXi hosts, I strongly encourage you to give this PowerPack a try. You can download it here. It provides an excellent management experience over those VMware hosts, and it’s free!
As usual, many of the enhancements we add in these releases are based on customer feedback on the PowerGUI Forums. If you’d like to see more improvements to this PowerPack, please speak up and let us know on the forums. We’re always listening!
Kirk out.
PowerCLI 4.1: A fork in the road
Earlier this week, VMware released version 4.1 of the PowerCLI. This release brings some great improvements that the community has been waiting for, and you can read about them on the VMware PowerCLI site and a number of other blogs that have been publicizing the release. I’m not here to talk about the new features and improvements however. I’m writing this to notify you about the breaking changes that were introduced in this release that haven’t been discussed externally but that you will want to know about.
With version 4.1 of the PowerCLI, the VMware team has changed the namespaces used in the object model behind the PowerCLI. The objects themselves have stayed the same, but the namespaces have changed. This change has a number of impacts once PowerCLI 4.1 is installed, including but not limited to the following:
- Any PowerShell function that uses strongly typed parameter names with the VMware PowerCLI 4.0 or earlier type names will no longer function properly without an update.
- Any PowerShell script that uses the is or as operators with the VMware PowerCLI 4.0 or earlier type names type names will no longer function properly without an update.
- Any PowerGUI extensions (read: PowerPacks) written for PowerCLI 4.0 or earlier will no longer function properly without an update.
- Any PowerShell scripts that use the VMware PowerCLI 4.0 or earlier type names inside of Add-Type calls will no longer function properly.
In general, any code or script written that is dependent on these type names will have issues once you upgrade to PowerCLI 4.1. It also means that once these items that don’t work with 4.1 are updated, they may no longer work with PowerCLI 4.0 and earlier. Also note that these are just PowerShell-related impacts. If you’re using other languages to manage or automate VMware you need to be aware of the impacts for those languages as well.
Here are a few PowerShell-specific examples of the impact of these breaking changes:
- The PowerCLI Community Extensions won’t work with PowerCLI 4.1 until they have been updated, and once they have been updated they will not work with PowerCLI 4.0 and earlier as long as they continue to use strongly typed parameter names (which they should).
- Scripts on PoshCode like this one and this one will suffer the same fate since they use strongly typed parameters in the advanced functions.
- Blog posts like this one from Glenn Sizemore and this one by Maish Saidel-Keesing will only work with PowerCLI 4.0 and earlier unless they are updated.
- The VMware Infrastructure PowerPack for PowerGUI and the Virtualization EcoShell will return data from the nodes, however actions will not appear and icons and charts will not show up in the grid.
- The VMware Community PowerPack for PowerGUI and the Virtualization EcoShell will return data from the nodes, however actions will not appear and icons and charts will not show up in the grid.
- Any blog posts that mentions PowerCLI object types will now be out of date.
- Books like this one will contain examples that are now broken.
As you can see, the PowerCLI 4.1 release comes with changes that are pretty far reaching, and they are definitely going to cause confusion in the community. Unfortunately, since these changes are now in the wild, we’re at a fork in the road where some community contributions will only support 4.0 and earlier for a while and others, as they start supporting 4.1 and later, may only support 4.1 and later depending on how they add that support. Changes like this are never fun, so please be aware of these changes when considering when to upgrade PowerCLI in your environment.
As far as the PowerPack issues go, we will add support for the PowerCLI 4.1 release to the VMware Infrastructure PowerPack soon, but it will take a little while for us to work out the details and do the appropriate testing. Until then, please don’t upgrade the PowerCLI on your systems where you use the VMware Infrastructure PowerPack.
Thanks,
Kirk out.
Discover dormant AD accounts with the Windows Security PowerPack
Last week I had the pleasure of participating in a webinar with Randy Franklin Smith of Ultimate Windows Security fame where we demonstrated and discussed the Windows Security PowerPack that was recently published in the PowerPack Library. Randy’s a great guy to present with and this webinar was a lot of fun. Judging by the amount of questions and positive feedback we’ve received, it seemed to generate a lot of interest as well.
A recording of the webinar is now available, so if you missed catching it live you can go here and watch it at your leisure. You won’t be able to ask questions during the presentation of course, but that’s what the comments on this blog and the PowerGUI Forums are for.
Enjoy!
Kirk out.
| Share this post: |
PowerShell Quick Tip: Getting all of the members of an object
If you weren’t already aware, using the Get-Member cmdlet is essential to understanding what you can do with PowerShell. Get-Member allows you to identify the members (properties, methods, events, etc.) that are available on the objects you are working with. What some people don’t realize with Get-Member however is that by default it does not identify all members that are available on the objects that are passed into it.
For example, let’s take a look at how you might use Get-Member to see what you can do with Win32_BIOS objects, like this:
Get-WmiObject Win32_BIOS | Get-Member
That command yields the following results:
TypeName: System.Management.ManagementObject#root\cimv2\Win32_BIOS
Name MemberType Definition
—- ———- ———-
BiosCharacteristics Property System.UInt16[] BiosCharacteristics {get;set;}
BIOSVersion Property System.String[] BIOSVersion {get;set;}
BuildNumber Property System.String BuildNumber {get;set;}
Caption Property System.String Caption {get;set;}
CodeSet Property System.String CodeSet {get;set;}
CurrentLanguage Property System.String CurrentLanguage {get;set;}
Description Property System.String Description {get;set;}
IdentificationCode Property System.String IdentificationCode {get;set;}
InstallableLanguages Property System.UInt16 InstallableLanguages {get;set;}
InstallDate Property System.String InstallDate {get;set;}
LanguageEdition Property System.String LanguageEdition {get;set;}
ListOfLanguages Property System.String[] ListOfLanguages {get;set;}
Manufacturer Property System.String Manufacturer {get;set;}
Name Property System.String Name {get;set;}
OtherTargetOS Property System.String OtherTargetOS {get;set;}
PrimaryBIOS Property System.Boolean PrimaryBIOS {get;set;}
ReleaseDate Property System.String ReleaseDate {get;set;}
SerialNumber Property System.String SerialNumber {get;set;}
SMBIOSBIOSVersion Property System.String SMBIOSBIOSVersion {get;set;}
SMBIOSMajorVersion Property System.UInt16 SMBIOSMajorVersion {get;set;}
SMBIOSMinorVersion Property System.UInt16 SMBIOSMinorVersion {get;set;}
SMBIOSPresent Property System.Boolean SMBIOSPresent {get;set;}
SoftwareElementID Property System.String SoftwareElementID {get;set;}
SoftwareElementState Property System.UInt16 SoftwareElementState {get;set;}
Status Property System.String Status {get;set;}
TargetOperatingSystem Property System.UInt16 TargetOperatingSystem {get;set;}
Version Property System.String Version {get;set;}
__CLASS Property System.String __CLASS {get;set;}
__DERIVATION Property System.String[] __DERIVATION {get;set;}
__DYNASTY Property System.String __DYNASTY {get;set;}
__GENUS Property System.Int32 __GENUS {get;set;}
__NAMESPACE Property System.String __NAMESPACE {get;set;}
__PATH Property System.String __PATH {get;set;}
__PROPERTY_COUNT Property System.Int32 __PROPERTY_COUNT {get;set;}
__RELPATH Property System.String __RELPATH {get;set;}
__SERVER Property System.String __SERVER {get;set;}
__SUPERCLASS Property System.String __SUPERCLASS {get;set;}
PSStatus PropertySet PSStatus {Status, Name, Caption, SMBIOSPresent}
ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime();
ConvertToDateTime ScriptMethod System.Object ConvertToDateTime();
That’s a pretty good list of 40 members, but there are actually many more that you might like to see as well. For example, it can be useful to see the different member sets available on an object as well as any get_ and set_ methods that object has. You can see that information by using the –Force parameter with Get-Member. It can also be useful to see any hidden members that an object has, whether they come from the base member set, extended member set, or adapted member set. To see all of these hidden members, you can use the –View parameter and specify you want to see members from All views. When you put the –Force and –View parameters together, you end up with the following command:
Get-WmiObject Win32_BIOS | Get-Member -Force -View All
Running that command yields the following results:
TypeName: System.Management.ManagementObject#root\cimv2\Win32_BIOS
Name MemberType Definition
—- ———- ———-
pstypenames CodeProperty System.Collections.ObjectModel.Collection`1[[System.String, mscorlib...
Disposed Event System.EventHandler Disposed(System.Object, System.EventArgs)
psadapted MemberSet psadapted {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY, __RELPATH, __P...
psbase MemberSet psbase {Scope, Path, Options, ClassPath, Properties, SystemPropertie...
psextended MemberSet psextended {ConvertToDateTime, ConvertFromDateTime, PSStatus}
psobject MemberSet psobject {Members, Properties, Methods, ImmediateBaseObject, BaseObj...
PSStandardMembers MemberSet PSStandardMembers {DefaultDisplayPropertySet}
add_Disposed Method System.Void add_Disposed(System.EventHandler value)
Clone Method System.Object Clone()
CompareTo Method bool CompareTo(System.Management.ManagementBaseObject otherObject, S...
CopyTo Method System.Management.ManagementPath CopyTo(System.Management.Management...
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
Delete Method System.Void Delete(), System.Void Delete(System.Management.DeleteOpt...
Dispose Method System.Void Dispose()
Equals Method bool Equals(System.Object obj)
Get Method System.Void Get(), System.Void Get(System.Management.ManagementOpera...
GetHashCode Method int GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetMethodParameters Method System.Management.ManagementBaseObject GetMethodParameters(string me...
GetPropertyQualifierValue Method System.Object GetPropertyQualifierValue(string propertyName, string ...
GetPropertyValue Method System.Object GetPropertyValue(string propertyName)
GetQualifierValue Method System.Object GetQualifierValue(string qualifierName)
GetRelated Method System.Management.ManagementObjectCollection GetRelated(), System.Ma...
GetRelationships Method System.Management.ManagementObjectCollection GetRelationships(), Sys...
GetText Method string GetText(System.Management.TextFormat format)
GetType Method type GetType()
get_ClassPath Method System.Management.ManagementPath get_ClassPath()
get_Container Method System.ComponentModel.IContainer get_Container()
get_Item Method System.Object get_Item(string propertyName)
get_Options Method System.Management.ObjectGetOptions get_Options()
get_Path Method System.Management.ManagementPath get_Path()
get_Properties Method System.Management.PropertyDataCollection get_Properties()
get_Qualifiers Method System.Management.QualifierDataCollection get_Qualifiers()
get_Scope Method System.Management.ManagementScope get_Scope()
get_Site Method System.ComponentModel.ISite get_Site()
get_SystemProperties Method System.Management.PropertyDataCollection get_SystemProperties()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
InvokeMethod Method System.Object InvokeMethod(string methodName, System.Object[] args),…
Put Method System.Management.ManagementPath Put(), System.Management.Management…
remove_Disposed Method System.Void remove_Disposed(System.EventHandler value)
SetPropertyQualifierValue Method System.Void SetPropertyQualifierValue(string propertyName, string qu…
SetPropertyValue Method System.Void SetPropertyValue(string propertyName, System.Object prop…
SetQualifierValue Method System.Void SetQualifierValue(string qualifierName, System.Object qu…
set_Item Method System.Void set_Item(string propertyName, System.Object value)
set_Options Method System.Void set_Options(System.Management.ObjectGetOptions value)
set_Path Method System.Void set_Path(System.Management.ManagementPath value)
set_Scope Method System.Void set_Scope(System.Management.ManagementScope value)
set_Site Method System.Void set_Site(System.ComponentModel.ISite value)
ToString Method string ToString()
Item ParameterizedProperty System.Object Item(string propertyName) {get;set;}
BiosCharacteristics Property System.UInt16[] BiosCharacteristics {get;set;}
BIOSVersion Property System.String[] BIOSVersion {get;set;}
BuildNumber Property System.String BuildNumber {get;set;}
Caption Property System.String Caption {get;set;}
ClassPath Property System.Management.ManagementPath ClassPath {get;}
CodeSet Property System.String CodeSet {get;set;}
Container Property System.ComponentModel.IContainer Container {get;}
CurrentLanguage Property System.String CurrentLanguage {get;set;}
Description Property System.String Description {get;set;}
IdentificationCode Property System.String IdentificationCode {get;set;}
InstallableLanguages Property System.UInt16 InstallableLanguages {get;set;}
InstallDate Property System.String InstallDate {get;set;}
LanguageEdition Property System.String LanguageEdition {get;set;}
ListOfLanguages Property System.String[] ListOfLanguages {get;set;}
Manufacturer Property System.String Manufacturer {get;set;}
Name Property System.String Name {get;set;}
Options Property System.Management.ObjectGetOptions Options {get;set;}
OtherTargetOS Property System.String OtherTargetOS {get;set;}
Path Property System.Management.ManagementPath Path {get;set;}
PrimaryBIOS Property System.Boolean PrimaryBIOS {get;set;}
Properties Property System.Management.PropertyDataCollection Properties {get;}
Qualifiers Property System.Management.QualifierDataCollection Qualifiers {get;}
ReleaseDate Property System.String ReleaseDate {get;set;}
Scope Property System.Management.ManagementScope Scope {get;set;}
SerialNumber Property System.String SerialNumber {get;set;}
Site Property System.ComponentModel.ISite Site {get;set;}
SMBIOSBIOSVersion Property System.String SMBIOSBIOSVersion {get;set;}
SMBIOSMajorVersion Property System.UInt16 SMBIOSMajorVersion {get;set;}
SMBIOSMinorVersion Property System.UInt16 SMBIOSMinorVersion {get;set;}
SMBIOSPresent Property System.Boolean SMBIOSPresent {get;set;}
SoftwareElementID Property System.String SoftwareElementID {get;set;}
SoftwareElementState Property System.UInt16 SoftwareElementState {get;set;}
Status Property System.String Status {get;set;}
SystemProperties Property System.Management.PropertyDataCollection SystemProperties {get;}
TargetOperatingSystem Property System.UInt16 TargetOperatingSystem {get;set;}
Version Property System.String Version {get;set;}
__CLASS Property System.String __CLASS {get;set;}
__DERIVATION Property System.String[] __DERIVATION {get;set;}
__DYNASTY Property System.String __DYNASTY {get;set;}
__GENUS Property System.Int32 __GENUS {get;set;}
__NAMESPACE Property System.String __NAMESPACE {get;set;}
__PATH Property System.String __PATH {get;set;}
__PROPERTY_COUNT Property System.Int32 __PROPERTY_COUNT {get;set;}
__RELPATH Property System.String __RELPATH {get;set;}
__SERVER Property System.String __SERVER {get;set;}
__SUPERCLASS Property System.String __SUPERCLASS {get;set;}
PSStatus PropertySet PSStatus {Status, Name, Caption, SMBIOSPresent}
ConvertFromDateTime ScriptMethod System.Object ConvertFromDateTime();
ConvertToDateTime ScriptMethod System.Object ConvertToDateTime();
That result set shows 99 members, which is a lot more than the 40 members you get to see by default!
As you can see, there is a lot more to these objects than meets the eye. Using Get-Member with –Force and –View All is a great way to get all of the information you need about objects so that you really know what your objects contain and are capable of.
Kirk out.
PowerGUI Visual Studio is now in beta!
Due to popular demand, Adam Driscoll has just released Beta 1 of his PowerGUI Visual Studio (aka PowerGUI VSX) project!
If you missed my blog about this last week and don’t know what this product is, it’s an extension for Visual Studio that adds PowerGUI’s editor with Intellisense, syntax highlighting and snippets for PowerShell script files to Visual Studio! This can make it much easier to create PowerShell scripts or modules if you’re already working inside Visual Studio.
You can learn all about this great project and download the beta release by going to the PowerGUI VSX page on CodePlex now!
This project requires that the following prerequisites be installed first:
- Visual Studio 2010
- PowerGUI
Please share any feedback you have for this release in the comments on this blog, on the CodePlex site itself, or on the PowerGUI forums.
Enjoy!
Kirk out.
| Share this post: |
PowerShell support in Visual Studio!
Update 20-Jun-2010: This is now released as a beta! It supports Intellisense and Syntax Highlighting for any modules you have loaded in PowerGUI, as well as PowerGUI Snippets! Go download it here now!
Here’s something really cool for all the developer types out there. Adam Driscoll, one of the developers here at Quest Software, is working on an extension for Visual Studio 2010 that integrates PowerGUI Script Editor functionality into the Visual Studio 2010 IDE! It’s not released yet, but you can learn more about it on the PowerGUI VSX site on CodePlex. Here’s a teaser screenshot to whet your tastebuds:
I’d love to hear your feedback on this, so please leave comments and let me know if this is of interest to you or not.
Thanks,
Kirk out.
| Share this post: |
PowerGUI 2.1: The release that keeps on giving
Last Monday while I was down at Tech·Ed we quietly released PowerGUI 2.1 on our website. I’ve been looking forward to us getting this release out the door for quite a while because there are some really cool features in the release that I wanted to share with you (some of which I’ve been hinting about on my blog recently), so it was very exciting to see this get released. Since it happened at Tech·Ed though, my schedule was completely booked and I just couldn’t find a minute to start blogging about the release. Now that I’m back home and fully recovered from a week packed with all sorts of cool technology, I can catch up and share this release with the rest of you.
Aside from the great performance improvements that were made in the Script Editor, not to mention the Charts and custom HTML support in the administrative console, there’s one particular feature that really grabbed my attention in this release: we now have a documented and supported SDK for the PowerGUI Script Editor! This is great news because up to this point the only extensions that were possible were in the administrative console where you could create PowerPacks. Now with 2.1 available anyone can create extensions for the Script Editor that add really cool functionality to it as well!
The screenshots I was blogging about a few weeks ago showed some of the Add-ons that I have been working on, and I just started publishing some of those Add-ons in the Script Editor Add-on category on PowerGUI.org. These Add-ons are just PowerShell modules so you can see exactly how they work by opening the module files in the Script Editor. With Add-ons, not only do you get the features that were implemented in the core product, you now get to pick and choose additional features that you want as they become available by installing Add-ons.
What sort of things can you do with Add-ons? Well, for starters you can sign your script files:
or change your embedded PowerShell Console to blue:
If that inspires you, you can also try creating your own Add-on:
And if you want to learn more about how you can create an Add-on, there’s even a tutorial available to help get you started.
There are some other useful Add-ons available right now, and more are in development so check the Script Editor Add-on category often to see what has been recently published.
If there are Add-ons you would like to see developed but you aren’t comfortable creating them yourself, share the ideas on our forums so that others can step up and help you out (or maybe even create the Add-on for you).
The Script Editor SDK that was added to this release is brand new to the PowerGUI product and we would love to hear your feedback on it. Please speak up and let us know what you think about the SDK, the Add-ons we have made available so far, or anything else related to PowerGUI. We’re always listening.
Thanks and happy scripting!
Kirk out.
Taking the PowerGUI Train Down to New Orleans
This weekend I’m heading down to New Orleans, LA for Tech·Ed 2010 North America. I’m totally excited about the trip because (a) I’ve never been to New Orleans and (b) Tech·Ed is always a ton of fun! This year I’ll be working the PowerShell booth again plus I’ll be hanging around the Quest booth quite a bit when I’m not in a breakout session. One of the fun things I’ll be doing while I’m there is on Monday June 7th at 2:15 PM CST (mark your calendar!) when I’ll be at the Quest booth taking questions about PowerShell and PowerGUI and doing demos of some cool new features that we’ve been busy working on, such as a blue PowerShell Console and Online Help.
That’s not the only features that I’ll be talking about though…here’s another teaser screenshot showing you something else you’ll be able to do in the PowerGUI Script Editor really, really soon: Script Signing!
If you’d like to hear more about PowerGUI and what we’ve been up to, come by the 30 minute Q&A session on Monday. Or, if you can’t make that session track down myself or Dmitry or head over to the Quest booth in the partner expo and ask for a demo of PowerGUI at any time. I’d love to hear how you’re using PowerShell and PowerGUI and show you some of the new features that I haven’t shared here yet.
See you in New Orleans!
Kirk out.
P.S. I’m not literally taking the train down to New Orleans (although that would be really fun), but I am bringing PowerGUI with me on my laptop. Maybe after the PowerShell market grows a little more I’ll be able to convince Quest to have a locomotive built for PowerGUI that we can use when travelling to events like Tech·Ed!
P.P.S. If you’re not going to Tech·Ed but you want to share how you’re using PowerShell and PowerGUI with me anyway, drop me a line anytime and tell me about it, or just share it on our forums!



