PowerShell / PSScriptAnalyzer

Download ScriptAnalyzer from PowerShellGallery
https://www.powershellgallery.com/packages/PSScriptAnalyzer/
MIT License
1.81k stars 366 forks source link

Sugguest native (PowerShell) command alternatives to CMD/Unix commands #1124

Open mrhvid opened 5 years ago

mrhvid commented 5 years ago

Summary of the new feature

Following a idea and short chat with @SteveL-MSFT on twitter it occured to me that it might be a fit for PSScriptAnalyzer (see https://twitter.com/Steve_MSFT/status/1083749912439808001 )

I was reminded of a old pdf Ashley McGlone did https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/8458/00/00/03/54/23/12/PowerShell%20Cmd%20Line%20Conversion%20Guide%20AD.pdf (found on https://blogs.technet.microsoft.com/ashleymcglone/2013/01/02/free-download-cmd-to-powershell-guide-for-ad/ )

It can be hard to discover native PowerShell commands for commands you have used for years in cmd. Example ipconfig (or ifconfig) (if your new to PowerShell you might not even know.

CMD Switch PowerShell Cmdlet Module Version
IPCONFIG Get-NetIPConfiguration NetTCPIP 2012
IPCONFIG /ALL Get-NetIPConfiguration -Detailed NetTCPIP 2012
IPCONFIG /FLUSHDNS Clear-DnsClientCache DnsClient 2012
IPCONFIG /DISPLAYDNS Get-DnsClientCashe DnsClient 2012
IPCONFIG /REGISTERDNS Register-DnsClient DnsClient 2012

There's a huge difference between getting the non structured text output from ipconfig and the objects you get from the native commands.

Say a user try to find IP of localhost by using ipconfig in his code PowerShell code. The script analyzer could sugguest using one of the commands above (or even Get-NetIPAddress) as an alternative that will return a object instead of "unstructured" text.

I'm not sure how to come up with a list of comparable commands, but I guess that is excatly why it might be nice.

Proposed technical implementation details (optional)

If the script analyzer could make alternatives visible e.g. in VS Code it might help people out.

bergmeister commented 5 years ago

Sorry for the late reply. Yes, this would be great idea for a new rule, feel free to open a PR for it