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.
Buscar
Home » Posts filed under Script-Windows
Mostrando entradas con la etiqueta Script-Windows. Mostrar todas las entradas
Mostrando entradas con la etiqueta Script-Windows. Mostrar todas las entradas
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
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.
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:
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).
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
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:
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
#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
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:
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.
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:
Ejemplo 2: Importar, exportar configuración y claves Wi-fi
Formato imagen:
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:
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 /?
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"
(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"
Si ejecutamos el comando forfiles /? podremos ver todos los parámetros disponibles y ejemplos:
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:
2) Windows: En las propiedades de la NIC del equipo debe estar activado el 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:
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:
Si ejecutamos la herramienta devmanview veremos la siguiente herramienta GUI, donde también podemos localizar el dispositivo a deshabilitar:
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):
Además del ejemplo anterior, la herramienta dispone de muchas opciones interesantes.
Veamos un par de ejemplos:
1) Ver las propiedades de un dispositivo:
2) Abrir regedit en la ubicación del dispositivo:
Suscribirse a:
Entradas (Atom)
















