Usar el cmdlet de PowerShell de tar nativo en Windows Server 2016

2

Tengo un script de PowerShell que escribí en un dispositivo con Windows 10 usando PowerShell 5.1.17763.771. Toma una ruta a un archivo .tgz, lo desarchiva y coloca la carpeta extraída en otra ruta. Para ello, utiliza el tarcmdlet integrado que se agregó a PowerShell hace uno o dos años. Funciona exactamente como se pretende en mi máquina.

Cuando se ejecuta este mismo script en Windows Server 2016, falla diciendo que tares un cmdlet no reconocido. La versión de PowerShell que se ejecuta en este servidor es 5.1.14393.3471. Ejecuté todas las actualizaciones de Windows que pude en el servidor. ¿Cómo puedo hacer que el tarcmdlet nativo funcione en Windows Server 2016? ¿Hay actualizaciones de PowerShell que me faltan? ¿Puedo instalar un módulo creado por Microsoft que incluya el tarcmdlet?

3

tares un ejecutable externo , tar.exey no un cmdlet, y mientras PowerShell puede llamar a él, no está relacionada con PowerShell.

En Windows 10 (desde la versión 1803), se puede encontrar en C:\WINDOWS\system32\tar.exe.

Esta publicación de blog de 2017 anunció la disponibilidad de tar.exe, junto concurl.exe en el contexto de contenedores . tar.exese compila a partir de las fuentes libarchive ( con licencia BSD ); instrucciones de compilación para Windows .

En Windows Server, parece que tar.exey curl.exese incluyeron por primera vez con Windows Server 2019.

5
  • ¿Habría implicaciones negativas de colocar tar.exeyo mismo en Windows Server y usarlo como lo haría en Windows 10? ¿Algún problema de licencia o compatibilidad?
    Mike
    5 feb.20 a las 20:09
  • @ Mike, esperaría que funcione técnicamente (Windows Server 2016 y (al menos las versiones anteriores de) Windows 10 comparten el mismo kernel), y creo que no habrá problemas de licencia, pero siga el enlace a la licencia que Acabo de agregar a la respuesta para sacar sus propias conclusiones. 5 feb.20 a las 20:24
  • @Mike - ¿Pudiste generar el archivo tar.exe? Usé el de Win 10 en Win 2012 r2 y no funcionó. Probé las instrucciones de compilación del enlace que mklement0 compartió, pero no pude hacer que se compilara sin errores. 31/08/20 a las 19:37
  • @ShivaNaru Terminé simplemente cargando el tar.exe precompilado de Windows 10 a nuestro servidor de Windows. Luego, lo usaría desde PowerShell llamando al archivo exe directamente con los argumentos que necesite; por ejemplo,C:\path\to\folder\tar.exe -xvf file.tar
    Mike
    2 sep.20 a las 0:25
  • @ Mike: Gracias. No me funciona en el servidor Win 2012 r2. Intenté lo que dijo y aparece este error en Powershell - El programa 'tar.exe' no se pudo ejecutar: el ejecutable especificado no es una aplicación válida para esta plataforma de sistema operativo. 3 sep.20 a las 22:45