Cuando se lanza un ejecutable desde una consola de Powershell o desde un script de Powershell nos puede interesar recuperar la salida estandar y la de errores para llevarla a una variable. Esto se puede hacer simplemente redirigiendo ambas salidas a un fichero, cargando el fichero y eliminádolo una vez cargado o terminado de operar con él ¿No sería mejor poder obtener ambas salidas de forma directa, sin necesidad de usar ese fichero «de paso»? La respuesta está en dos clases del espacio de nombres .NET System.Diagnostics: ProcessStartInfo y Process. Lee el resto de esta entrada »
Archive for the ‘Tips’ Category
Powershell Tip: Lanzar ejecutables y recuperar la salida de los mismos
Posted by urpiano en miércoles 28 \28\+01:00 May \28\+01:00 2014
Posted in Informatica, PowerShell, Scripting, Tips | Leave a Comment »
Powershell Tip: Un ejemplo de uso de $OFS
Posted by urpiano en miércoles 27 \27\+01:00 marzo \27\+01:00 2013
En este otro Tip de Powershell, explicaba qué hace esta variable propia de Powershell; ahora voy a poner un ejemplo muy chulo que he hecho en un script en el curro. Lee el resto de esta entrada »
Posted in Informatica, PowerShell, Scripting, Tips | Leave a Comment »
PowerShell Tip: Mostrar el Progreso con Texto en un Bucle
Posted by urpiano en miércoles 12 \12\+01:00 diciembre \12\+01:00 2012
Al hilo de este anterior Tip, en este otro vamos a ver cómo poder mostrar el progreso en un bucle en el que estamos procesando "algo" y queremos mostrar alguna propiedad de ese "algo" en el momento en que lo estamos procesando, lo que nos permitirá ver en qué objeto estamos en un determinado momento y que el proceso progresa.
Posted in Informatica, PowerShell, Scripting, Tips | Leave a Comment »
PowerShell Tip: Mostrar Una Cuenta Hacia Delante o Hacia Detrás
Posted by urpiano en domingo 2 \02\+01:00 diciembre \02\+01:00 2012
En ocasiones podemos querer que se vaya mostrando un cuenta hacia adelante o hacia detrás en algún script que tengamos. La forma "bonita" de hacer esto es que se vea un texto fijo y un número a su lado que vemos cómo se va incrementando o cómo va decreciendo.
Posted in Informatica, PowerShell, Tips | 1 Comment »
PowerShell Tip: Saber El Valor Predeterminado De los Parámetros De Un Cmdlet
Posted by urpiano en miércoles 28 \28\+01:00 noviembre \28\+01:00 2012
Si queremos mirar con la ayuda de un Cmdlet los valores por defecto de sus parámetros, esto lo podemos realizar ejecutando Get-Help -full o, más específicamente, Get-Help -Property * | Format-Table Name,DefaultValue.
Posted in Informatica, PowerShell, Scripting, Tips, Uncategorized | Leave a Comment »
PowerShell: Cómo Almacenar de Manera Segura una Contraseña y Utilizarla desde un Script
Posted by urpiano en viernes 20 \20\+01:00 julio \20\+01:00 2012
Un problema típico de los scripts es cuando se necesita poner una contraseña para realizar determinada tarea. Esa contraseña se escribe como texto plano, con lo que cualquiera que tenga acceso al código podrá averiguar cuál es esa contraseña ¿Cómo podemos evitar que esta contraseña sea visible para cualquiera?
Posted in Informatica, PowerShell, Scripting, Tips | Leave a Comment »
Exchange 2010 Tip: Administrar con PowerShell desde un equipo sin herramientas de Exchange
Posted by urpiano en lunes 21 \21\+01:00 May \21\+01:00 2012
Gracias a la administración remota incluída con el marco de administración de Windows (incluye PowerShell 2.0 y administración remota de Windows), es posible conectar desde tu equipo con una consola de PowerShell a un servidor de Exchange 2010 y administrarlo, sin tener instaladas las herramientas de administración de Exchange en tu equipo (eso sí, no con la consola de administración GUI, sólo desde PowerShell). Veamos cómo se hace esto.
Posted in Exchange, PowerShell, Tips | 6 Comments »
PowerShell Tip: Separación Automática de Arrays – $OFS
Posted by urpiano en miércoles 25 \25\+01:00 abril \25\+01:00 2012
Una prestación muy cómoda de PowerShell consiste en que puede poner todos los valores de un array de forma automática en una cadena, con los valores separados por espacios ¿Es posible que esto lo haga separando por un tabulador, por ejemplo? Sí, es perfectamente posible y es lo que vamos a ver en este Tip.
Posted in Informatica, PowerShell, Scripting, Tips | 3 Comments »
PowerShell Tip: Cómo Enumerar Todas las Propiedades de una Clase de Active Directory
Posted by urpiano en martes 13 \13\+01:00 marzo \13\+01:00 2012
¿Tenemos curiosidad por saber qué atributos tiene una clase de Active Directory en concreto? ¿Queremos además saber de qué tipo son esos atributos? Con PowerShell esto se puede averiguar.
Posted in Informatica, PowerShell, Scripting, Tips, Uncategorized | 1 Comment »
Tip PowerShell: Cómo saber la versión de PowerShell que hay en un equipo
Posted by urpiano en lunes 27 \27\+01:00 febrero \27\+01:00 2012
¿Queremos saber la versión de PowerShell que está instalada en el equipo? En esta entrada se explica cómo hacerlo.
Posted in Informatica, PowerShell, Scripting, Tips | Leave a Comment »
PowerShell: Obtener los buzones de correo de un servidor Domino
Posted by urpiano en lunes 25 \25\+01:00 abril \25\+01:00 2011
De la misma manera que se pueden obtener con una consulta LDAP los objetos de un dominio de Active Directory, se pueden obtener los objetos de Domino. En este ejemplo vamos a obtener los buzones de correo de un servidor Domino (objetos de tipo dominoPerson).
Posted in Informatica, PowerShell, Scripting, Tips | Leave a Comment »
PowerShell: Usar los Cmdlets de SCVMM 2008 R2 en cualquier consola de PowerShell
Posted by urpiano en viernes 21 \21\+01:00 enero \21\+01:00 2011
Si queremos utilizar PowerShell para administrar la virtualización vía SCVMM 2008 R2 (System Center Virtual Machine Manager 2008 Release 2) sin abrir la consola que instala SCVMM, que es un archivo .psc1, es decir, un archivo de consola de PowerShell), necesitamos agregar el SnapIn de SCVMM a la consola "normal" de PowerShell. Una vez agregada, podemos querer ver qué Cmdlets son los que agrega este SnapIn. Este Tip versa sobre esto.
Posted in Informatica, PowerShell, Tips | 3 Comments »
PowerShell: Los Módulos en PowerShell v2.0
Posted by urpiano en viernes 15 \15\+01:00 octubre \15\+01:00 2010
Este es un artículo donde se explican los módulos de Windows PowerShell v2.0, una nueva característica que no incorporaba la versión v1.0 y que permite ampliar los comandos de PowerShell de manera personalizada, sin problemas con los permisos del usuario que ejecute PowerShell
Los Módulos en Windows PowerShell v2.0
http://freyes.svetlian.com/Modulos.htm
Posted in Informatica, PowerShell, Scripting, Tips | Leave a Comment »
TIP PowerShell: Listar los Cmdlets que incorpora System Center Virtual Machine Manager en PowerShell y agregarlos a una consola
Posted by urpiano en martes 5 \05\+01:00 octubre \05\+01:00 2010
Si queremos ver en un listado todos los Cmdlets que incorpora System Center Virtual Machine Manager para su administración desde PowerShell, podemos hacerlo usando el Cmdlet Get-Command. Si en una consola de PowerShell queremos poder usar los comandos de SCVMM, es necesario que utilicemos Add-PsSnapin.
Posted in Informatica, PowerShell, Scripting, SCVMM, System Center, Tips | Leave a Comment »
Lentitud en escritorio remoto de máquina virtual en Hyper-V R2
Posted by urpiano en domingo 19 \19\+01:00 septiembre \19\+01:00 2010
¿Te ha pasado que al conectar a una máquina virtual, que tienes en un Windows 2008 R2 con el rol de Hyper-V, la conexión RDP es un sufrimiento porque va todo lentísimo? ¿Si conectas desde el propio host con la consola de máquina virtual ves que el rendimiento de ésta es correcto? Este problema tiene una muy fácil solución
Posted in Hyper-V, Informatica, Tips, Virtualización | 2 Comments »
PowerShell v2.0: Begin, Process y End
Posted by urpiano en lunes 17 \17\+01:00 May \17\+01:00 2010
Una de las nuevas características de PowerShell versión 2.0 que no incorporaba la 1.0 es la adición de las palabras clave Begin,Process y End. Estas tes palabras clave permiten definir bloques en los scripts y funciones:
Posted in Informatica, PowerShell, Scripting, Tips | 1 Comment »
Agregar nuevas unidades de registro en PowerShell
Posted by urpiano en viernes 7 \07\+01:00 May \07\+01:00 2010
Con PowerShell se puede acceder al registro como si de un disco se tratara. Esto es gracias al PsProvider Registry. PowerShell define dos PsDrive para el registro HKLM: (HKEY_LOCAL_MACHINE) y HKCU: (HKEY_CURRENT_USER) ¿Qué pasa si queremos acceder a HKEY_CLASSES_ROOT, a HKEY_USERS o a HKEY_CURRENT_CONFIG?
Posted in Informatica, PowerShell, Scripting, Tips | 1 Comment »
Usuarios de Active Directory con Formato «Apellidos, Nombre»
Posted by urpiano en lunes 30 \30\+01:00 marzo \30\+01:00 2009
Cuando damos de alta un usuario con Usuarios y equipos de Active Directory el campo Nombre para mostrar (displayName) se rellena de forma automática siguiendo el patrón Nombre Inicial Apellidos. La inicial es típica de los anglosajones, que siempre tienen un segundo nombre propio del cuál sólo escriben la inicial; en España este campo de inicial no lo rellenamos, con lo que el patrón que realmente observamos que es utilizado para rellenar Nombre para mostrar es en realidad Nombre Apellidos. Sin embargo, en muchas organizaciones, se quiere que el patrón a seguir sea Apellidos, Nombre lo cuál hace que en muchas de estas organizaciones sea necesario construir "a mano" este Nombre para mostrar, lo que lleva a errores y olvidos de hacerlo. ¿Hay alguna forma de evitar este problema y automatizar el formato de Nombre para mostrar a Apellidos, Nombre en la creación de los usuarios? Veremos como sí es posible automatizarlo y también veremos un script que nos permita convertir los ya existentes de un plumazo.
Posted in Tips, VBScript | 3 Comments »
Creación De Reservas DHCP Desde Línea De Comandos Con La Ayuda De Excel
Posted by urpiano en jueves 8 \08\+01:00 enero \08\+01:00 2009
Si tienes que crear reservas en el DHCP para muchos equipos, es interesante poder hacerlo desde línea de comandos. Si a esto unimos el uso de Excel, el resultado es rapidísimo y cómodo. Nos basta con exportar las concesiones de IPs a un fichero de texto de valores separados por tabulaciones, y crear en la primera línea la instrucción correspondiente, haciendo referencia relativa a las distintas celdas de la línea con la información; una vez creada usamos auto relleno y se crearán todas las que necesitamos. Basta ahora copiar todas las celdas generadas y pegarlas en la ventana de comandos para que se vayan ejecutando una a una y creando así las reservas.
Posted in Tips | 4 Comments »
Limite De Sesiones En Escritorio Remoto De Windows Server 2008
Posted by urpiano en lunes 29 \29\+01:00 diciembre \29\+01:00 2008
Posted in Tips | 46 Comments »
WinRM – Error WSManFault Al Ejecutar WinRM QuickConfig
Posted by urpiano en lunes 29 \29\+01:00 diciembre \29\+01:00 2008
WinRM – WinRS son la parte de configuración y de utilidad, respectivamente, de la administración remota de Windows. WinRM nos permite configurar el comportamiento del equipo tanto al recibir peticiones como al solicitarlas a otros equipos. En equipos que están dentro de un dominio, la configuración es muy simple, basta con ejecutar, desde línea de comandos:
winrm quickconfig
Posted in Tips | 1 Comment »
Unir Una Máquina Al Dominio Cuando Se Produce «Error joining domain ‘the specified user already exists'» (El Usuario Especificado Ya Existe)
Posted by urpiano en miércoles 17 \17\+01:00 diciembre \17\+01:00 2008
Debido a unos problemas que tuvimos con la red el otro día, un servidor que estaba promocionando a controlador de dominio lo hizo mal. Aparentemente promocionó bien, pues no se mostró ningún error ni al promocionarlo ni al reiniciarlo, pero realmente estaba mal promocionado, pues no era capaz de replicar con ningún otro controlador de dominio, no actualizaba directivas de grupo, etc. Era pues necesario despromocionarle, cosa para la que contínuamente daba errores, no pudiendose hacer (la red ya no tenía esos problemas). Por ello se forzó la despromoción (/forceremoval), lo cual sacó al equipo del dominio. A pesar de limpiar los metadatos (ntdsutil), toda referencia al equipo que hubiera en el DNS (CNAME y A) y forzar la replicación desde el controlador de dominio donde se operaron los cambios, a la hora de volverlo a unir al dominio se producía el error:
Error al unir al dominio:
El usuario especificado ya existe
El motivo de esto es que el dominio tiene multitud de sitios y no acababa de replicar totalmente (debido a algún problema en algún enlace, o al desplazamiento de la replicación o a lo que sea que fuere). Como quieres hacer las cosas en el momento y no esperar al día siguiente a que se haya completado la replicación en todo el dominio, necesitas limpiar toda referencia al equipo en un controlador de dominio y controlar que sea ese controlador de dominio el que se utilice para unir el equipo al dominio, de manera que no encuentre referencias «fantasmas». Esto lo consigues con la utilidad del kit de recursos de Windows Server 2003 netdom. A continuación explico todo el proceso paso a paso.
Posted in Informatica, Tips | 4 Comments »
Script VBScript Para Cambiar La Contraseña A Un Usuario Local En Uno O Varios Equipos
Posted by urpiano en viernes 25 \25\+01:00 julio \25\+01:00 2008
Es conveniente cambiar la contraseña del administrador local de los equipos de vez en cuando, de forma que no se "enrancie". Hacer esto en un solo equipo es algo que no es laborioso, pero hacerlo en muchos equipos es otra cosa. Cuando se está en un entorno de dominio, se suele hacer por medio de un script VBScript que se asigna en una GPO como script de inicio de equipo; una forma cómoda de hacer esta tarea. Si embargo tiene dos principales debilidades: si el equipo no es reiniciado en algún momento (pensemos en un servidor por ejemplo, o en ese usuario que nunca apaga su equipo), no recibirá la nueva contraseña, por otra parte, el script deberá estar situado en un recurso de red y tendrá que tener la nueva contraseña escrita en él, con lo que se convierte en fácil capturar esa contraseña para un usuario medinamente "espabiladillo"; se puede encriptar el script con SCRENC.EXE pero eso no es, ni mucho menos algo demasiado seguro, pues es muy fácil saltarse esa encriptación, como se ve aquí. Otra estrategia es el hacerlo de forma interactiva, desde un equipo en el que lanzamos el script desde una ventana de comandos que hemos abierto con RunAs como administrador del dominio; de esta manera, el script no está a disposición de todo el mundo, con lo que nadie se entera de cuál es la nueva contraseña. La pega de esta otra estrategia es que se debe ir haciendo un recuento de los equipos a los que se ha podido o no cambiar la contraseña, pues si un equipo está apagado, la contraseña no se le cambiará, mientras que con la estrategia de la GPO eso no importa, pues en el momento en que sea iniciado el equipo, se le cambiará la contraseña. Por ello, cuando no se opta por la estrategia de ejecutar el script desde una GPO, es conveniente saber a qué equipos no se les pudo cambiar la contraseña y reintentarlo más adelante, e ir así reduciendo la lista de equipos a los que no se aplicó. En esta estrategia de no usar la GPO está basado el presente script.
Posted in Informatica, Tips, VBScript | Etiquetado: VBScript | 50 Comments »
Evitar Que Ubuntu Arranque Con GNOME
Posted by urpiano en jueves 8 \08\+01:00 May \08\+01:00 2008
De forma predeterminada, Ubuntu arranca con GNOME, lo cual es muy cómodo, pero es un inconveniente si queremos instalar un nuevo driver de la tarjeta gráfica, por ejemplo, pues eso requiere estar fuera de GNOME, en consola pura y dura, y esto no se puede hacer con Ctrl+Alt+Backspace, pues lo que sucede es que se reinicia el servidor X de nuevo. En esta entrada indico cómo poder solucionar este problema. Lee el resto de esta entrada »
Posted in Linux, Tips | Leave a Comment »
Cómo Hacer Que Un Usuario En Debian Pueda Usar SUDO
Posted by urpiano en jueves 28 \28\+01:00 febrero \28\+01:00 2008
Si instalamos Debian e intentamos, con el usuario creado en la instalación, ejecutar algo como root por medio de sudo, veremos que el sistema nos deniega el hacerlo, pues nos comunica que el usuario no está en la lista de «sudoers», es decir, usuarios con el privilegio de usar sudo.
Posted in Linux, Tips | 4 Comments »
Cambiar El Color De Fondo Del Escritorio De Ubuntu Al Iniciar Sesión
Posted by urpiano en miércoles 20 \20\+01:00 febrero \20\+01:00 2008
A pesar de establecer otro color de fondo distinto del típico marron de Ubuntu, usando la herramienta de configuración de la apariencia del escritorio (Sistema / Preferencias / Apariencia, pestaña Fondo) y poner el que deseemos, vemos que cuando hacemos login, sigue apareciendo ese color marron entre el momento del login y el momento en el que ya se presenta el escritorio. Esto es debido a que dicho color no lo establece el perfil del usuario, si no la configuración de pre-sesión. ¿Cómo podemos cambiarlo? Esto se hace editando el fichero que contiene dicha configuración, el fichero /etc/gdm/PreSession/Default. Para ello, desde un terminal ejecutamos:
Posted in Linux, Tips | 1 Comment »
Error Actualizando De Ubuntu 7.04 A Ubuntu 7.10: Failed To Fetch
Posted by urpiano en jueves 14 \14\+01:00 febrero \14\+01:00 2008
Intentando actualizar, desde el gestor de actualizaciones, de Feisty Fawn a Gutsy Gibbon, siempre me saltaba el error:
Failed to fetch http://es.archive.ubuntu.com/ubuntu/dist/gutsy/universe/binary-i386/Packages.gz El subproceso gzip devolvió un código de error (1)
Posted in Informatica, Linux, Tips | Leave a Comment »
Cómo Acceder A Un Servidor FTP Desde Un Fichero BAT
Posted by urpiano en viernes 23 \23\+01:00 noviembre \23\+01:00 2007
Este tip no pretende ser una novedad ni nada original, pero bueno, buscando en el baúl de los recuerdos, he visto esta respuesta que di en su día en el grupo de noticias de Windows 2000 de los grupos públicos de Microsoft y me ha apetecido publicarla; tal cual fue, la pego a continuación:
Posted in Informatica, Tips | 67 Comments »
Trabajar Con Argumentos En VBScript
Posted by urpiano en sábado 23 \23\+01:00 junio \23\+01:00 2007
Este es un breve tutorial que cuenta cómo se trabaja con argumentos en los scripts VBScript. Conoceremos el objeto wshArguments, que es una colección del objeto WScript con los argumentos que ha recibido el script.
Posted in Tips, VBScript | Etiquetado: VBScript | 4 Comments »
Crear Una Alerta Y Enviar Un Correo Cuando Se Produce
Posted by urpiano en viernes 8 \08\+01:00 junio \08\+01:00 2007
El establecer una alerta es algo muy útil en determinadas ocasiones. Por ejemplo, queremos saber cuándo nos estamos quedando bajos de espacio en disco. En la herramienta administrativa Rendimiento, podemos crear alertas cuando determinado contador del equipo alcance determinado umbral; una vez alcanzado podemos recibir un mensaje de consola y/o ejecutar un programa. Por desgracia, no permite enviar un correo advirtiendo de la alerta, lo cual sería muy útil. Para poder enviar ese correo es necesario un programa para lanzar un script VBScript que envíe el correo. Veremos cómo crear la alerta y también el script en sí.
Posted in Informatica, Tips, VBScript | Etiquetado: VBScript | 13 Comments »