Comparing Functionality of Versions of PSCX

Topics: Developer Forum
Coordinator
Feb 10, 2007 at 10:30 PM
Hi guys, I created a coulple of scripts and some baseline data (CliXml) files for base PowerShell, Pscx 1.0 and 1.1 (as it stands now). I'm debating whether or not to grab data for the meager 0.1 release. Anyway the data and files are in $/PowerShellCX/Trunk/Tools/PscxVersionComparison - so feel free to tweak them as you (jachym :-) ) see fit. Here's an interesting look at the changes:

.\CompareCommands.ps1 BasePowerShellCommands.xml Pscx1_0Commands.xml | ft -a
 
Name                        CommandType SideIndicator
----                        ----------- -------------
?:                          Alias       =>
??                          Alias       =>
adl                         Alias       =>
apropos                     Alias       =>
asp                         Alias       =>
bp                          Alias       =>
cd                          Alias       <=
cvxml                       Alias       =>
dbp                         Alias       =>
dir                         Alias       <=
e                           Alias       =>
ebp                         Alias       =>
eghp                        Alias       =>
egp                         Alias       =>
ehp                         Alias       =>
ep                          Alias       =>
ephy                        Alias       =>
fxml                        Alias       =>
galpscx                     Alias       =>
gcb                         Alias       =>
ghm                         Alias       =>
gpv                         Alias       =>
gsp                         Alias       =>
gtn                         Alias       =>
gvs                         Alias       =>
iphy                        Alias       =>
ln                          Alias       =>
mail                        Alias       =>
measure                     Alias       =>
new                         Alias       =>
ocb                         Alias       =>
ra                          Alias       =>
rver                        Alias       =>
saps                        Alias       =>
skbp                        Alias       =>
sprdp                       Alias       =>
sro                         Alias       =>
ss                          Alias       =>
start                       Alias       =>
swr                         Alias       =>
touch                       Alias       =>
cd                          Function    =>
ConvertFrom-WmiDateTime     Function    =>
ConvertFrom-WmiTimeSpan     Function    =>
ConvertTo-DmtfDateTime      Function    =>
ConvertTo-DmtfTimeInterval  Function    =>
dir                         Function    =>
dird                        Function    =>
dirs                        Function    =>
dirt                        Function    =>
dirw                        Function    =>
Disable-Breakpoints         Function    =>
Edit-File                   Function    =>
Edit-GlobalHostProfile      Function    =>
Edit-GlobalProfile          Function    =>
Edit-HostProfile            Function    =>
Edit-Profile                Function    =>
Enable-Breakpoints          Function    =>
Export-History              Function    =>
Get-AliasPscx               Function    =>
Get-HelpMatch               Function    =>
Get-Url                     Function    =>
Get-VariableSorted          Function    =>
Import-Assembly             Function    =>
Import-AssemblyFrom         Function    =>
Import-History              Function    =>
MultiLevelPropertyExpansion Function    =>
Resolve-Error               Function    =>
Select-History              Function    =>
Set-Breakpoint              Function    =>
Set-ReadOnly                Function    =>
Set-Writable                Function    =>
Skip-Breakpoints            Function    =>
Add-DirectoryLength         Filter      =>
Add-ShortPath               Filter      =>
Get-PropertyValue           Filter      =>
Get-TypeName                Filter      =>
Invoke-NullAlt              Filter      =>
Invoke-Ternary              Filter      =>
Remove-Accessors            Filter      =>
ConvertFrom-Base64          Cmdlet      =>
ConvertTo-Base64            Cmdlet      =>
ConvertTo-MacOs9LineEnding  Cmdlet      =>
ConvertTo-UnixLineEnding    Cmdlet      =>
ConvertTo-WindowsLineEnding Cmdlet      =>
Convert-Xml                 Cmdlet      =>
Format-Hex                  Cmdlet      =>
Format-Xml                  Cmdlet      =>
Get-Clipboard               Cmdlet      =>
Get-CmdletMaml              Cmdlet      =>
Get-ForegroundWindow        Cmdlet      =>
Get-Hash                    Cmdlet      =>
Get-MountPoint              Cmdlet      =>
Get-Privilege               Cmdlet      =>
Get-ShortPath               Cmdlet      =>
Join-String                 Cmdlet      =>
New-HardLink                Cmdlet      =>
Out-Clipboard               Cmdlet      =>
Remove-MountPoint           Cmdlet      =>
Send-SmtpMail               Cmdlet      =>
Set-FileTime                Cmdlet      =>
Set-ForegroundWindow        Cmdlet      =>
Set-VolumeLabel             Cmdlet      =>
Split-String                Cmdlet      =>
Start-Process               Cmdlet      =>
Stop-RemoteDesktop          Cmdlet      =>
Test-Xml                    Cmdlet      =>
Write-Clipboard             Cmdlet      =>
and between PSCX 1.0 and 1.1:

.\CompareCommands.ps1 Pscx1_0Commands.xml Pscx1_1Commands.xml | ft -a
 
 
Name                        CommandType SideIndicator
----                        ----------- -------------
apv                         Alias       =>
cvfb64                      Alias       =>
cvtb64                      Alias       =>
fhex                        Alias       =>
gcmpscx                     Alias       =>
gcs                         Alias       =>
gfvi                        Alias       =>
gvpscx                      Alias       =>
help                        Alias       =>
lorem                       Alias       =>
man                         Alias       =>
nho                         Alias       =>
pager                       Alias       =>
ping                        Alias       =>
pwd                         Alias       <=
ql                          Alias       =>
qs                          Alias       =>
rehash                      Alias       =>
rnd                         Alias       =>
up                          Alias       =>
Add-PathVariable            Function    =>
cd-                         Function    =>
cd..                        Function    =>
cd...                       Function    =>
cd....                      Function    =>
cd.....                     Function    =>
cd?                         Function    =>
cd\                         Function    =>
cd~                         Function    =>
cd+                         Function    =>
Clip                        Function    =>
Get-AliasPscx               Function    <=
Get-CallStack               Function    =>
Get-DiskUsage               Function    =>
Get-LoremIpsum              Function    =>
Get-PagedHelp               Function    =>
Get-PscxAlias               Function    =>
Get-PscxCmdlet              Function    =>
Get-PscxVariable            Function    =>
Get-ScreenCss               Function    =>
Get-ScreenHtml              Function    =>
Get-TypeName                Function    =>
less                        Function    =>
MultiLevelPropertyExpansion Function    <=
pwd                         Function    =>
q                           Function    =>
Quote-List                  Function    =>
Quote-String                Function    =>
Start-EyeCandy              Function    =>
Update-HostTitle            Function    =>
Update-Profile              Function    =>
Write-Prompt                Function    =>
Get-TypeName                Filter      <=
Invoke-NullAlt              Filter      <=
Invoke-NullCoalescing       Filter      =>
New-HashObject              Filter      =>
Disconnect-TerminalSession  Cmdlet      =>
Export-Bitmap               Cmdlet      =>
Format-Byte                 Cmdlet      =>
Get-ADObject                Cmdlet      =>
Get-CmdletMaml              Cmdlet      <=
Get-DhcpServer              Cmdlet      =>
Get-DomainController        Cmdlet      =>
Get-FileVersionInfo         Cmdlet      =>
Get-PEHeader                Cmdlet      =>
Get-PSSnapinHelp            Cmdlet      =>
Get-Random                  Cmdlet      =>
Get-ReparsePoint            Cmdlet      =>
Get-TabExpansion            Cmdlet      =>
Get-TerminalSession         Cmdlet      =>
Import-Bitmap               Cmdlet      =>
New-Junction                Cmdlet      =>
New-Shortcut                Cmdlet      =>
New-Symlink                 Cmdlet      =>
Ping-Host                   Cmdlet      =>
Remove-ReparsePoint         Cmdlet      =>
Resize-Bitmap               Cmdlet      =>
Resolve-Host                Cmdlet      =>
Select-Xml                  Cmdlet      =>
Set-Clipboard               Cmdlet      =>
Set-Privilege               Cmdlet      =>
Start-TabExpansion          Cmdlet      =>
Stop-RemoteDesktop          Cmdlet      <=
Stop-TerminalSession        Cmdlet      =>
Test-Assembly               Cmdlet      =>
Write-BZip2                 Cmdlet      =>
Write-GZip                  Cmdlet      =>
Write-Tar                   Cmdlet      =>
Write-Zip                   Cmdlet      =>
This data is a little screwy in that cd, dir and pwd have been redefined as functions instead of aliases. I'm thinking about posting something on the project homepage (perhaps as separate links) that displays the difference between 1.0 and 1.1 as well as the difference between base PowerShell and 1.1. Thoughts?
Coordinator
Feb 11, 2007 at 12:00 AM
OK so I posted this info to:

http://www.codeplex.com/PowerShellCX/Wiki/View.aspx?title=PSCX%201.1%20Features
Developer
Feb 11, 2007 at 2:20 AM
Edited Feb 11, 2007 at 2:22 AM
wow, that's cool :) i made script which takes the clixml diff and produces a human-readable summary, like this one. i think it would look better in the wiki page, do you agree? i hope i didnt miss anything...
NEW CMDLETS
    Get-ADObject
    Test-Assembly
    Export-Bitmap
    Import-Bitmap
    Resize-Bitmap
    Format-Byte
    Write-BZip2
    Set-Clipboard
    Get-DhcpServer
    Get-DomainController
    Get-FileVersionInfo (gfvi)
    Write-GZip
    Resolve-Host
    Ping-Host (ping)
    New-Junction
    Get-PEHeader
    Set-Privilege
    Get-PSSnapinHelp
    Get-Random (rnd)
    Get-ReparsePoint
    Remove-ReparsePoint
    New-Shortcut
    New-Symlink
    Start-TabExpansion
    Get-TabExpansion
    Write-Tar
    Stop-TerminalSession
    Disconnect-TerminalSession
    Get-TerminalSession
    Select-Xml
    Write-Zip
 
 
NEW FUNCTIONS AND FILTERS
    Add-PathVariable (apv)
    cd-
    cd..
    cd...
    cd....
    cd.....
    cd?
    cd\
    cd~
    cd+
    Clip
    Get-CallStack (gcs)
    Get-DiskUsage
    Get-LoremIpsum (lorem)
    Get-PagedHelp (help, man)
    Get-PscxAlias (galpscx)
    Get-PscxCmdlet (gcmpscx)
    Get-PscxVariable (gvpscx)
    Get-ScreenCss
    Get-ScreenHtml
    Get-TypeName (gtn)
    Invoke-NullCoalescing (??)
    less (pager)
    New-HashObject (nho)
    pwd
    q
    Quote-List (ql)
    Quote-String (qs)
    Start-EyeCandy
    Update-HostTitle
    Update-Profile (rehash, up)
    Write-Prompt
 
 
REMOVED STUFF
    Get-AliasPscx
    Get-CmdletMaml
    Get-TypeName
    Invoke-NullAlt
    MultiLevelPropertyExpansion
    pwd
    Stop-RemoteDesktop
Coordinator
Feb 11, 2007 at 3:12 AM
Looks good to me except make sure you do a GetLatest before you run it again. I nuked the "q" function. It seemed a bit too dangerous for wide distribution. Yeah go ahead and update the web page.
Coordinator
Feb 11, 2007 at 3:27 AM
Also watch out for stuff like 'pwd' which was changed from a simple alias to a simple (but less verbose) function. BTW this looks really nice. I hacked the previous one out just to see if it could be done relatively easily (then I had to run out and do some stuff with the fam). I'm glad you took this to the next level.
Developer
Feb 11, 2007 at 3:30 AM
hmmm, i have the latest version, but i forgot to rebuild the pscx1_1commands.xml.
Coordinator
Feb 11, 2007 at 4:29 AM
Oh yeah, watch out for new aliases that don't correspond to new commands. Your list is missing some of the new aliases for older commands e.g.

cvfb64                      Alias       =>
cvtb64                      Alias       =>
fhex                        Alias       =>
...

BTW I'm in the process of updating readme.rtf with your content.
Developer
Feb 15, 2007 at 4:26 AM
fixed
May 28, 2009 at 3:41 PM

Question - regarding the Get-MountPoint cmdlet.  Does this cmdlet have to be run on the server (in my case I have several MS Exchange 2007 servers) or can it be run remotely (ie from an Administrator workstation)?

I hope for the latter since it will help in our administrative duties.


Regards and TIA

Nate

Developer
Jun 1, 2009 at 8:29 PM

Hi Nate,

The Get-MountPoint cmdlet only works on local, fixed drives. Sorry. You may be able to enumerate remote mount points with WMI, but I'm no WMI expert.

-Oisin