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