ReleaseNotes.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
PowerShell Community Extensions Release Notes

What's New in PSCX 3.2.1 July 29, 2015 * Updated to support PowerShell 5.0. * Fixed bug in Get-Parameter related to getting dynamic parameter info. * Updated Expand-Archive to output DirectoryInfo and FileInfo objects for the extracted directories and files when using -PassThru. * Updated Get-TypeName to normally write the typename to the standard output stream. However, if -PassThru is specified the object input to the command is output and the typename is written directly to the host UI. This allows you to insert Get-TypeName -PassThru into the pipeline to observe which object types a flowing in the pipeline. 3.2.0 Release Notes: October 23, 2014 * New Edit-File cmdlet that edits a file in-place using regular expressions and corresponding replacement strings. The cmdlet attempts to determine the original encoding of the file and preserve that encoding. * Fixed issue with the nested FileSystem module. It's format data had to be
  updated to handle wider column output from Get-ChildItem now that WMF 5.0
  supports creating symbolic links, hard links, etc.

* Import-VisualStudioVars has been updated to handle VS 14 CTP by allowing you 
  to specify version number 140. This should work with future versions of VS.

* The [hex] accelerator type was added in a previous release but was not 
  added to PowerShell's type accelerators. The accelerator is now loaded by the Pscx.Utility nested module. You can now convert a decimal number to hex easily e.g. [hex]32 gives 0x20. * Read-Archive has been changed to output individual ArchiveEntry objects instead of a single collection object. This allows you to filter which items are extracted e.g.: Read-Archive foo.zip | Where Name -match \.txt | Expand-Archive -Out c:\temp * Expand-Archive now implements the PassThru parameter allowing functionality such as: Expand-Archive foo.zip -Output c:\temp -PassThru | Move-Item -Dest c:\done * Fixed documentation bug with Set-LocationEx. CD_EchoNewLocation was incorrectly specified as CD/EchoNewLocation. * Changed the default value of CD_EchoNewLocation to False as the use of Write-Host to display the new CD location offends some folks. You can turn it back by putting this in your profile (or set the value in your Pscx.UserPreferences.ps1 file): $Pscx:Preferences.CD_EchoNewLocation = $true * Fixed issue 35430 - Invoke-BatchFile messes up encoding on non-English systems. * Fixed issue 355537 - Default format information missing for Pscx.Commands.Modules.Utility.ExecutionTimeInfo. * Issues 35314 and 35256 indicate some bugs with the Get-Help proxy command. For now, we will not automticallly load this nested module. You can enable if you want by editing the Pscx.UserPreferences.ps1 file and setting ModulesToImport -> GetHelp to $true. 3.1.0 Release Notes: October 18, 2013 * 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.

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.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