ReleaseNotes.txt
PowerShell Community Extensions 3.1 Release Notes
October 18, 2013 The primary purpose of the Pscx 3.1 release is to fully support Windows PowerShell V3 and V4. This version of Pscx is compiled against .NET 4.0 and takes advantage of PowerShell V3 specific features. This version of Pscx WILL NOT RUN on PowerShell V2. If you need Pscx support for PowerShell V2, please download the latest Pscx 2.1 version from http://pscx.codeplex.com. If you need support for Windows PowerShell 1.0, you can still download the Pscx 1.2 release. WINDOWS INSTALLER While xcopy deployment works great for some folks, other prefer the convenience of a traditional Windows Installer. Furthermore, xcopy ZIP packages downloaded from the PSCX CodePlex site have proven troublesome because many users forget to unblock the ZIP file before extracting the contents. Pscx 3.1 is now provided in an Authenticode signed MSI file. Note: the WIX-based installer prepends the Pscx installation dir to the PSModulePath environment variable. This is required so that you can specify just the module name 'Pscx' when doing an Import-Module instead of having to specify a full path to the Pscx.psd1 file. However, the WIX-based installer isn't always successful in propagating the environment variable change. In this case, you can reboot the PC or load Pscx by the full path until your next reboot. CODE SIGNED SCRIPTS All of the Pscx scripts including *.ps1, *.psm1 and *.ps1xml files have been code signed for both the 2.1 and 3.1 releases. This means that you will be able to run Pscx in a PowerShell session where ExecutionPolicy is set to AllSigned. You will be prompted to confirm if you want to run code from the untrusted publisher 6L6 Software LLC. If you answer 'A' to always run code from this publisher, you will not get prompted again for the execution of Pscx scripts. UPGRADING FROM EARLIER VERSIONS OF PSCX Pscx 3.1 does not automatically upgrade Pscx 2.1. In fact, these two versions of Pscx can live side-by-side. NOTE: If you install Pscx 2.1 and 3.1 side-by-side, you will have to use the -RequiredVersion parameter on Import-Module in order to load Pscx 3.1. By default, PowerShell searches modules in the order specified by the environment variable PSModuleLoadPath. PowerShell automatically prepends the user's $home\Documents\WindowsPowerShell\Modules dir to this path so PowerShell will load Pscx 2.1, assuming you extracted it to your user Modules folder. In order to load Pscx 3.1 execute: C:\PS> Import-Module Pscx -RequiredVersion 3.0.0.0 IMPORTING THE PSCX MODULE Importing the Pscx module is very easy. Just execute: C:\PS> Import-Module Pscx If you want to import Pscx in your profile, all you have to do is add the command above to your profile. Pscx can be customized in terms of preference variables and what nested modules are automatically loaded. In the root dir of the Pscx module there is a file named Pscx.UserPreferences.ps1. It shows the default values for the preference variable and which nested modules are loaded by default. If you want to change any of these, copy this file to your WindowsPowerShell dir or your home dir, edit it and then pass the path to this modified Pscx.UserPreferences.ps1 file to Import-Module e.g.: C:\PS> Import-Module Pscx -arg ~\Pscx.UserPreferences.ps1 Pscx will now be imported with your preferences. 3.1.0.0 Release Notes: PowerShell version checking bug fixed with WMI nested module. Import-VisualStudioVars updated to add VS2013 support. Get-Parameter updated to version 2.8 from PoshCode.org. Get-FileTail updated to open file FileShare.Delete perm to allow the file to be deleted while being tailed. Invoke-Ternary / Invoke-NullCoalescing fixed to be able to access variables in intermediate scopes. New-Junction/Symlink/Hardlink - moved PSPath parameter alias from LiteralPath parameter to TargetPath parameter. Path passed to LiteralPath can't exist so makes more sense for pipeline binding DirectoryInfo objects to TargetPath. You can now do Get-Item .\foodir | New-Junction foodirJunction. Updated DigiCert digital certificates used for script and MSI signing. 3.0.0.0 Release Notes: NEW CMDLETS ConvertTo-Metric Get-AlternateDataStream Test-AlternateDataStream Remove-AlternateDataStream Unblock-File Get-LoremIpsum (lorem) Get-TypeName (gtn) Get-Uptime Get-FileTail (tail) - renamed Tail-File to use approved verb Receive-MSMQueue - renamed from Receive-MSMQMessage Send-MSMQueue - renamed from Send-MSMQMessage Set-BitmapSize - renamed from Resize-Bitmap Test-Script NEW FUNCTIONS Get-ExecutionTime Get-Parameter Import-VisualStudioVars Start-PowerShell UPDATED AND SHORTENED LIST OF ALIASES ?: Invoke-Ternary ?? Invoke-NullCoalescing call Invoke-Method cvxml Convert-Xml e Edit-File ehp Edit-HostProfile ep Edit-Profile fhex Format-Hex fxml Format-Xml gcb Get-Clipboard gpar Get-Parameter gtn Get-TypeName igc Invoke-GC ln New-HardLink lorem Get-LoremIpsum nho New-HashObject ocb Out-Clipboard ql QuoteList qs QuoteString Resize-Bitmap Set-BitmapSize rver Resolve-ErrorRecord rvhr Resolve-HResult rvwer Resolve-WindowsError skip Skip-Object sro Set-ReadOnly su Invoke-Elevated swr Set-Writable tail Get-FileTail touch Set-FileTime REMOVED: Unblock-File, Get-AlternateDataStream, Remove-AlternateDataStream, These cmdlets have been moved to the Pscx.Deprecated module. If you require the Pscx versions instead of the ones now built-in PowerShell, import the Pscx.Deprecated module. Get-ChildItem - Removed proxy. Use new -Attribute parameter on built-in Get-ChildItem cmdlet. Get-PropertyValue - Use % <property-name> instead Invoke-Reflector Obsoleted Aliases gpv, rf, srts, sls (created by PowerShell v3) MISC UPDATES: Accelerators Pscx adds two new accelarators [wmidatetime] and [wmitimespan] which can be used to convert .NET DateTime and TimeSpan values into their WMI equivalents e.g.: C:\PS> [wmidatetime](get-date) 20100411113710.551365-360 C:\PS> [wmitimespan]((get-date) - (get-date).AddHours(-1)) 00000000010000.000000:000 Note that converting from a WMI datetime or WMI timespan to the .NET equivalent can be accomplished by simply type casting e.g.: C:\PS> [datetime]'20100409131034.881722-360' Friday, April 09, 2010 1:10:34 PM You can also use [accelerators] as a shortcut to find all the accelerators available in PowerShell e.g.: C:\PS> [accelerators]::get Key Value --- ----- int System.Int32 long System.Int64 string System.String char System.Char bool System.Boolean byte System.Byte double System.Double ... wmidatetime Pscx.TypeAccelerators.WmiDateTime wmitimespan Pscx.TypeAccelerators.WmiTimeSpan |