Buscar

Mostrando entradas con la etiqueta Script-Windows. Mostrar todas las entradas
Mostrando entradas con la etiqueta Script-Windows. Mostrar todas las entradas

Windows: Deshabilitar ahorro de energía - PowerCFG

Para deshabilitar o cambiar la configuración del ahorro de energía, podemos hacerlo desde entorno gráfico o bien con el comando powercfg.exe.

Windows: Buscar versión de Internet explorer en equipo remoto

Como administradores de sistemas, nos puede interesar tener controladas las distintas versiones de Internet Explorer de nuestra red.

Existen sistemas operativos, por ejemplo: Windows 7, donde es posible instalar una versión superior de Internet Explorer de la que viene por defecto.

También, la versión exacta de Internet Explorer, puede cambiar dependiendo de los parches aplicados.

Para saber la versión de Internet explorer que tenemos instalada en un equipo, podemos ir menú de: "Ayuda", "Acerca de" o bien consultar una clave en el registro de Windows.

Windows: Comprimir PDF masivamente

Muchas veces nos encontramos con un servidor de ficheros con cantidad de ficheros .pdf, algunos con resoluciones desproporcionadas.

Windows: Reiniciar red

Una de las formas para reiniciar la red de un equipo Windows es deshabilitar y habilitar la tarjeta de red (NIC, Network Interface Card).

En ocasiones, nos podemos encontrar con la necesidad de automatizar el reinicio de los servicios de red de un equipo, para ello, necesitaremos saber como deshabilitar y habilitar la tarjeta de red del equipo desde linea de comandos.

En este post, veremos tres formas para deshabilitar y habilitar la tarjeta de red desde linea de comandos, de esta forma podremos crear un script con el fin de automatizar el proceso.

Dos de ellas desde CMD y otra con cmd-lets de PowerShell.

Hemos de tener presente, lo siguiente: 

1) Desde CMD, no podremos reiniciar la tarjeta de red con un solo comando, deberemos primero deshabilitarla y luego habilitarla. 

2) Necesitaremos derechos de administrador para poder habilitar y deshabilitar la NIC. 

3) Especial cuidado con deshabilitar y habilitar la NIC si estamos conectados remotamente utilizando el interfaz de red que vamos a reiniciar.

Veamos tres formas para reiniciar la red desde linea de comandos: 

1- Desde CMD con netsh (como Administrador): 

Con el comando netsh de CMD, no disponemos de la opción para reiniciar directamente el interfaz de red, sin embargo, podemos deshabilitar y habilitar el interfaz.

Veamos el procedimiento:

Obtenemos el nombre del interfaz de red a reiniciar: 

netsh interface show interface

Estado admin.    Estado          Tipo             Nombre interfaz
------------------------------------------------------------------
Habilitado       Conectado       Dedicado         Ethernet0

Deshabilitamos y habilitamos el interfaz de red:

netsh interface set interface "Ethernet0" Disabled
netsh interface set interface "Ethernet0" Enabled 

Al habilitar o deshabilitar el interfaz es necesario abrir la ventana de CMD como administrador, si no lo hacemos así, aparecerá el siguiente error: 

La operación solicitada requiere elevación (Ejecutar como administrador). 

Si estamos conectados por red al interfaz que vamos a reiniciar, por ejemplo por RDP, podremos deshabilitar el interfaz, pero no habilitarlo, ya que al deshabilitar el interfaz, perderemos el control.

Para evitar este problema, podemos reiniciar el interfaz de red ejecutando:

netsh interface set interface "Ethernet0" Disabled && netsh interface set interface "Ethernet0" Enabled

De esta forma, conseguimos que después de deshabilitar el interfaz, se ejecute seguidamente el habilitar interfaz en una sola linea.

2- Desde CMD con wmic (como Administrador):

Con el comando wmic, podemos hacer consultas WMI (Windows Management Instrumentation) a un equipo Windows y también es posible deshabilitar y habilitar un interfaz de red vía WMI. 

Con wmic, necesitamos saber el identificador numérico del interfaz para poder deshabilitar y habilitar el interfaz.

Para mostrar el nombre de los interfaces de red y su identificador, ejecutamos:

C:\>wmic nic get name, index
Index  Name
0      Microsoft Kernel Debug Network Adapter
1      Intel(R) 82574L Gigabit Network Connection
2      Microsoft ISATAP Adapter

Deshabilitamos el interfaz de red con el identificador "1":

wmic path win32_networkadapter where index=1 call disable

Habilitamos el interfaz de red con el identificador "1": 

wmic path win32_networkadapter where index=1 call enable

3- Desde PowerShell (como Administrador): 

A partir de PowerShell versión 3.0, se incluyen los cmd-lets que permiten el reinicio de un interfaz de red.

Podemos ver los cmd-lets disponibles para administrar el interfaz de red ejecutando:

PS C:\> Get-Command *NetAdapter|Select-Object Name

Name
----
Disable-NetAdapter
Enable-NetAdapter
Get-NetAdapter
Rename-NetAdapter
Restart-NetAdapter
Set-NetAdapter

Para determinar los nombres de los interfaces, ejecutamos: 

PS C:\> Get-NetAdapter|Select-Object Name

Name
----
Ethernet0

Para reiniciar el interfaz de red: 

Restart-NetAdapter -Name Ethernet0 -confirm:$false

Windows: OneGet y Chocolatey

Introducción:

Uno de los objetivos que persigue un administrador de sistemas es la automatización de procesos, es decir evitar realizar tareas manuales y repetitivas infinidad de veces.

En esta ocasión veremos una nueva forma de realizar instalaciones, actualizaciones de aplicaciones comunes en sistemas Windows.

Una de las herramientas que siempre ha podido utilizar el administrador de sistemas en entornos de Active Directory desde Windows Server 2000 es el despliegue de paquetes MSI (Microsoft Installer) utilizando directivas de grupo (GPO), el problema es que no todos los proveedores de software ofrecen paquetes MSI.

Otra forma es utilizar scripts, por ejemplo:


El problema es que el script, funciona hasta que el proveedor de software cambia algún parámetro del proceso de instalación y es necesario rehacer el script o descargarse un script nuevo.

Con PowerShell 5, disponemos de una nueva herramienta: OneGet, gestor de repositorios.

Recordemos que PowerShell 5 está incluida por defecto en Windows 10 y Windows Server 2016, también puede instalarse sobre: Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 7 SP1, Windows Server 2008 R2 SP1.

PowerShell 5, requiere .NET versión 4.5.

¿Cómo funciona?

PowerShell 5, integra OneGet, un gestor de repositorios.

Antes de nada, hemos de entender que todo y que el objetivo es el mismo, su funcionamiento interno a nivel técnico dista mucho de los repositorios Linux.

La forma en que el administrador añade o quita paquetes es muy similar al de los comandos yum (RHEL/CentOS) o apt-get (Debian/Ubuntu).

También es importante diferenciar entre un gestor de repositorios (OneGet) y un repositorio en si (Chocolatey). 

Con estos tres puntos, entenderemos el concepto:

  • OneGet, no es un repositorio en si, es un módulo de PowerShell 5, que realiza la función de gestor de repositorios.
  • Chocolatey no es propiedad de Microsoft y es mantenido por la comunidad: Son repositorios, pero no contienen binarios (ficheros EXE), solo scripts con el sistema de paqueteria NuGet.
  • Los binarios (ficheros EXE), residen igualmente en la URL del proveedor de software.

El proceso a nivel conceptual, es el siguiente:

  • El proveedor de software, lanza al mercado una versión de su software, por ejemplo, WinRAR y libera su instalador (EXE, MSI, etc).
  • Chocolatey desarrolla scripts para su instalación o desinstalación desatendida.
  • Desde los clientes Windows: El módulo OneGet de PowerShell, tiene registrado el repositorio Chocolatey y si se procede a instalar el paquete, de forma transparente, se descarga el paquete de instalación/desinstalación y se procede a su ejecución desatendida. 

* Directorio de scripts de aplicaciones instaladas utilizando el repositorio: Chocolatey
Windows: OneGet y Chocolatey

* Fragmento de PowerShell script referente a la instalación de WinRAR.Windows: OneGet y Chocolatey 

Laboratorio sobre Windows 10 y PowerShell 5: 

A partir de una instalación limpia de Windows 10 RTM, abrimos una ventana de PowerShell como administrador:
#Habilitar ejecución de scripts de PowerShell

Set-ExecutionPolicy RemoteSigned

#Gestores de paquetes instalados:

Get-PackageProvider 


* Ejemplo de ejecución:

PS C:\> Get-PackageProvider| Select-Object Name

Name
----
msu
msi
Programs
PSModule

MSU: Repositorio de Microsoft Update.
MSI: Repositorio de paquetes MSI.

#Paquetes instalados

Get-Package

* Ejemplo de ejecución:

PS C:\> Get-Package |Select-Object Name

Name
----
VMware Tools
Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.6161
Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148
Actualización para Windows 10 para sistemas basados en x64 (KB3074678)

#Lista los proveedores compatibles

Find-package -provider Bootstrap

* Ejemplo de ejecución:

PS C:\> Find-package -provider Bootstrap |Select-Object Name,Version

Name       Version
----       -------
nuget      2.8.5.127
chocolatey 2.8.5.130

*Bootstrap, proveedor que es capaz de ver otros proveedores.

#Busca un paquete (WinRAR) en el proveedor chocolatey

Find-package -provider chocolatey WinRAR

* Ejemplo de ejecución:

PS C:\> Find-package -provider chocolatey WinRAR

The provider 'chocolatey v2.8.5.130' is not installed.
chocolatey may be manually downloaded from https://oneget.org/ChocolateyPrototype-2.8.5.130.exe and installed.
Would you like PackageManagement to automatically download and install 'chocolatey' now?
[S] Sí  [N] No  [U] Suspender  [?] Ayuda (el valor predeterminado es "S"): S

Name                           Version          Source           Summary
----                           -------          ------           -------
winrar                         5.20.1           chocolatey       WinRAR is a powerful archive manager....

#Instalar paquete

Install-Package WinRAR

* Ejemplo de ejecución:

PS C:\> Install-Package WinRAR

The provider 'nuget v2.8.5.127' is not installed.
nuget may be manually downloaded from https://oneget.org/nuget-anycpu-2.8.5.127.exe and installed.
Would you like PackageManagement to automatically download and install 'nuget' now?
[S] Sí  [N] No  [U] Suspender  [?] Ayuda (el valor predeterminado es "S"): N
ADVERTENCIA: Unable to find package provider 'NuGet'.
ADVERTENCIA: El proveedor de PackageManagement especificado 'NuGet' no está disponible.

The package(s) come from a package source that is not marked as trusted.
Are you sure you want to install software from 'chocolatey'?
[S] Sí  [O] Sí a todo  [N] No  [T] No a todo  [U] Suspender  [?] Ayuda (el valor predeterminado es "N"): S

Name                           Version          Source           Summary
----                           -------          ------           -------
winrar                         5.20.1           chocolatey       WinRAR is a powerful archive manager....


#Búsqueda GUI de paquetes disponibles dentro de chocolatey:

Find-Package -provider chocolatey| Out-Gridview


Windows: OneGet y Chocolatey

#Búsqueda múltiple command-line dentro de chocolatey:

* Ejemplo de ejecución:

PS C:\> Find-Package -Provider chocolatey -Name adobereader, WinRAR, VLC, skype, flashpla

Name                           Version          Source           Summary
----                           -------          ------           -------
adobereader                    2015.007.20033   chocolatey       Adobe Reader - View and interact with PDF files
vlc                            2.2.1.20150630   chocolatey       VLC Media Player
winrar                         5.20.1           chocolatey       WinRAR is a powerful archive manager....
flashplayerplugin              18.0.0.232       chocolatey       Adobe Flash Player Plugin for other browsers
skype                          7.8.0.102        chocolatey       Skype - VOIP
flashplayeractivex             18.0.0.232       chocolatey       Adobe Flash Player ActiveX for Internet Explorer

#Instalación masiva:

* Ejemplo de ejecución:

Find-Package -Provider chocolatey -Name Adobereader, WinRAR, VLC, Skype | Install-Package -Force

#Desinstalar paquete:

* Ejemplo de ejecución:

Uninstall-Package WinRAR

¿Podemos instalar Chocolatey sin PowerShell 5, ni OneGet?

Es posible realizar una instalación manual:

https://github.com/chocolatey/choco/wiki/Installation

Windows: Script para actualizar JAVA

Mantener las versiones de JAVA actualizadas es una de las tareas que el administrador de sistemas realiza de forma regular.

En entornos de Active Directory, descargando el paquete MSI (Microsoft Software Installer) podremos desplegar la actualización de forma automatizada utilizando una GPO de instalación de software.

Aquí tenéis un ejemplo del procedimiento:


También podéis encontrar información sobre el uso de las directivas de grupo en el libro: GPOIT - Group Policy Objects para administradores de IT.

Sin embargo, en ocasiones, nos podemos encontrar  con la necesidad de actualizar equipos que o bien no están añadidos al dominio o bien si lo están pero en el momento de la aplicación de las GPOs de usuario o equipo no existe conectividad con el controlador de dominio (DC).

Para ello, podemos utilizar un script para realizar la actualización de forma automática.

Podremos lanzar la ejecución del script con la utilidad psexec de SysInternals sobre el equipo que queramos actualizar.

El primer paso es determinar la versión de Java que tenemos instalada en el equipo, para ello podemos consultarlo vía GUI o cmd.

Por ejemplo, si ejecutamos:

C:\>java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot(TM) Client VM (build 25.25-b02, mixed mode, sharing)

Vemos que disponemos de Java 8, actualización 25

Para realizar la actualización utilizando un script, descargaremos el fichero VBS desde la siguiente URL:


Una vez descargado podemos proceder a su ejecución con la utilidad cscript:

C:\JAVA-UPDATE\VBS>cscript JRE_Updater.vbs
Microsoft (R) Windows Script Host versión 5.8
Copyright (C) Microsoft Corporation 1996-2006. Reservados todos los derechos.

C:\JAVA-UPDATE\VBS>java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) Client VM (build 25.31-b07, mixed mode, sharing)

Vemos que disponemos de Java 8, actualización 31

El funcionamiento interno del script, es el siguiente:

De forma predeterminada, el script descarga las versiones de 32 bits y 64 bits de la web de Java y genera los siguientes ficheros:

JRE_32bitBrowsers.exe
JRE_64bitBrowsers.exe

 
A partir de estos ficheros, realiza la instalación desatendida.

Además genera el siguiente fichero de log, con la fecha de la descarga:

JRE_Bundle.log

Todos estos ficheros se generan en el mismo directorio donde se ejecuta fichero VBS.

Al ser un fichero VBS, podemos proceder a su edición con un editor de texto y modificar los parámetros de funcionamiento.

Entre los parámetros que podemos encontrar para modificar, podremos indicarle si descargar o no los ficheros de Internet o si actualizar plataformas x86 y/o x64.

Vista de edición del fichero:

Edición del fichero VBS



Windows: Ver importar exportar claves Wi-fi

Con el comando netsh podemos realizar múltiples acciones y configuraciones sobre los interfaces de red del equipo.

Por ejemplo, en posts anteriores vimos:

Script de CMD para cambiar la IP del equipo

http://www.sysadmit.com/2013/12/ScriptdeCMDparacambiarlaIPdelequipo.html

Script para cambiar los DNS de un inferfaz de red con netsh

http://www.sysadmit.com/2014/03/Script-para-cambiar-los-DNS-de-un-inferfaz-de-red-con-netsh.html

Con netsh también podemos trabajar con conexiones Wi-fi, en este post, vimos como realizar un scan de las redes Wi-fi disponibles:

Ver redes wi-fi disponibles con CMD

http://www.sysadmit.com/2013/11/ver-redes-wi-fi-disponibles-con-cmd.html

En el post de hoy, veremos la forma de: ver, importar y exportar la configuración y las claves Wi-fi de un equipo.

Veamos como funciona:

Ejemplo 1: Ver la clave Wi-fi

Con netsh wlan show profiles podemos ver los nombres de todas las conexiones Wi-fi almacenadas en el equipo:

Marrón, conexión 1
Verde, conexión 2
Naranja, conexión 3

Para ver la configuración y la clave Wi-fi de la conexión 2 (verde):

netsh wlan show profiles name="XXXXXXXXX" key=clear

Donde XXXXXXXXX corresponde a la conexión 2 (verde).

El color azul, corresponde a la clave:

Windows: Ver importar exportar claves Wi-fi

Ejemplo 2: Importar, exportar configuración y claves Wi-fi

Formato imagen:

Windows: Ver importar exportar claves Wi-fi

Windows: Renombrado recursivo de ficheros

Podemos renombrar ficheros desde CMD con el comando ren o rename.

El comando rename acepta comodines, de forma que podemos renombrar ficheros de forma masiva indicando, por ejemplo, el asterisco:

Windows: Renombrado recursivo de ficheros

El problema del comando rename es que no dispone de ningún parámetro para que sea recursivo.

Podemos ver los parámetros del comando rename ejecutando rename /? o bien ren /?

Windows: Renombrado recursivo de ficheros

Para renombrar de forma recursiva podemos utilizar el comando forfiles para realizar un bucle.

Ejemplos del uso de forfiles:

(1) Renombrado de todas las extensiones de todos los ficheros a *.htm de forma recursiva:

forfiles /S /M *.* /C "cmd /c rename @file @fname.htm"

Windows: Renombrado recursivo de ficheros


(2) Renombrado de todas las extensiones de todos los ficheros *.html a *.htm de forma recursiva:

forfiles /S /M *.html /C "cmd /c rename @file @fname.htm"


Windows: Renombrado recursivo de ficheros

Si ejecutamos el comando forfiles /? podremos ver todos los parámetros disponibles y ejemplos:


Windows: Renombrado recursivo de ficheros




Pequeño script para despertar equipos con Wake-On-Lan

Requisitos previos:

1) BIOS: En las propiedades de la NIC del equipo debe estar activado el Wake-On-Lan:

Pequeño script para despertar equipos con Wake-On-Lan


2) Windows: En las propiedades de la NIC del equipo debe estar activado el Wake-On-Lan:

Pequeño script para despertar equipos con Wake-On-Lan

3) Software: Descargar un programa que envíe el Magic-Packet para despertar el equipo:



-------- Script --------

@Echo Off
Cls

:ini

cls
Echo "1.Pc-Juan-W7"
Echo "2.Pc-Gloria-W7"
Echo "3.Pc-Alberto-w7"
Echo "4.Pc-Fran-w7"
Echo "5.Pc-Jorge-w7"
Echo "6.Pc-JuanCarlos-w7"
Echo "7.Pc-Mercedes-w7"


CHOICE /C:1234567 /N /m "Selecciona el PC a despertar:"
IF ERRORLEVEL 1 SET MAC="00:19:d1:b1:fd:1c"
IF ERRORLEVEL 1 SET PC="192.168.10.101"
IF ERRORLEVEL 2 SET MAC="00:02:b3:8e:73:ae"
IF ERRORLEVEL 2 SET PC="192.168.10.102"
IF ERRORLEVEL 3 SET MAC="00:19:b9:1c:56:11"
IF ERRORLEVEL 3 SET PC="192.168.10.103"
IF ERRORLEVEL 4 SET MAC="00:1c:c0:8c:e5:19"
IF ERRORLEVEL 4 SET PC="192.168.10.104"
IF ERRORLEVEL 5 SET MAC="00:19:d1:8a:01:d1"
IF ERRORLEVEL 5 SET PC="192.168.10.105"
IF ERRORLEVEL 6 SET MAC="00:1E:8C:52:D2:8c"
IF ERRORLEVEL 6 SET PC="192.168.10.106"
IF ERRORLEVEL 7 SET MAC="74:86:7A:17:F3:1d"
IF ERRORLEVEL 7 SET PC="192.168.10.107"

Echo .
Echo Despertando el PC: %PC%
Echo .

C:\INSTALL\wol\bin\wol.exe %MAC%

ping -n 50 %PC%

pause

goto ini

Deshabilitar un dispositivo desde un script

Existen varias posibilidades de deshabilitar un dispositivo mediante un script.

Una de ellas es utilizar la herramienta DevCon de Microsoft:


Otra es utilizar la herramienta devmanview de NirSoft:


Ambas herramientas sin gratuitas.

A continuación veremos un ejemplo de funcionamiento de la herramienta devmanview:

Vista del administrador de dispositivos de Windows (devmgmt.msc), nos fijamos en el nombre del dispositivo que queremos desactivar:

Deshabilitar un dispositivo desde un script

Si ejecutamos la herramienta devmanview veremos la siguiente herramienta GUI, donde también podemos localizar el dispositivo a deshabilitar:

Deshabilitar un dispositivo desde un script

Para deshabilitar el dispositivo bastará con ejecutar la herramienta desde linea de comandos:

DevManView.exe /disable "Realtek High Definition Audio"

Después de ejecutarla podemos ver el resultado en el administrador de dispositivos de Windows (devmgmt.msc):

Deshabilitar un dispositivo desde un script

Además del ejemplo anterior, la herramienta dispone de muchas opciones interesantes.

Veamos un par de ejemplos:

1) Ver las propiedades de un dispositivo:

Deshabilitar un dispositivo desde un script

2) Abrir regedit en la ubicación del dispositivo:

Deshabilitar un dispositivo desde un script