¿Cuáles son las ventajas de Powershell sobre cygwin / unix-shell?

9

La diferencia obvia que conozco es la capacidad de interactuar con ciertos productos de MS, como Exchange. Pero para uno que no tiene que administrar tales productos, ¿cuáles son las ventajas de Powershell? ¿Cuáles son las razones para aprender Powershell (suponiendo que soy fluido con bash y cygwin)?

Moshe
fuente

Respuestas:

18

La ventaja más obvia: siempre que no haya una salida de texto (o un comando heredado) involucrado en una tubería, no está moviendo el texto a través de las tuberías, sino instancias de objetos de marco .NET, con todas sus propiedades y métodos.

Esto permite un manejo de canalización más expresivo y menos ambiguo que tampoco está completamente influenciado por la configuración regional y de idioma (por ejemplo, piense en los formatos de fecha o número y cómo debería tratarlos como cadenas normalmente).

Esto también significa que tiene acceso a una gran cantidad de capacidades de .NET Framework en un entorno de secuencias de comandos.

Tomalak
fuente
6

Sin entrar en juicios de valor sobre el paradigma, las principales ventajas de PowerShell son la integración e incumbencia de .Net: desde el servidor de Windows 2008 en adelante, se incluye por defecto y se carga en paquetes de servicio en 2003 y 2003 R2.

Para ser justos, hay varias otras opciones para las secuencias de comandos, por ejemplo, Perl y Python. Python también le da la opción de usar IronPython si desea la integración nativa de .Net. De hecho, IronPython se instalará satisfactoriamente simplemente dejándolo caer en un directorio. Puede agruparlo trivialmente en una aplicación sin necesidad de un paso de instalación por separado.

La fuerza clave de Powershell es una espada de doble filo. Si bien la transmisión de objetos .net es bastante útil y tiene sus ventajas, supone muchas más suposiciones sobre la capacidad de los componentes para jugar bien con el marco. Para que esto realmente funcione, debe envolver las cosas con cmdlets. Si bien la salida de texto es de un nivel algo más bajo y requiere un análisis, coloca menos carga en los componentes para jugar bien con el marco.

Con el tiempo, esperaría ver mucho más del ecosistema de Windows (componentes de MS y de terceros) con envoltorios de cmdlet para que funcionen con Powershell. A medida que esto suceda, el caso de Powershell se volverá mucho más fuerte.

Históricamente, una de las principales debilidades tradicionales de Windows desde la perspectiva administrativa ha sido su escaso soporte de secuencias de comandos. MS lo reconoció hace varios años y después de algunos intentos fallidos (por ejemplo, WSH) Powershell es el esfuerzo más creíble de MS hasta ahora para solucionar esa deficiencia.

Preocupado por TunbridgeWells
fuente
2

Creo que la mayor victoria para powershell es que puedes canalizar cualquier cosa a cualquier cosa sin tener que analizar el texto y / o grok sed y awk. Sin traer esos objetos desagradables a la ecuación, piense en powershell como si tuviera sed y awk automáticos para vincular comandos en una tubería.

x0n
fuente
2

Ventajas: -

  1. Automatización de tareas: - Tareas como agregar un usuario a 1000 máquinas es un trabajo tedioso de forma manual. Pero con la ayuda de powershell, debe escribir solo un script simple y ese script se ejecutará, configurará automáticamente todos los clientes. Por lo tanto, ahorra tiempo repitiendo los pasos automáticamente. Los scripts de copia de seguridad / restauración de Windows PowerShell se pueden desarrollar y programar (con el Programador de tareas de Windows), mientras que la Administración central se usa para copias de seguridad y restauraciones de un solo uso. Windows PowerShell tiene la ventaja de ejecutarse contra instantáneas SQL en lugar de la base de datos de producción. Uno de los parámetros del comando de Windows PowerShell hará que se genere una instantánea de SQL, y luego Windows PowerShell ejecutará la acción contra la instantánea en lugar de la base de datos de producción. Esto reducirá el impacto de los recursos de la operación de copia de seguridad en el entorno de producción. Con Windows PowerShell, los administradores de SharePoint tendrán un control más granular de las opciones para la copia de seguridad o restauración.

  2. Mejora en las capacidades de comunicación remota: - La importancia es doble, en primer lugar, los escritorios de Windows 7 pueden comunicarse con el servidor mediante comandos de PowerShell. Como resultado, los técnicos con computadoras portátiles con Windows 7 pueden configurar sus servidores de forma remota ejecutando scripts de PowerShell. En segundo lugar, los scripts de inicio de sesión del cliente escritos en PowerShell, que residen en el servidor, pueden ejecutarse en Windows 7 con mayor facilidad. También usando powershell, podemos controlar fácilmente las máquinas remotas, podemos realizar tareas importantes en ellas y podemos aplicar fácilmente estos cambios a gran escala. La comunicación remota utiliza los recursos de la red. Entonces, cuando estaríamos trabajando con powershell, no estamos usando la GUI y, por lo tanto, el ancho de banda requerido para una determinada tarea se reduce y se resuelve el problema de sobrecarga de la red.

  3. Consistencia: si tiene un procedimiento establecido para completar una tarea, usar Windows Powershell se asegurará de que nunca se pierda un paso, automatice todo lo que pueda y haga que Powershell le solicite las cosas que no pueden automatizarse.

  4. Compatibilidad con .NET: Powershell es compatible con .NET Framework. Por lo tanto, todas las funciones del sistema se pueden agregar fácilmente a los scripts de PowerShell y, por lo tanto, es una ayuda para el programador en el desarrollo de los scripts. Por lo tanto, automatizar las tareas de VDI es mucho más fácil, simple y eficiente.

  5. Menos trabajo manual: - El administrador ahora puede crear, eliminar o modificar la configuración de máquinas virtuales de forma remota simplemente escribiendo los scripts. No tiene necesidad de ir a la PC individual y hacer el trabajo. También los guiones escritos son aceptables en todas las computadoras. Por lo tanto, el administrador no necesita reescribirlos una y otra vez.

  6. Reutilización: - Las secuencias de comandos una vez escritas para realizar una tarea específica se pueden almacenar para fines posteriores y también se pueden combinar con otras secuencias de comandos para realizar diferentes tareas. Por lo tanto, las tareas repetitivas se pueden realizar de una manera mucho más simple simplemente ejecutando los scripts. Esto ahorra a los administradores tiempo y dinero en la configuración de las máquinas.

  7. Soporte de canalización: - La mayor victoria para powershell es que puede canalizar cualquier cosa a cualquier cosa sin tener que analizar el texto. Puede proporcionar la salida de un comando como entrada para el nuevo conjunto y, por lo tanto, puede resolver las tareas complejas.


fuente
0

No se garantiza que Cygwin esté disponible para todas las versiones de Windows. La última vez que verifiqué que era cuestionable en máquinas de 64 bits. Powershell se está convirtiendo en el shell de comandos predeterminado para Windows, y ofrecerá acceso "nativo" a todos los recursos en una máquina Windows.

Eric Z Beard
fuente
Yo uso cygwin en Vista de 64 bits, funciona perfectamente.
lajos