Instalación y configuración de Windows PowerShell. Windows PowerShell - Notas útiles Instalación de powershell

0
Aplicable a:
Office 365 para profesionales y pequeñas empresas, Office 365 para empresas, [correo electrónico protegido]
Windows XP, Windows Vista, Windows Server 2003, Windows 7 y Windows Server 2008

Antes de comenzar a usar Windows PowerShell, asegúrese de tener las versiones correctas de Windows PowerShell y Windows Remote Management (WinRM) instaladas y configuradas en su computadora. Debe usar Windows Management Framework, que incluye las versiones correctas de Windows PowerShell v2 y WinRM 2.0.

Si su computadora ejecuta Windows 7 o Windows Server 2008 R2, no necesita instalar nada. El marco de administración de Windows ya está instalado.

Puede descargar e instalar Windows Management Framework si su computadora ejecuta uno de los siguientes sistemas operativos:

    Windows Vista Service Pack 1 (SP1) o 2 (SP2);

    Windows Server 2008 Service Pack 1 (SP1) o 2 (SP2);

    Windows Server 2003 Service Pack 2 (SP2);

    Service Pack 3 (SP3) de Windows XP.

Pongámonos a trabajar:

1. Elimine las versiones anteriores de Windows PowerShell de su computadora

Antes de instalar Windows Management Framework, debe eliminar cualquier versión existente de Windows PowerShell.

1.1 Desinstalación de Windows PowerShell de Windows Vista

    En el grupo Programas del Panel de control, abra la sección Programas y características y desinstale cualquier instancia de Windows PowerShell que esté presente en la lista de programas instalados. Por ejemplo, la versión CTP de Windows PowerShell v2 podría aparecer como "Windows PowerShell (TM) V2".

    En la sección Tareas, seleccione Ver actualizaciones instaladas y desinstale cualquier instancia de Windows PowerShell que aparezca como actualizaciones instaladas. Por ejemplo, Windows PowerShell V1 puede aparecer como una actualización de Windows con uno de los siguientes números de artículo en Microsoft Knowledge Base:

1.2 Eliminación de Windows PowerShell de un sistema Windows Server 2008

    Inicie Server Manager y abra la sección "Componentes".

    1. Seleccione "Eliminar funciones".

      Seleccione el valor de Windows PowerShell y siga las instrucciones para desinstalar.

    En el Panel de control, en el grupo Programas, abra el elemento Programas y características y desinstale cualquier instancia de Windows PowerShell que se encuentre en la lista de programas instalados.

    En el grupo Tareas, seleccione Ver actualizaciones instaladas. Quite cualquier instancia de Windows PowerShell que aparezca como actualizaciones instaladas.

1.3 Eliminación de Windows PowerShell de Windows Server 2003 o Windows XP

    Abra Agregar o quitar programas en el Panel de control y desinstale cualquier instancia de Windows PowerShell que aparezca como programas instalados.

    En la sección Agregar o quitar programas, seleccione Mostrar actualizaciones. Quite cualquier instancia de Windows PowerShell que aparezca como actualizaciones instaladas. Por ejemplo, Windows PowerShell V1 puede aparecer como una actualización de Windows con el siguiente número de artículo en Microsoft Knowledge Base: KB926139.

2. Elimine las versiones anteriores de WinRM de su computadora

Debe desinstalar cualquier versión existente de WinRM antes de instalar Windows Management Framework.

2.1 Desinstalación de WinRM de Windows Vista o Windows Server 2008

    En el grupo Programas del Panel de control, abra la sección Programas y características y elimine cualquier instancia del servicio de control remoto de Windows que esté presente en la lista de programas instalados.

    En el grupo Tareas, seleccione Ver actualizaciones instaladas. Elimine cualquier instancia del servicio de control remoto de Windows que esté presente en la lista de actualizaciones instaladas. Por ejemplo, la versión CTP de WinRM 2.0 podría aparecer como "WindowsRemoteManagement" con uno de los siguientes números de artículo en Microsoft Knowledge Base:

2.2 Eliminación de Windows PowerShell de Windows Server 2003 o Windows XP

    Abra Agregar o quitar programas en el Panel de control y desinstale cualquier instancia de Control remoto de Windows que aparezca como programas instalados.

    En la sección Agregar o quitar programas, seleccione Mostrar actualizaciones. Elimine cualquier instancia del servicio de control remoto de Windows que esté presente en la lista de actualizaciones instaladas. Por ejemplo, WinRM puede aparecer como una actualización de Windows con el siguiente número de artículo en Microsoft Knowledge Base: KB936059.

3. Instalación del marco de administración de Windows

    Descargue e instale el marco de administración de Windows. Seleccione el paquete que contiene Windows PowerShell v2 y WinRM 2.0 que sea apropiado para su sistema operativo, arquitectura del sistema e idioma.

    Después de instalar WinRM y Windows PowerShell, configure el software para que funcione correctamente como se describe en los siguientes pasos.

Nota

4. Comprobación de la capacidad de ejecutar scripts en Windows PowerShell

    Seleccione Inicio, Todos los programas, Accesorios, Windows PowerShell en secuencia.

    Para abrir Windows PowerShell, realice una de las siguientes acciones:

    • Si está ejecutando Windows Vista, Windows 7 o Windows Server 2008 R2, haga clic con el botón derecho en Windows PowerShell y seleccione Ejecutar como administrador. Cuando aparezca el aviso de Control de cuentas de usuario pidiéndole que continúe, haga clic en el botón Continuar.

      Si está ejecutando Windows XP o Windows Server 2003, haga clic en Windows PowerShell.

    Ejecute el siguiente comando:

    Get-ExecutionPolicy

    Si el valor devuelto es diferente de RemoteSigned, debe cambiar el valor a RemoteSigned.

    Nota

    Si la política de ejecución de scripts se establece en RemoteSigned , solo se pueden ejecutar los scripts creados en la computadora del usuario o firmados por una fuente confiable.

Preparación para ejecutar scripts en Windows PowerShell

En una sesión de Windows PowerShell abierta como administrador, ejecute el siguiente comando:

Set-ExecutionPolicy RemoteSigned

5. Verifique que WinRM tenga permiso para conectarse a Windows PowerShell

    Seleccione "Inicio", "Todos los programas", "Accesorios" en secuencia.

    Realice una de las siguientes acciones para abrir un símbolo del sistema:

    • Si está ejecutando Windows Vista, Windows 7 o Windows Server 2008 R2, haga clic con el botón derecho en Símbolo del sistema y seleccione Ejecutar como administrador. Cuando aparezca el aviso de Control de cuentas de usuario pidiéndole que continúe, haga clic en el botón Continuar.

      Si está ejecutando Windows XP o Windows Server 2003, seleccione Símbolo del sistema.

    En la línea de comando, ejecute el siguiente comando:

    winrm obtener winrm/config/client/auth

    Nota

    Si el servicio WinRM ya se está ejecutando, no necesita iniciarlo. El estado del servicio WinRM se puede verificar ejecutando el comando sc query winrm.

Busque el valor Básico = en los resultados. Si se especifica Basic = false, debe cambiarse a Basic = true .

Nota

    Si el servicio WinRM se está ejecutando y no necesita cambiar el valor básico, ejecute el comando net stop winrm para detener el servicio WinRM.

Habilitación de la autenticación básica en WinRM

    En una ventana del símbolo del sistema abierta como administrador, ejecute los siguientes comandos: El valor entre llaves ( ) distingue entre mayúsculas y minúsculas:

    winrm establece winrm/config/client/auth @(Básico="verdadero")

    Verifique Basic = true en la salida del comando.

    Nota

    Si el servicio WinRM se está ejecutando, ejecute el comando net stop winrm para detenerlo.

Proxima accion.

Ya ha pasado algún tiempo desde el lanzamiento de la versión final del último sistema operativo de Microsoft, y no solo los entusiastas que prueban versiones intermedias, sino también aquellos usuarios que descargaron la tan esperada actualización ya lograron familiarizarse con ella. ¿El nuevo sistema es bueno o no? ¿Es este el último producto innovador o solo el G8 que se suponía que saldría en ese momento? Estas son preguntas que no pueden responderse sin ambigüedades de todos modos. Además de las innovaciones obvias, que incluyen el menú Inicio que apareció en el sistema, el navegador Microsoft Edge, la compatibilidad con Xbox, la búsqueda integrada de Cortana y la vista de tareas, hay una serie de innovaciones que no todos los usuarios de Windows 10 conocen.

Y una de estas innovaciones es la capacidad de instalar productos de software directamente mediante el shell de Windows PowerShell, que se analizará más adelante en este artículo. A pesar de que esta funcionalidad apareció en abril de 2014, junto con el lanzamiento de Windows Management Framework 5.0 Preview, solo podría volverse nativa con el lanzamiento final de las "decenas". Entonces, veamos qué módulo es responsable de esta funcionalidad y cómo puede instalar productos de software sin descargar archivos de instalación.

Módulo OneGet de Windows PowerShell

Desde el lanzamiento de Windows Management Framework 5.0 Preview, Windows PowerShell tiene varias funciones nuevas diseñadas para facilitar la administración de las computadoras. Estas funciones incluyen dos tecnologías interesantes, a saber, la configuración de estado deseado de Windows PowerShell y la certificación para conmutadores de red de Windows.

En el caso de Conmutadores de red certificados para Windows, se han agregado varios cmdlets de Windows PowerShell que son responsables de administrar los conmutadores de red certificados por Windows. Es decir, hay 19 cmdlets nuevos que puede encontrar ejecutando el comando "Get-Command *-NetworkSwitch*" en el shell de PowerShell. Dado que la tecnología es bastante seria y merece una atención especial, en este artículo me limitaré a una pequeña descripción y no consideraré esta tecnología con más detalle.

Pero la segunda tecnología debe discutirse con más detalle. Si está instalando Windows Management Framework 5 o el sistema operativo Windows 10, puede usar una herramienta que hace que sea mucho más fácil encontrar e instalar software en sus computadoras. OneGet es una herramienta de este tipo. OneGet es un agregador de gestión de paquetes, es decir, un módulo que utiliza repositorios especiales para proporcionar una interfaz única para descubrir, instalar e inventariar software. En otras palabras, esta tecnología, por un lado, proporciona un conjunto de cmdlets que permiten al usuario final administrar los paquetes de instalación (que discutiremos un poco más adelante) y, por otro lado, proporciona una interfaz para escribir paquetes de proveedores. .

Antes de comenzar a tratar el módulo en sí, debe prestar atención a varias definiciones que están estrechamente relacionadas con esta tecnología, a saber:

  • Paquete. En pocas palabras, un paquete es un programa que se construye e instala desde una fuente específica utilizando cualquier sistema de administración de paquetes disponible. Por lo general, un paquete proporciona código compilado, con metainformación adicional, que puede incluir una descripción del paquete, su versión o "dependencias". Un sistema de administración de paquetes, por ejemplo, para realizar una actualización automática de un producto de software a una nueva versión, para asegurarse de que se instalarán todas las dependencias del paquete, debe procesar dicha metainformación y, si es necesario, debe instalar automáticamente todo lo que falta. paquetes;
  • repositorio. Según Wikipedia, los repositorios son lugares donde se almacenan y mantienen los datos. La mayoría de las veces, los datos en el repositorio se almacenan en forma de archivos disponibles para su posterior distribución a través de la red. Los repositorios fueron utilizados originalmente por los sistemas Linux, lo que le permite instalar los paquetes necesarios para ejecutar el sistema desde otras ubicaciones. La mayoría de los repositorios son gratuitos, pero algunas empresas brindan acceso a sus propios repositorios mediante una suscripción paga. Hablaremos de los repositorios de OneGet un poco más adelante;
  • Gerente de empaquetación. Es un conjunto de herramientas de software encargadas de automatizar el proceso de instalación, actualización, configuración y eliminación de paquetes de software. Por lo general, los paquetes incluyen una base de datos que enumera los requisitos previos y las dependencias del software, así como información sobre la versión del producto para evitar que se utilicen productos de software que no funcionan. Los administradores de paquetes incluyen Linux apt-get o NuGet, que luego apareció en los sistemas Windows. A su vez, OnetGet es una extensión lógica de NuGet, que actúa como un agregador de todos los administradores de paquetes disponibles, denominados proveedores.

Inicialmente, Microsoft restringe el uso de la mayoría de los proveedores disponibles proporcionando un conjunto básico que le permite descubrir e instalar proveedores adicionales para administrar su software. Los proveedores clave incluyen:

  • Oreja– un proveedor que permite descubrir otros proveedores;
  • MSI– un proveedor diseñado para procesar archivos MSI;
  • MSU– a su vez, el proveedor responsable de manejar los archivos de actualización de Microsoft;
  • ARP(Agregar/Quitar programas) - un proveedor responsable de los datos de inventario sobre cualquier producto de software que esté registrado en el componente "Quitar o cambiar un programa" del sistema;
  • PowerShellObtener- Un proveedor que le permite administrar varios módulos de PowerShell.

Puede encontrar la lista completa de proveedores de OneGet con sus breves descripciones en el siguiente enlace.

El propio módulo OneGet incluye 10 cmdlets de Windows PowerShell, la mayoría de los cuales se tratarán en la siguiente sección de este artículo. Estos cmdlets incluyen:

  • Find-Package: busca paquetes;
  • Get-Package: devuelve una lista de todos los paquetes instalados en la computadora;
  • Get-PackageProvider: devuelve una lista de proveedores que están conectados a OneGet en esta computadora;
  • Get-PackageSource: devuelve una lista de fuentes de paquetes que están registradas con un proveedor de paquetes en particular.
  • Paquete de instalación: le permite instalar uno o más productos de software;
  • Register-PackageSource: agrega una fuente de paquete para el proveedor de paquetes especificado;
  • Guardar paquete: le permite guardar el paquete en la computadora local sin una instalación posterior;
  • Set-PackageSource: cambia para el proveedor de paquetes especificado la fuente del paquete;
  • Uninstall-Package: eliminación de uno o más paquetes de software;
  • Unregister-PackageSource: elimina un origen de paquete registrado.
    • Instalación de software usando OneGet

      Así que es hora del proceso de instalación de productos de software. A continuación, verá cómo puede instalar un proveedor de paquetes, encontrar el software requerido, instalarlo y también cómo puede eliminar una aplicación innecesaria y descargar el paquete de instalación del producto de software a su computadora. Comencemos en orden.

      Instalación del proveedor de paquetes Chocolatey

  1. Abra Windows PowerShell y para mostrar una lista de fuentes de paquetes que están registradas con OneGet en la computadora local, ejecute el comando Get-PackageSource. Tenga en cuenta que si especifica un proveedor de paquetes específico en el comando, el cmdlet Get-PackageSource solo le mostrará las fuentes asociadas con el proveedor que especificó. De lo contrario, el comando devuelve todas las fuentes de paquetes que están registradas con OneGet. Dado que necesitamos ver las fuentes del paquete para todos los proveedores, el comando se ejecutará sin ningún parámetro adicional. Asegúrese de tener en cuenta que en esta etapa aún no ha instalado un proveedor de paquetes adicional que se utilizará para instalar productos de software. Puede ver la salida del comando en la siguiente imagen:

  2. Como puede ver en la ilustración anterior, el proveedor Chocolatey no está instalado en nuestra máquina local. Por lo tanto, esto necesita ser corregido. Tenga en cuenta que para agregar un proveedor de paquetes, ExecutionPolicy de PowerShell debe establecerse en Irrestricto. De lo contrario, no podrá agregar el proveedor. Déjame recordarte que el cmdlet Get-ExecutionPolicy le permite mostrar las políticas de ejecución para la sesión actual. La política de ejecución es parte de la política de seguridad de Windows PowerShell que determina si los archivos de configuración se pueden cargar y los scripts se pueden ejecutar, y qué scripts requieren una firma digital para ejecutarse. El valor predeterminado es " Restringido” (no carga archivos de configuración y no ejecuta scripts), por lo que si no ha cambiado el valor de la política de ejecución por sí mismo, ejecute el comando Establecer política de ejecución sin restricciones. Dado que el ámbito de la política de ejecución predeterminada es LocalMachine, de modo que la configuración de la política se aplica solo al usuario actual, también puede agregar el parámetro al comando aplicado. -Alcance con significado Usuario actual. La salida de estos dos comandos se puede ver en la siguiente ilustración:

  3. En esta etapa, podemos ver la lista de proveedores que están registrados con OneGet en la computadora actual. Para hacer esto, puede usar el cmdlet Get-PackageProvider. Este cmdlet, como ya mencioné un poco más arriba, devuelve una lista de proveedores de paquetes que ya están conectados a OneGet. Opcionalmente, puede filtrar los resultados en función de la totalidad o parte de uno (varios) nombres de proveedores. Por ejemplo, para ver qué proveedores están actualmente conectados, ejecutaría el cmdlet Get-PackageProvider sin opciones adicionales. Como puede ver en la siguiente ilustración, inicialmente tenía 4 proveedores de este tipo conectados a mi computadora, de los cuales ya les hablé hoy. Ahora, para instalar el proveedor Chocolatey en su computadora, debe ejecutar el comando Get-PackageProvider -Nombre Chocolatey -ForceBootstrap, donde el parámetro -ForceBootstrap se encarga de instalar automáticamente el proveedor. Tenga en cuenta que, como regla general, cuando instala el proveedor Chocolatey, también debe instalarse el proveedor NuGet. Como puede ver en la siguiente ilustración, después de reutilizar el cmdlet Get-PackageProvider, el proveedor que estamos instalando ya debería aparecer en la lista:

Ahora podemos generar una lista completa de todos los paquetes disponibles en los proveedores y canalizarla al cmdlet Exportar-CliXML para crear una representación XML de objetos y guardarlos en un archivo XML. Tenga en cuenta que la lista que exporte cambiará constantemente y, con el tiempo, se agregarán más y más paquetes a los repositorios que utiliza. En consecuencia, no olvide reemplazar el archivo que exporta de vez en cuando. Para exportar la lista de paquetes y guardar esta lista en la carpeta C:\TestPosh, debe ejecutar el siguiente comando: paquete de búsqueda | Exportar-CliXML C:\TestPosh\Test.xml

Tenga en cuenta que el procedimiento de exportación definitivamente le llevará algún tiempo. Después de que el comando termine de ejecutarse y se cree un archivo XML en su computadora, impórtelo y, para facilitar la visualización, use la canalización y el comando vista en cuadrícula, que se encarga de mostrar los resultados del comando en una ventana en forma de tabla interactiva, se puede ver qué paquetes estarán disponibles para su instalación. Naturalmente, puede abrir esta lista de paquetes usando cualquier aplicación que pueda procesar archivos XML, por ejemplo, usando el mismo Excel. Este comando, como puede ver en la siguiente ilustración, se ve así: Importar-CliXML C:\TestPosh\Test.xml | Fuera GridView

Dado que el proveedor ya está instalado, puede continuar con la siguiente parte de este procedimiento, que es

Instalación de software mediante PowerShell

Antes de instalar productos de software, debemos mirar lo que ya está instalado en la computadora. Para realizar esta tarea, puede utilizar el cmdlet Obtener paquete, que devuelve una lista de todos los paquetes de software instalados en la máquina local, ya sea a través de OneGet u otras herramientas de instalación de aplicaciones. Opcionalmente, también puede ejecutar el cmdlet Obtener paquete y en equipos remotos ejecutándolo como parte de un Invoke-Command, un comando Enter-PSSession o un script.

En el caso de que desee obtener información sobre software específico, por ejemplo, sobre productos de Microsoft Office 2013 instalados, puede usar el parámetro –Name junto con este cmdlet con el valor apropiado, por ejemplo, Obtener paquete -Nombre "office 2013". El resultado de este cmdlet se puede ver a continuación:

Antes de instalar el software, intentemos decidir qué necesitamos instalar. Dado que solo Office 2013 y algunas otras aplicaciones están instaladas en la máquina, a continuación le mostraré cómo puede instalar productos de software como Adobe Creative Cloud, Adobe Reader, Notepad ++, así como Process Explorer, Process Monitor y WinRar.

Debido al hecho de que antes del proceso de instalación en sí, necesitamos localizar los paquetes, debemos usar las capacidades del cmdlet Buscar paquete. Como notó un poco antes, este cmdlet le permite buscar paquetes de instalación en fuentes de paquetes disponibles en la computadora local. En caso de que no use ningún parámetro con este cmdlet, el comando mostrará una lista completa de todas las aplicaciones, como se señaló anteriormente.

Por ejemplo, para empezar, intentemos encontrar aplicaciones de Adobe que estén disponibles para instalar desde el proveedor Chocolatey que agregamos. Para ello, además del propio cmdlet, basta con especificar el parámetro -Nombre e ingrese el producto de software deseado como su valor. Debido a que los paquetes de instalación pueden tener un nombre de producto después de la palabra Adobe, ingrese el nombre del producto de la siguiente manera: Adobe* como se muestra en la siguiente ilustración. Como puede ver, el módulo OneGet encontró el siguiente paquete de instalación en el repositorio: Adobe Creative Cloud versión 1.0. En principio, este es uno de los productos que está buscando, lo que significa que debe instalarse. Para hacer esto, como también puede ver en la siguiente ilustración, necesita usar las capacidades del cmdlet Paquete de instalación. Para instalar Creative Cloud, ejecute el siguiente comando Paquete de instalación -Nombre adobe-creative-cloud –Fuerza, donde el parámetro Force, como es habitual en PowerShell, anula las restricciones que impiden que el comando se ejecute hasta que los cambios comiencen a violar los requisitos de seguridad. La salida de estos comandos se puede ver en la siguiente ilustración:

Ahora, después de que se haya instalado el primer producto de software, intentemos buscar una versión específica de Adobe Reader. Para ello, además del ya conocido comando Buscar paquete –Nombre AdobeReader se debe agregar el parámetro -Todas las versiones, que devuelve todas las versiones disponibles de un paquete, o todas las versiones de un paquete que están en el rango especificado en las opciones Versión mínima y Versión máxima. Tenga en cuenta que este parámetro es opcional, ya que la búsqueda muestra inicialmente la última versión del producto de software. Ahora, de todas las versiones disponibles, debemos elegir la que se debe instalar en la computadora, por ejemplo, que sea la versión 2015.007.20033 . para instalar esta versión particular del lector, debe usar el comando Paquete de instalación -Nombre AdobeReader añadir parámetro –Versión requerida con significado 2015.007.20033 , que especifica la versión exacta del paquete que desea instalar. También puede establecer la versión máxima disponible del producto agregando el parámetro Versión máxima con el valor correspondiente. La salida de estos comandos se muestra en la siguiente ilustración:

Si necesita instalar la última versión de un producto de software y al mismo tiempo no desea escribir varios comandos en PowerShell, puede generalizar la búsqueda e instalación de un paquete mediante una canalización. Por ejemplo, en el caso de instalar la última versión del editor de texto Notepad++, puede ejecutar el siguiente comando: Buscar paquete -Nombre NotepadPlusPlus | Paquete de instalación – Fuerza. Por lo tanto, busca un paquete en el repositorio y, si encuentra un resultado, lo instala inmediatamente en modo silencioso. El proceso de instalación de este producto de software se muestra a continuación:

Ahora, dado que de acuerdo con la tarea anterior, queda por instalar Process Explorer, Process Monitor y WinRar, intentemos instalar varios paquetes de software a la vez. Para ello, es conveniente saber exactamente cómo se llaman estos paquetes en el propio repositorio. Como escribí anteriormente, esto se puede verificar usando el cmdlet paquete de búsqueda | Fuera GridView. Una vez que se conocen los nombres de los paquetes, puede continuar con la instalación. Para hacer esto, puede ejecutar el siguiente comando: Buscar paquete -Nombre procexp, procmon, winrar | Paquete de instalación. En este ejemplo, como puede ver en la siguiente ilustración, específicamente no especifico el parámetro fuerza para que pueda prestar atención a todo el proceso de instalación de varios paquetes de software al mismo tiempo.

Guardar y borrar programas

Los dos últimos cmdlets que se analizarán en este artículo son responsables de guardar el paquete de instalación y eliminar el programa instalado. Comencemos con el ahorro.

Para guardar el paquete de instalación, puede usar el siguiente cmdlet del módulo OneGet, es decir, el módulo Guardar paquete. Este cmdlet le permite guardar paquetes en la computadora local sin instalarlos más tarde. De forma predeterminada, este cmdlet guarda la última versión del producto de software; sin embargo, si agrega el parámetro al cmdlet actual Todas las versiones, todas las versiones del programa que seleccionó se guardarán en su computadora. Además, similar a los parámetros de los cmdlets de búsqueda e instalación, además de guardar todas las versiones, utilizando los parámetros -Versión máxima y –Versión mínima, también puede seleccionar el rango de versiones del paquete que desea conservar. Para guardar el paquete en su computadora, además de la opción Nombre y, si es necesario, un parámetro que sea responsable de la versión del producto, debe especificar el parámetro Sendero con la ubicación futura de su instalador.

Como puede ver en la siguiente ilustración, el comando Guardar paquete -Nombre Procexp -Ruta C:\TestPosh guarde la última versión de Process Explorer en la carpeta C:\TestPosh:

Si instaló accidentalmente el paquete incorrecto, siempre puede eliminarlo usando el módulo OneGet. Para hacer esto, use el cmdlet Paquete de desinstalación. Al igual que con el resto de los cmdlets de este módulo, debe especificar el parámetro Nombre con el nombre de aplicación adecuado para eliminar el programa, y ​​también puede usar el parámetro Forzar para eliminar el programa de forma silenciosa. Por ejemplo, para eliminar WinRAR instalado previamente de su computadora, debe ejecutar el siguiente comando: Desinstalar-Paquete -Nombre WinRAR -Force como a continuación:

Conclusión

En este artículo, aprendió sobre una de las características del nuevo sistema operativo de Microsoft, a saber, la instalación de productos de software utilizando el shell de comandos de Windows PowerShell. Le hablé sobre el módulo OneGet en sí, sobre la terminología básica utilizada junto con esta tecnología y sobre qué proveedores de paquetes preinstalados existen. Aprendió cómo puede conectar un proveedor de paquetes de terceros a OneGet y cómo puede usarlo para buscar, instalar, guardar y eliminar productos de software.

Espero que esta información te haya sido útil y hayas aprendido algo nuevo por ti mismo. Si tiene alguna pregunta sobre el material de este artículo, pregúntela en los comentarios, estaré encantado de brindarle ayuda.

VN:F

Calificación: 9.9/ 10 (18 votos emitidos)

Instalación de programas usando PowerShell en Windows 10, 9.9 de 10 basado en 18 calificaciones

Hoy le mostraré cómo instalar y usar el Módulo de administración de Active Directory para Windows PowerShell. Puede usar los cmdlets en este módulo para obtener información y administrar varios objetos y configuraciones de AD. Este módulo se instala como un componente separado en los sistemas operativos de servidor. En los sistemas operativos de escritorio (Windows 10, 8.1, 7), deberá instalar el paquete Herramientas de administración remota del servidor (RSAT), que incluye un módulo para interactuar con AD desde PowerShell. Además de este módulo, RSAT incluye todos los complementos gráficos de administración necesarios, las utilidades de línea de comandos y los módulos de Windows PowerShell para la administración de Windows y AD. Debe descargar este paquete para la versión de su sistema operativo usted mismo desde el sitio web de Microsoft.

Instalación del módulo de Active Directory para Windows PowerShell

El Módulo de Active Directory para Windows PowerShell apareció por primera vez en Windows Server 2008 R2. Se establece automáticamente en . Para usar los cmdlets de PowerShell del módulo AD, el dominio debe tener al menos un controlador que ejecute Windows Server 2008 R2 o posterior. Si su red solo tiene controladores de dominio de Windows Server 2003 y 2008, debe descargar e instalar el servicio de puerta de enlace de administración de Active Directory. Los cmdlets de PowerShell del módulo Active Directory interactúan con un servicio web que forma parte de un controlador de dominio con el rol ADDS.

Puede instalar el Módulo de Active Directory para Windows PowerShell no solo en un controlador de dominio, sino también en cualquier estación de trabajo o servidor miembro del dominio. En Windows Server 2016, puede instalar el Módulo de Active Directory para Windows PowerShell desde la consola gráfica del Administrador del servidor mediante el Asistente para agregar funciones y características. Basta con iniciar el asistente y, en la etapa de selección de componentes, seleccionar Herramientas de administración remota del servidor -> Herramientas de administración de funciones -> Herramientas AD DS y AD LDS -> Módulo de Active Directory para Windows PowerShell(Herramientas de administración remota del servidor > Herramientas de administración de funciones > Herramientas de AD DS y AD LDS -> Módulo Active Directory para Windows PowerShell).

Este módulo también se puede instalar mediante PowerShell. Abra una consola de PowerShell con derechos de administrador y ejecute los comandos:

Administrador del servidor del módulo de importación
Add-WindowsFeature -Nombre "RSAT-AD-PowerShell" –IncludeAllSubFeature

En Windows 10, Windows 8.1 y Windows 10, para instalar el módulo RSAT-AD-PowerShell, primero debe instalar la versión adecuada de RSAT, luego de eso, el módulo debe estar habilitado en el Panel de control (Panel de control -> Programas -> Programas y características y haga clic en "Activar características de Windows" -> Herramientas de administración remota del servidor -> Herramientas de administración de roles -> Herramientas AD DS y AD LDS -> active el módulo Active Directory para el componente Windows PowerShell.

O puede instalar el módulo usando PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell

Importación y uso del módulo PowerShell de Active Directory

En Windows 7 y Windows Server 2008 R2 con PowerShell 2.0 instalado, para comenzar a usar el módulo AD, debe importarlo a su sesión de PowerShell con el comando:

Alternativamente, puede exportar un módulo desde una máquina remota donde ya está instalado e importarlo a su sesión de PowerShell:

$MySession = New-PSSession -ComputerName MyDomainController
Export-PSsession -Session $MySession -Module ActiveDirectory -OutputModule RemoteADPosh
Remove-PSSession -Sesión $MySession
Módulo de importación RemoteADPosh

En Windows Server 2012 R2/2016 y Windows 8.1/Windows 10, el módulo (si está instalado) se importa automáticamente a la sesión.

Si la computadora está unida a un dominio, se crea una unidad de forma predeterminada con el nombre ANUNCIO:. Puede navegar a este disco con el comando CD y usar los comandos familiares del sistema de archivos para navegar por este disco. Las rutas están en formato X500.

PD C:\> cd AD:
PD AD:\> dir

PD AD:\> cd "DC=vmblog,DC=ru"

Puede mostrar una lista de cmdlets de módulo disponibles para trabajar con Active Directory de la siguiente manera:

Obtener comando - Módulo ActiveDirectory

Las diferentes versiones de Windows tienen una cantidad diferente de cmdlets disponibles:

  • Windows Server 2008 R2: 76 cmdlets.
  • Windows Server 2012 - 135 cmdlets
  • Windows Server 2012 R2/2016 - 147 cmdlets.

Ahora puede usar los cmdlets de PowerShell para administrar AD. En nuestros sitios, puede familiarizarse con el uso de los siguientes cmdlets del módulo AD para PowerShell: , .

Windows PowerShell es un shell de línea de comandos y un lenguaje de secuencias de comandos con una gran potencia y una hermosa sintaxis para la administración del sistema. Windows PowerShell es una excelente herramienta para gestionar y automatizar la administración del sistema operativo Windows, así como de las aplicaciones que se ejecutan en Windows.

Yo era un ferviente admirador de vbs-scripts. Como me di cuenta de que para aquellas tareas para las que anteriormente usaba Delphi, el lenguaje de scripting vbs es bastante adecuado. Después de todo, es mucho más conveniente simplemente abrir un bloc de notas, poner algunas líneas allí, guardar el archivo con la extensión deseada y ejecutar el script. Para ello no hace falta instalar nada, como Delphi, que también es de pago.

Aunque vbs no está nada mal, su sucesor PowerShell tiene muchas más funcionalidades.

Tengo un script vbs que automáticamente publica imágenes en uno de los blogs. Era necesario alinear la imagen en ancho o alto, según la resolución de la imagen añadida. Y por eso no pude obtener la resolución de las imágenes usando un script vbs, pero a través de PowerShell esto se hace de manera muy simple.

si un A partir de Windows 7, PowerShell viene incluido con el mismo Windows, luego en Windows XP necesitas descargarlo e instalarlo - descargar PowerShell V2 para Windows XP SP3.

La quinta versión de Powershell se puede descargar desde el enlace: microsoft.com, también describe qué archivo para el sistema operativo deseado descargar y cómo instalarlo.

¿Cómo permitir que se ejecuten los scripts locales de PowerShell?

De forma predeterminada, Windows no le permitirá ejecutar scripts de PowerShell por motivos de seguridad. Debe permitir la ejecución de scripts locales. Ejecute el comando en la consola (le permitirá ejecutar scripts locales y scripts descargados firmados con un certificado de confianza):

powershell -Conjunto de comandos-ExecutionPolicy RemoteSigned

De lo contrario, cuando intente ejecutar su script, verá el siguiente texto:

No se puede cargar el archivo C:\ImageSize.ps1 porque las secuencias de comandos no están permitidas en este sistema. Escriba "get-help about_signing" para obtener más información.
+ CategoryInfo: NotSpecified: (:) , ParentContainsErrorRecordException
+ Totalmente calificadoErrorId: RuntimeException

Para revertir esta política de seguridad, escriba:

powershell -Command Set-ExecutionPolicy Restringido

Para permitir la ejecución de scripts sin verificación de firma, escriba:

powershell -Conjunto de comandos-ExecutionPolicy sin restricciones

Si ve el siguiente mensaje al ejecutar el script:

Advertencia de seguridad Ejecute solo scripts en los que confíe. Si bien las secuencias de comandos de Internet pueden ser útiles, esta secuencia de comandos puede dañar potencialmente su computadora. ¿Desea ejecutar \server\scripts\my.ps1? [D] No ejecutar [R] Ejecutar una vez [S] Suspender [?] Ayuda (el valor predeterminado es "D"): d

Y si desea deshacerse de él, cuando ejecute el script, use el parámetro -ExecutionPolicy Bypass

Powershell -ExecutionPolicy Bypass -archivo "\\servidor\scripts\my.ps1"

¿Cómo ejecutar un script de PowerShell?

Ingrese el comando en la línea de comando

Powershell -Archive su-script-name.ps1

Donde your-script-name.ps1 es el nombre de su script. Los archivos de script de PowerShell tienen la extensión *.ps1

Ayuda o asistencia con Windows PowerShell

PowerShell tiene varios cmdlets para obtener esta o aquella ayuda. Pero el más importante es: Get-Help

Introduzca los comandos en la consola:

powershell -command Obtener ayuda

powershell -comando Obtener-Ayuda -?

Y obtenga dos descripciones diferentes que se complementan entre sí sobre cómo usar la ayuda.

Las funciones de ayuda son bastante extensas, con ejemplos y descripciones detalladas en ruso. Por lo tanto, puede generarlo en varios formatos.

Por ejemplo:

  • powershell -command Get-Help Get-Help: ayuda general para el cmdlet Get-Help
  • powershell -command get-help Get-Help -examples - ejemplos de cómo puede usar el cmdlet get-help
  • powershell -command get-help Get-Help -detailed: ayuda detallada para el cmdlet get-help
  • powershell -command get-help Get-Help -full: la ayuda más completa sobre el cmdlet get-help

winintro.ru/windowspowershellhelp.ru/ - ayuda en forma de html-book

Notas de Windows Powershell:

Operadores de comparación

  • -eq - Igual
  • -ne - No igual - No igual
  • -ge - Mayor o igual - Mayor o igual
  • -gt mayor que
  • -lt - Menos que - Menos que
  • -le - Menor o igual - Menor o igual
  • -like - Comparación de comodines - Use comodines para hacer coincidir un patrón
  • -notlike - Comparación de comodines - Use comodines para buscar inconsistencias de comodines
  • -match - Comparación de expresiones regulares - Use expresiones regulares para hacer coincidir un patrón
  • -notmatch - Comparación de expresiones regulares - Use expresiones regulares para buscar inconsistencias de patrones
  • -reemplazar - Reemplazar operador - Reemplaza parte o todo el valor a la izquierda del operador
  • -contiene - Operador de contención - Determina si el valor a la izquierda del operador contiene el valor a la derecha. El resultado es un valor booleano.
  • -notcontains - Operador de contención: especifica que el valor a la izquierda del operador no contiene el valor a la derecha. El resultado es un valor booleano.

De forma predeterminada, los operadores de comparación no distinguen entre mayúsculas y minúsculas.
Para la comparación entre mayúsculas y minúsculas, el comando tiene el prefijo "c". Por ejemplo, el operador -eq que distingue entre mayúsculas y minúsculas se cambia a "-ceq".
Para una comparación explícita que no distingue entre mayúsculas y minúsculas, el comando tiene el prefijo "i". Ejemplo: el operador -replace no distingue entre mayúsculas y minúsculas -ireplace

  • -es - es un tipo
  • -isnot - No es un tipo
  • -as - Como tipo, no hay error si la conversión falla

Operadores lógicos de PowerShell:

  • -y - Ambas condiciones deben ser verdaderas para que la expresión sea verdadera
  • -o bien - Una o ambas condiciones deben ser verdaderas para que la expresión sea verdadera
  • -xor - Una condición debe ser verdadera y la segunda debe ser falsa para que la expresión sea verdadera
  • -no: las condiciones especificadas deben evaluarse como "falso" para que la expresión sea verdadera
  • ! - La condición especificada debe evaluarse como "falsa" para que la expresión sea verdadera

$myVar -es "String" $myVar -eq 123 $myVar -ceq $myVar2 "abcdef" -like "abc*" "abcdef" -replace "dEf","xyz" $myVar1 -is "String" -y $myVar2 -es "Int" (1 -eq 1) -y -no (2 -gt 2)

Operaciones con cadenas

#Dividir la cadena por espacios: $cadena = "Cadena de prueba" $cadena.dividir(" ") $cadena.IndexOf(" ") #Buscar $cadena para el primer espacio # Devuelve el índice basado en cero de la primera aparición de PS> "abcdeabcde".indexOf("cde") 2 # Devuelve la posición del índice desde la última aparición del carácter especificado PS> "abcdeabcde".lastIndexOf("c") 7 # Devuelve una subcadena que comienza en la posición 1 PS> " abcdefgh".Substring(1) bcdefgh # Devuelve una subcadena que comienza en la posición 1 y 4 caracteres de largo PS> "abcdefgh".Substring(1,4) bcde # Inserta una subcadena desde la posición 0 PS> "abcdefgh".insert(0," X") Xabcdeabcde # Eliminar de la posición 0 longitud 2 PS> "abcdefgh".remove(0,2) cdeabcde # Propiedad del objeto - longitud de cadena PS> "abcdefgh".longitud 8 # Devuelve True si la cadena contiene la subcadena "cde" PS> "abcdefgh" .Contains("cde") True # Devuelve True si la cadena comienza con la subcadena "abc" PS> "abcdefgh".startsWith("abc") True # Devuelve True si la cadena termina con la subcadena " fgh" PS> "abcdefgh". Termina con ("fgh" ) Tru e # Devuelve True si la cadena contiene la subcadena "cde" PS> $"abcdefgh" -like "*cde*" True # Devuelve una matriz donde "d" es el delimitador PS> "abcdefgh" -split "d" abc efgh # Devuelve una cadena combinada de dos ":" - separador PS> "abcdefgh", "xyz"-join ";" abcdefgh;xyz # Devuelve una cadena donde "abc" será reemplazado por "XYZ" PS> "abcdefgh".replace("abc","XYZ") XYZdefgh # Devuelve una cadena donde los caracteres se convierten a MAYÚSCULAS PS> "abcdefgh ".ToUpper( ) ABCDEFGH # Devuelve una cadena donde los caracteres se convierten a minúsculas PS> "ABCDEFGH".ToLower() abcdefgh

Variables predefinidas

$casa– directorio de usuarios
$NULO- vacío
$verdadero- verdad
$falso- mentiras
$DebugPreference– “Continuar” salida de depuración, “SilentlyContinue” no muestra información de depuración. Ver Comando Escribir-Depurar

Trabajar con archivos

$cadena | Out-File $archivo -Anexar #Agregar $cadena con una nueva línea al archivo $archivo $cadena = obtener contenido -Path $archivo #Obtener el contenido del archivo en $cadena $archivo $chistes = ::ReadAllText($archivo ) #leer todo el archivo en una sola línea Test-Path "C:\test.txt" #Comprobar si el archivo existe

Encuentre todos los archivos con una extensión de nombre de archivo específica en un directorio y subdirectorios.
Luego copie estos archivos a otro directorio.

$flist = get-childitem e:\doc\* -include *.pdf -recurse $flist | ForEach-Object($_.CopyTo("e:\doc\all_pdf\" + $_.PSChildName)) ls d:\ | ?($_.psiscontainer) | seleccionar nombre completo #Mostrar directorios solamente ls d:\ | ?(!$_.psiscontainer) | select fullname #Mostrar archivos solamente $local = Get-Location #Directorio actual $local.Path # Directorio de trabajo $local.Drive.Root # Root $local.Drive.Name # Letra de la unidad $local.Drive.Used # Unidad utilizada $local .Drive.Free # Libre en disco

Visualización de los nombres completos de los archivos en la unidad D: que han cambiado entre el 1 de junio de 2014 y el 20 de septiembre de 2014:

Ls d:\ -recurso | ?(!$_.psiscontainer) | seleccione nombre completo,LastWriteTime | Where-Object ($_.LastWriteTime -ge "01/06/2014" -y $_.LastWriteTime -le "20/09/2014")

Mostrar texto en la pantalla

# texto al que prestar atención. Resaltado en amarillo. Write-Warning("El texto necesita atención") # Solo muestra el texto Write-Host("Solo texto") #habilita la salida de depuración $DebugPreference = "Continuar" # imprime la información de depuración Write-Debug "No se puede abrir el archivo". # salida de depuración deshabilitada $DebugPreference = "SilentlyContinue"

Pausa por unos segundos

Start-Sleep -s 15 # Pausa durante 15 segundos

Pausa en la consola hasta que se presione Enter

Host de lectura "Presione Enter"

Trabajar con procesos

#Tarea: eliminar todos los procesos llamados Bloc de notas # Método #1 get-process Notepad | Stop-Process # Método #2 (Solo funciona con un proceso) $plist = get-process Notepad $plist.Kill() # Método #3 (igual que 2, pero todos los procesos) $plist = get-process Notepad $ plist | ForEach-Object ($_.Kill()) #Obtener procesos y sus fechas de inicio: Get-Process| Formato-Nombre de la tabla, Hora de inicio - Tamaño automático

Incremento

$i++: en el momento de la llamada, tengo el valor anterior, pero luego aumenta en 1++

++$i - en el momento de la llamada, i se incrementa en 1

arreglos

$matriz = 17,15,160 #creó una matriz de tres elementos $matriz -contiene $elemento #la matriz contiene el elemento $archivo1 #0º elemento de la matriz $archivo1.count #tamaño de la matriz #eliminación del elemento "asdf" de la matriz $matriz = @ ("adsf","adf","erge") $matriz = $matriz |? ($_ -ne "adf") #obtener solo elementos de matriz únicos $a = @(1,2,3,4,5,5,6,7,8,9,0,0) $a = $a | seleccione -uniq #índice de la primera aparición del elemento en la matriz $array.indexOf("cde")

If Elseif Else construir

if ($i -eq 0) ( Write-Host("i es cero") ) ElseIf ($i -eq 1) ( Write-Host("i es igual a uno") ) Else ( Write-Host("i no es igual a cero ni a uno")

Para cada bucle

$servicios = Get-Service ForEach ($servicio en $servicios) ( $servicio.Detener() ) 65 #convertir código ASCII al carácter "A" #convertir carácter a código ASCII "Hola" #convertir cadena a códigos ASCII

Esperando a que se presione cualquier tecla:

$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL $HOST.UI.RawUI.Flushinputbuffer() $host.ui.RawUI.WindowTitle = "(!LANG:elimS Título de la ventana" #задаем заголовок окна !}

Tipos de datos en PowerShell

Los tipos más comunes:

Cadena de longitud fija de caracteres Unicode Un carácter Unicode de 16 bits Un carácter sin signo de 8 bits Entero con signo de 32 bits Entero con signo de 64 bits Valor booleano verdadero/falso Un valor decimal de 128 bits Número de coma flotante de 32 bits de precisión simple Doble -Precisión Número de punto flotante de 64 bits Fecha y hora Objeto Xml Una matriz de valores Objeto Hashtable

También hay constantes integradas: $true,$falso, $nulo

Unicódigo: Para codificar un carácter Unicode en una cadena de PowerShell, prefije el Unicode con 0x y transfiéralo a System.Char:

PD > 0x263a ☺

Conversión de tipos de datos

Para forzar una conversión a un tipo de datos específico, prefije el valor o la variable con el tipo entre corchetes, esto se conoce como Operador de reparto y fuerza el tipo de datos elegido:

PD C:\> "0064" 64 PD C:\> $falso 0 PD C:\> ("0x" + "FF") 255

Prueba de tipos de datos

PD C:\> 32 -es
Verdadero PD C:\> $verdadero -es
Verdadero

Funciones en Powershell

función elimS ( #una función que tiene múltiples parámetros de entrada param($cadena = "predeterminado", $entero = 7) #parámetros de entrada write-host "cadena = " $cadena " | entero = " $entero ) elimS #llamar a una función sin definiciones de parámetros, los parámetros tomarán el valor predeterminado $cadena = "cadena de prueba" $entero = 911 elimS $cadena $entero #así es como llamar a la función correctamente - separamos los parámetros con un espacio elimS -entero $entero - cadena $cadena #esto también es correcto $global:var1 = "prueba" es una variable global, por lo que puede pasar el valor de las variables de las funciones.

Más información sobre cómo pasar múltiples parámetros a una función:

Descansar

get-host #show powershell version Clear-RecycleBin c: -Force #empty trash Compress-Archive -Path C:\test\* -DestinationPath C:\archive\test1.zip #zip folder Expand-Archive -Path C:\temp \test1.zip "C:\test\Nueva carpeta\" #desempaquetar archivo (Get-CimInstance Win32_operatingSystem).lastbootuptime #mostrar tiempo de arranque del sistema write-host $sleep_array.GetType().FullName #mostrar cambio de tipo de variable ($a) (#caso - múltiplo si 1 ($b = $b+10) 2 ($b = $b+20) 3 ($b = $b+30) 4 ($b = $b+40) predeterminado ($b = $b+50) ) Get-Content -Path "C:\scripts\test.txt" -Espera #similar a tail en Linux

cmdlets de powershell

Ordenar-Objeto- ordena los objetos en orden ascendente o descendente en función de los valores de las propiedades del objeto. Puede establecer una propiedad o varias propiedades (ordenar por varias claves), y puede elegir la clasificación entre mayúsculas y minúsculas o entre mayúsculas y minúsculas. También puede hacer que el cmdlet Sort-Object solo muestre objetos con valores únicos para una propiedad en particular.

Copiar artículo- copia un elemento de una ubicación en el espacio de nombres a otra. El cmdlet Copy-Item no elimina los elementos que se copian. Los tipos de elementos que un cmdlet puede copiar están determinados por la presencia de proveedores de Windows PowerShell. Por ejemplo, el uso del cmdlet con el proveedor de FileSystem copia archivos y carpetas, mientras que el uso del proveedor de registro copia claves y entradas de registro.

Mover elemento- mueve un elemento, incluidas sus propiedades, contenido y elementos secundarios, de una ubicación a otra. Ambas ubicaciones dadas deben ser compatibles con el mismo proveedor. Por ejemplo, puede mover un archivo o subdirectorio de un directorio a otro, o mover una subclave del registro de un subdirectorio a otro. Cuando mueve un elemento, se elimina en su ubicación original y se crea en una nueva.

Remover el artículo- elimina uno o más elementos. Muchos proveedores admiten este cmdlet, por lo que puede eliminar varios tipos de elementos, incluidos archivos, directorios, claves de registro, variables, alias y funciones.

Obtener elemento secundario- Obtiene elementos de ubicaciones dadas. Si el elemento es un contenedor, este cmdlet recupera elementos del contenedor, que se denominan elementos secundarios. Puede usar la opción Recurse para recuperar elementos de todos los contenedores secundarios. La ubicación puede ser una ubicación en el sistema de archivos, como un directorio, o una ubicación proporcionada por otro proveedor, como una sección de registro o un almacén de certificados.

opciones de cmdlet de powershell

-ErrorAcción- el parámetro está presente en todos los cmdlets, le permite configurar la acción que se realizará cuando se produzca un error:

  • Continuar: muestra un mensaje de error y continúa la ejecución
  • SilentlyContinue: ignore el error y continúe
  • Detener: detiene la ejecución ante el primer error.
  • Consultar: cuando se produce un error, indique qué hacer a continuación

Ejemplo: Copy-Item "d:\test1\klbackup*" "d:\test2\" -ErrorAction stop

-Y si- Muestra un mensaje que describe el resultado del comando sin ejecutarlo realmente. Presente en todos los cmdlets.

obtener ayuda sobre_Parámetros comunes- una descripción de los parámetros que se pueden usar con cualquier cmdlet.

SSH a través de Powershell

Un ejemplo de cómo se puede trabajar a través de SSH:

#instalar el módulo SSH, una vez Find-Module Posh-SSH | Install-Module #Cree una sesión SSH: Import-Module Posh-SSH $ComputerName = "1.2.3.4" $UserName = "ubuntu" $KeyFile = "C:\SSH\key.pem" $nopasswd = new-object System. Seguridad .SecureString $Crendtial = New-Object System.Management.Automation.PSCredential ($UserName, $nopasswd) $SSHSession = New-SSHSession -ComputerName $ComputerName -Credential $Crendtial -KeyFile $KeyFile #Crear un shell: $SSH = $ Sesión SSHS | New-SSHShellStream # enviar comando $SSH.WriteLine("ifconfig") # leer respuesta $SSH.read() #cerrar sesión: $sshSession | Eliminar-SSHSession

Equipos:

  • Get-SSHTrustedHost: ver hosts de confianza
  • Get-SSHSession: vea una lista de sesiones abiertas
  • Remove-SSHSession - cerrar sesión

Nota. Puede utilizar este módulo sin instalar WMF 5.0. La vista previa del módulo para PS 4.0 y 3.0 está disponible por separado: marzo de 2016 y, para ver versiones más recientes, busque en el Centro de descargas Vista previa de los módulos de PowerShell de administración de paquetes.

Instalando programas

Este ejemplo instala cuatro programas y el conjunto completo de utilidades de Sysinternals desde el repositorio de Chocolatey. Los primeros tres comandos se ejecutan una vez y se debe confirmar el cambio de política. El cuarto comando instala silenciosamente los programas enumerados, y el quinto simplemente ahorra tiempo.

#Permitir la instalación de paquetes firmados desde Internet Set-ExecutionPolicy RemoteSigned #Establecer proveedor de Chocolatey Get-PackageProvider –Nombre Chocolatey -ForceBootstrap #Hacer que Chocolatey sea de confianza Set-PackageSource -Nombre Chocolatey -De confianza #Instalar programas Install-Package NotepadPlusPlus, vlc, firefox, filezilla , sysinternals -Verbose -Force -ProviderName chocolatey #Agregar ruta a archivos ejecutables (sysinternals) a PATH setx PATH "$env:ruta;C:\Chocolatey\bin" -m

El proveedor descarga en C:\Chocolatey\lib un paquete basado en el script chocolateyInstall.ps1. Descarga el instalador del programa desde el sitio oficial a la carpeta %temp%\Chocolatey y lo ejecuta en modo de instalación silenciosa. El ejemplo más simple es Notepad++.

Instalar-ChocolateyPackage "notepadplusplus" "exe" "/S" "https://notepad-plus-plus.org/repository/6.x/6.9/npp.6.9.Installer.exe"

Búsqueda de programas

Hay muchos programas en los repositorios, todos los más populares definitivamente están ahí.

Buscar paquete "*zip*","*commander*" -ProviderName Chocolatey

Tipos de instaladores y claves de instalación silenciosa

  • Sitio de instalación automática de Windows y foro de instalación automática de software
  • Instalación de actualizaciones de Windows a través de Powershell

    • Descargue el módulo PowerShell de actualización de Windows desde el sitio web de Microsoft.
    • Descomprima el archivo en la carpeta %WINDIR%\System32\WindowsPowerShell\v1.0\Modules
    • Si aún no ha permitido ejecutar scripts locales, hagámoslo: "Set-ExecutionPolicy RemoteSigned".
      • Puede verificar con el comando "Get-ExecutionPolicy": debe ser "RemoteSigned" en lugar de "Restricted"
    • Importe el módulo descargado con el comando: "Import-Module PSWindowsUpdate"
    • Listo. Ahora puedes usar los comandos:
      • Ver una lista de actualizaciones disponibles: Get-WUInstall -ListOnly
      • Instalar todas las actualizaciones sin pedir confirmación: Get-WUInstall -AcceptAll
      • Instale todas las actualizaciones sin pedir confirmación y retrasar el reinicio: Get-WUInstall -AcceptAll -IgnoreReboot
      • Instale ciertas actualizaciones sabiendo su número:"Get-WUInstall -KBArticleID KB3066441, KB3078676 -AcceptAll -IgnoreReboot" - ahora no necesita ir al sitio de Microsoft y descargarlos manualmente
      • Ayuda detallada para el módulo: obtener-ayuda Get-WUInstall -detallado
      • Vea una lista de actualizaciones disponibles, excepto la categoría "Paquetes de idiomas", los títulos de "Skype" y la actualización KB3012973: Get-WUInstall -NotCategory "Paquetes de idiomas" -NotTitle Skype -NotKBArticleID KB3012973 -ListOnly
      • Instale actualizaciones que excluyan la categoría "Paquetes de idiomas", los títulos de "Skype" y la actualización KB3012973: Get-WUInstall -NotCategory "Paquetes de idiomas" -NotTitle Skype -NotKBArticleID KB3012973 -AcceptAll -IgnoreReboot

    Hola. =)
    Otro artículo blasfemo sobre la administración de Windows Server está dedicado a la preparación inicial del sistema operativo para su uso. Echado a perder por el hecho de que en la versión básica de Windows Server con GUI (interfaz gráfica de usuario), así como en Windows Server 2012 Core y superior, Powershell ya está instalado, estaba muy desconcertado por el hecho de que en Windows Server 2008R2 Core no huele a eso. Porque La configuración no era muy obvia y tuve que buscar en Google y Technet, decidí anotar una pequeña nota para el futuro.

    Entonces, primero tendremos a nuestra disposición al menos PowerShell 2.0 (de hecho, este paso se puede omitir haciendo todo lo que se describe a continuación en cmd, pero comencé con esto). Esto se puede hacer de dos maneras: ejecutando la utilidad sconfig.cmd en la línea de comandos o a través de DISM ( Administración y mantenimiento de imágenes de implementación) allá. El primero nos ofrece una interfaz pseudo-gráfica, donde en el punto 4 encontraremos la oportunidad de instalar PS 2.0.

    A través de DISM, esto se hace de la siguiente manera:
    dism.exe /online /enable-feature:MicrosoftWindowsPowerShell

    Tras instalar PS, reiniciar y tener a nuestra disposición una herramienta un poco más adecuada, intentaremos actualizarla a la versión actual. En el momento de escribir este artículo, es la versión 4.0 o la versión preliminar 5.0. Para mí, la versión 3.0 es la versión mínima utilizable, que ya tiene muchos cmdlets para administrar funciones y recursos del servidor que no están en la segunda versión. Windows PowerShell 3.0 requiere la instalación de .Net Framework 4.0 o posterior en el sistema.
    Si intentamos instalar .Net 4.0 ahora, descubriremos que para esto necesitamos .Net 2.0 ya instalado, que por alguna razón falta en la edición Server Core. Es divertido, pero por costumbre, al descargar el instalador y ejecutarlo, obtendremos una negativa para instalar y notamos que necesitamos usar dism.exe. >_< OK, dism, так dism. Уставливается по аналогии с PS:
    dism.exe /en línea /habilitar-característica:NetFx2-ServerCore
    dism.exe /en línea /habilitar-característica:NetFx2-ServerCore-WOW64

    El siguiente paso es actualizar .Net Framework a la última versión. Si desea utilizar Powershell 3.0, instale .Net 4.0 y, si desea la última versión, necesita .Net 4.5.1 y superior. La elección es suya, la instalación es extremadamente simple. El problema solo puede estar en obtener el paquete de instalación: conecté una unidad de red al servidor, en la que cargué todos los archivos de instalación; puede utilizar cualquier medio conveniente para usted.

    Entonces, hemos preparado la base para instalar PS versión 3.0 y superior. El siguiente paso es descargar el instalador de Windows Management Framework e instalarlo. Descarga y ejecuta KB2819745 de la arquitectura que necesitamos:

    Tradicionalmente, después de la instalación, necesitamos reiniciar, luego de hacerlo, tendremos PowerShell 4.0 a nuestra disposición.

    Por cierto, para poder usar el cmdlet Add-WindowsFeature (rebautizado como Install-WindowsFeature en Windows Server 2012) para configurar las funciones del servidor, deberá instalar los componentes del Administrador del servidor a través del mismo DISM.EXE. Se parece a esto:
    dism.exe /online /enable-feature:ServerManager-PSH-Cmdlet s
    En general, estoy muy mimado por las últimas versiones de PS, tk. Lo tomé después del lanzamiento de la tercera versión, pero resultó que dism.exe también puede limitarse a la instalación de roles. Y si no sabe el nombre de la función que necesita, siempre puede ver todas las opciones disponibles y su estado a través del parámetro /get-features. Pero en cuanto a mí, Get-WindowsFeature es mucho más informativo. =)
    dism.exe /en línea /get-features contra Get-WindowsFeature