Hola a todos!
Continuamos con las ventajas de PowerShell y en este caso vamos a hablar de las diferencias que tiene respecto a las Shell tradicionales, que en este caso nos va a llamar bastante la atención, y que es una de las cosas que a pesar de ser una de las más potentes que nos ofrece PowerShell, es una de las cosas que más dificilmente se entiende.
Comenzaremos por decir, que PowerShell tiene infinidad de comandos nativos, a los que además se suman otras partes como cmdlets, funciones, y scripts.
Cuando nosotros lanzamos un comando de PowerShell, en realidad estamos lanzando uno de los tipos que hemos citado anteriormente.
Este es el fundamento por el que muchas veces veremos que se usan de manera indistinta las palabras comando o cmdlet.
Por otro lado, en PowerShell, a diferencia de otros muchos entornos de shell, los cmdlets se encuentran en el entorno de ejecución común y esta característica proporciona una experiencia coherente ayudando en la canalización.
Algo muy importante, que debemos tener en cuenta y que es causa de bastante confusión para muchos, es que los cmdlets pueden usar objetos de entrada y devolver objetos a la salida.
Los cmdlets principales de PowerShell se compilan en .NET Core y son opensource, algo impensable hasta hace poco en Microsoft.
Podemos extender PowerShell mediante el uso de cmdlets, scripts y funciones adicionales que proporcionan los miembros de la comunidad, además de los que llegan desde otros orígenes. También podemos crear cmdlets propios en .NET Core o PowerShell.
Espero que os resulte útil.
Un saludo