Páginas

jueves, 10 de julio de 2014

Lista de las variables de entorno en Windows

Para la creación de scripts siempre deberíamos utilizar las variables de entorno, para evitar posibles errores.  Las variables por defecto del sistema están listadas aquí:


%ALLUSERSPROFILE%
Esta variable devuelve la localización del perfil de todos los usuarios, por lo general es C:\Program\Data, carpeta oculta en la unidad C.
%APPDATA%
Una de las variables más utilizadas, carpeta oculta donde guardan sus datos las aplicaciones, se encuentra dentro de la carpeta de usuario.
En Windows 7 y Vista la ruta es la siguiente:
C:\Users\NombreDeUsuario\AppData\Roaming.
En Windows XP la ruta es diferente:
C:\Documents and Settings\NombreDeUsuario\Datos de programa
%COMMONPROGRAMFILES%
Carpeta donde los programas almacenan archivos comunes:
C:\Program Files\Common Files.
%CMDCMDLINE%
Muestra el comando exacto empleado para acceder al intérprete de comandos (cmd.exe). Por ejemplo usándolo en la ubicación exacta de la consola muestra: C:\Windows\system32\cmd.exe Abriendo una ventana de cmd en el escritorio mostrará: "cmd.exe" /s /k pushd "C:\Users\NombreDeUsuario\Desktop"
%CMDEXTVERSION%
Devuelve el número de versión de nuestro intérprete de comandos.
%COMPUTERNAME%
Devuelve el nombre del equipo.
%COMSPEC%
Devuelve la ruta de la shell de comandos, normalmente: C:\Windows\System32.
%DATE%
Devuelve la fecha actual.
%ERRORLEVEL%
Devuelve el código de error del último comando ejecutado.
%HOMEDRIVE%
Devuelve la unidad en la que está el directorio en el que estás actualmente.
%HOMEPATH%
Devuelve la ruta completa a dicho directorio.
%LOGONSERVER%
Devuelve el nombre de nuestro servidor (similar a COMPUTERNAME pero antecedido de dos barras inclinadas \\)
%LOCALAPPDATA%
Carpeta donde los programas guardan archivos temporales. Generalmente C:\Users\NombreDeUsuario\AppData\Local.
%NUMBER_OF_PROCESSORS%
Devuelve el número de procesadores instalados en el equipo.
%OS%
Devuelve nuestro sistema operativo, con la excepción de Windows 2000 y XP que lo devuelven como Windows_NT.
%PATH%
Contiene una lista separada por punto y coma de directorios en los cuales se buscarán los archivos ejecutables que no se invocan con una ruta explícita.
Aparecerá lo siguiente más otros directorios agregados por diversas aplicaciones.
C:\Windows\system32; C:\Windows; C:\Windows\System32\Wbem; C:\Windows\System32\WindowsPowerShell\v1.0\
%PATHEXT%
Esta variable contiene una lista separada por punto y comas con las extensiones conocidas de los archivos ejecutables.
Si el nombre de un ejecutable termina con una extensión incluida en esta lista, es posible omitir dicha extensión al invocar el programa.
Por ejemplo: .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC
%PROCESSOR_ARCHITECTURE%
Devuelve la arquitectura del procesador.
%PROCESSOR_IDENTIFIER%
Devuelve la descripción del procesador.
%PROCESSOR_LEVEL%
Devuelve el número de modelo de procesador.
%PROCESSOR_REVISION%
Devuelve el número de revisión del procesador.
%PROGRAMDATA%
Carpeta donde los programas almacenan datos, normalmente: C:\ProgramData.
%PROGRAMFILES%
Devuelve la carpeta donde se instalan los programas, normalmente: C:\Archivos de Programa.
%PSModulePath%
Ruta a los modulos de PowerShell, C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
%PUBLIC%
Carpeta donde se guardan datos públicos compartidos de todos los usuarios, generalmente: C:\Users\Public.
%RANDOM%
Devuelve un número al azar entre 0 y 32767.
%SYSTEMDRIVE%
Devuelve la unidad que contiene el directorio raíz del sistema, generalmente: C.
%SYSTEMROOT%
Devuelve la carpeta de administración, que suele ser C:\Windows.
%TEMP% %TMP%
Estas dos variables contienen la ruta a los directorios donde las aplicaciones y programas pueden almacenar sus archivos temporales. En Windows 7 es:
C:\Users\NombreDeUsuario\AppData\Local\Temp
En Windows XP la ubicación es:
C:\Documents and Settings\NombreDeUsuario\Configuración local\Temp
%TIME%
Devuelve la hora actual.
%USERNAME%
Devuelve el nombre del usuario actual.
%USERPROFILE%
Devuelve la ruta del directorio donde están los archivos del usuario actual, normalmente: C:\Users\NombreDeUsuario.
%WINDIR%
Devuelve la ruta de la carpeta del sistema operativo, normalmente: C:\Windows.



Mas info en --> http://norfipc.com/inf/variables-entorno.html

jueves, 12 de junio de 2014

Macro Excel para calcular vencimiento de fechas y enviar email

A continuación muestro una macro de Excel ,que puede resultar útil para validación de fechas entre columnas, y enviar alertas por email a traves de outlook:


Sub Vencimiento()
    Dim nFila As Double
    Dim rCelda As Range
    Dim sVencimiento As String
    Dim n As Double
    Dim sFactVence As String
    Dim bFactVencidas As Boolean
 
 
    'Contamos Filas
    bFactVencidas = False
    nFila = Worksheets("FINAL").Range("A" & Rows.Count).End(xlUp).Row
    
    'Revisamos la fecha de vencimiento 
    'si está vencida o si vence a 1,2, 3, 4 o mas meses
    For Each rCelda In Worksheets("FINAL").Range("D2:D" & nFila)
        Select Case (rCelda.Value - Date)
            Case Is >= 120
                sVencimiento = "Mayor a 4 Meses"
            Case Is >= 90
                sVencimiento = "4 Meses"
            Case Is >= 60
                sVencimiento = "3 Meses"
            Case Is >= 30
                sVencimiento = "2 Meses"
            Case Is > 0
                sVencimiento = "1 Mes"
            Case Else
                sVencimiento = "Vencida"
        End Select
        rCelda.Offset(0, 11).Value = sVencimiento
    Next
    
    'Revisamos si paso de vencimiento
    For Each rCelda In Worksheets("FINAL").Range("O2:O" & nFila)
        If rCelda.Value <> "Vencida" Then
           sFactVence = sFactVence & "--- " & Chr(10) & _
           "VENCIMIENTO EN : " & rCelda.Value & Chr(10) & _
           "CAMPO1: " & rCelda.Offset(0, -13).Value & Chr(10) & _
           "CAMPO2: " & rCelda.Offset(0, -12).Value & Chr(10) & _
           "CAMPO3: " & rCelda.Offset(0, -11).Value & Chr(10) & _
           "--- " & Chr(10) & Chr(10)
            'rCelda.Value = "SI"
            bFactVencidas = True
        End If
    Next
    
    'enviamos el correo
    If bFactVencidas = True Then
        Call Enviar_Correo(sFactVence)
    End If
End Sub

Sub Enviar_Correo(ByVal sFacturas As String)
    
    Set fase1 = CreateObject("outlook.application")

    Set fase2 = fase1.CreateItem(olMailItem)
    fase2.To = "midir@email.com"
    fase2.Subject = "Informes "
    
    fase2.Body = "Informes  " & Chr(10) & _
                 "_________ " & Chr(10) & Chr(10) & sFacturas
    
    'fase2.Attachments.Add ActiveWorkbook.FullName
    
    fase2.Send
    
    Set correo1 = Nothing
    
    Set correo2 = Nothing
End Sub



una web muy util para realizar este tipo de macros -> http://www.rondebruin.nl/win/section1.htm
 

jueves, 22 de mayo de 2014

Primera App de Android , Calcula IBAN

Bueno después de un largo tiempo, por fin he podido dedicarme a darme de alta como "developer" de Android.

La primera aplicación que he realizado es un simple conversor de cuentas bancarias a formato IBAN.



Podéis descargarla desde -> https://play.google.com/store/apps/details?id=local.IBAN.calculaiban

jueves, 15 de mayo de 2014

Script MS SQL para calculo de IBAN

Estos últimos días, todo el mundo esta con el calculo del IBAN

Si tenemos que utilizar datos de una base de datos SQL, nos sera util la siguiente función de SQL, la función requiere la entrada del código de país y el numero de la cuenta.




create function [dbo].[CalculoIBAN] (@Pais varchar(2), @Cuenta varchar(50))
returns varchar (50)
as
begin

DECLARE @Letras As varchar(50)
DECLARE @IBAN As varchar(50)
DECLARE @Dividendo As int
DECLARE @Resto As int
DECLARE @Contador As int
declare @Resultado as varchar(50)
        
set @Cuenta = Replace(@Cuenta,' ', '') --limpia espacios
set @Cuenta = Replace(@Cuenta,'-', '') --limpia guiones
set @Pais = upper(@Pais)

-- Calcula el valor de las letras, las quita y añade el valor al final
set @Letras = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
set @IBAN = @Cuenta + cast((CHARINDEX( Left(@Pais, 1),@Letras) + 9) as varchar) 
+ cast((CHARINDEX( Right(@Pais, 1),@Letras) + 9) as varchar)  + '00'

 
SET @Contador = 1  
set @Resto=0
  
WHILE (@Contador &lt;= Len(@IBAN))    
BEGIN      
 set @Dividendo = cast(@Resto as varchar) + substring(@IBAN, @Contador, 1) 
    set @Resto = @Dividendo % 97
    
 SET @Contador = @Contador + 1         
END 

set @Resultado = Right('00' + cast((98 - @Resto) as varchar),2)

return ( @Pais + @Resultado + @Cuenta)

end

Habilitar navegación en puertos no habituales en el navegador Firefox

Muchas veces, sobretodo cuando tenemos un servidor de test, tenemos habilitados varios servicios web en diferentes puertos que no son el 80 y al intentar acceder mediante http://miservidor:100 Fiirefox nos muestra el siguiente mensaje:


"Esta dirección esta restringida

Esta dirección usa un puerto de red que normalmente se utiliza con fines distintos a la navegación web. Para su protección, Firefox ha cancelado la petición."

Para solventar este problema y desactivar esta función en Firefox debemos realizar lo siguiente:

  1. Abrir FireFox.
  2. Tipear en la barra de dirección about:config
  3.  Apretar click derecho del mouse, sobre cualquier lugar de la ventana y seleccionar "New"-> "String" y tipear "network.security.ports.banned.override" luego en el valor tipear "1-1024" o cualquier rango de puertos que quieran permitir...
  4. Entrar a la página.  http://miservidor:100  y ya debería funcionar



jueves, 6 de febrero de 2014

Script para eliminar impresoras locales remotamente

Muchas veces es necesario desinstalar impresoras de un toda una red, una de las formas que me parece mas sencilla es crear un script Vbs, para poder eliminar las impresoras.

podemos generar un fichero BorrarLocalPrinters.vbs con el siguiente contenido:

' Para recoger argumentos de entrada
Set objParametros = WScript.Arguments


' Primer argumento nombre de Equipo
strComputer = objParametros.Item(0)
Set objWMIService = GetObject("winmgmts:\\" &amp; strComputer &amp; "\root\cimv2")

'El select tienes las condiciones para listar impresoras, en mi caso que sean locales y con portname *10.0*
Set colInstalledPrinters =  objWMIService.ExecQuery _
  ("Select * from Win32_Printer Where Network = FALSE and PortName like '%10.0.%'")
   
For Each objPrinter in colInstalledPrinters
    objPrinter.Delete_
Next

un vez generado el fichero, la manera de lanzarlos en cmd ->  BorrarLocalPrinters.vbs equipo

Espero que os sirva de ayuda.

miércoles, 29 de enero de 2014

Borrar servicios o cuentas en la nube

Muchas veces nos damos de alta en servicios de la nube para utilizarlos ocasionalmente o incluso una vez concreta, pero que pasa después con estas cuentas? Estas cuentas se pueden eliminar ? Es fácil borrarlas ? Que grado de dificultad tendremos en borrarlas ?

Bueno es aquí donde entra http://justdelete.me/

Se trata un directorio de servicios , que nos muestra el grado de difilcultad de eliminar dichas cuentas con método de colores y que nos permite filtrarlos. Como curiosidad en muchos servicios es imposible eliminar la cuenta.

http://justdelete.me/ nos pemirte ir directamente al enlace de baja de cualquier servicio.




viernes, 24 de enero de 2014

Proteger el sistema Windows XP



Después de la confirmación de que a partir de abril de 2014 Microsoft dejara de dar soporte ni actualizaciones a Windows XP. Han corrido muchos artículos por Internet, sobre la importancia de migrar el sistema Windows XP a sistemas como Widnows7 o Windows8 , incluso están afectados los cajeros automáticos, véase los siguientes artículos:


  1. http://windowsitpro.com/windows-xp/three-similarities-between-zombie-apocalypse-and-death-windows-xp
  2. http://blogs.technet.com/b/security/archive/2013/08/15/the-risk-of-running-windows-xp-after-support-ends.aspx


Una de las medidas que se pueden realizar, para protegernos de los posibles malware que intenten explotar las posibles vulnerabilidades de Windows XP, puede ser winLockLess básicamente es un software que se encarga de proteger las partes del sistema más comprometidas.

Evita que los programas modifiquen ciertos puntos del sistema para que se lancen de forma automática en el inicio de Windows. Se ha intentado que sea bastante sencillo: niega con un solo click el permiso de crear subclaves y establecer el valor (y en algunos casos, de borrar) sobre estas ramas implicadas en el arranque de Windows:

HKCU\Software\Microsoft\Windows\CurrentVersion\Run

HKLM\Software\Microsoft\Windows\CurrentVersion\Run

HKCU\Software\Microsoft\Windows NT\CurrentVersion\WinLogon

HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon

HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

Además protege la carpeta de inicio del usuario, y la rama:

SYSTEM\CurrentControlSet\Control\SafeBoot

Con esto nos aseguramos de que siempre podremos entrar en el modo seguro del sistema Windows.

Podéis encontrar mas información y descargar la herramienta en la pagina de los creadores -> http://unaaldia.hispasec.com/2012/04/hispasec-presenta-winlockless.html

Descarga Aquí

 

viernes, 17 de enero de 2014

Cambiar descripción de Equipo remotamente

Cuando nos interesa cambiar las descripciones de los equipos de una red, podemos utilizar el siguiente comando, para ello necesitamos tener las herramientas pstools:

c:\ psexec   \\Servidor1   net config server /srvcomment:"Srv. Ficheros"


El comando cambiara la descripción del servidor1, y le pondrá el valor de Srv.Ficheros.


sábado, 11 de enero de 2014

Inventario de red bueno, bonito y barato... Lansweeper

Durante un tiempo he estado buscando un inventario de red , que sea económico , ágil, funcional y personalizable. Llevo tiempo usando el inventario gratuito OCS , pero encontraba a faltar flexibilidad y agilidad en el uso diario.

Después de una búsqueda por Internet creo que encontrado el inventario que estaba buscando lansweeper es un inventario muy fácil de instalar y que permite tener todas las opciones de gestión y administración de equipos de la red facilmente.

Existen varias versiones, la gratuita es muy básica y no cumple mis exigencias, pero la versión de pago permite lo siguiente:

  • Integración con Active directory.
  • No requiere instalación de agentes.
  • Diseño de informes a media mediante sql, por defecto vienen 250 informes prefabricados.
  • Gestión de Licencias.
  • integración con granja vmware.
  • gestión de equipos.
  • muy personalizable , por ejemplo definir instalaciones desatendidas.
  • gran soporte online.
En el siguiente vídeo podéis ver las características de la nueva versión 5.1

viernes, 15 de noviembre de 2013

Atajos de teclado en Windows 2012

A continuación muestro los atajos de teclado del Windows, son esenciales para manejar el sistema sin ratón. Muchos de estos atajos están activos desde los inicios de los tiempos en los sistemas Microsoft:

  • Win: muestra el interfaz metro. Si vuelves a pulsar Win, sales.
  • Space: en el interfaz metro abre opciones y da un enlace a todos los programas. Con el botón derecho del ratón también sale ese enlace.
  • Esc: sales del interfaz metro
  • Win + escribir algo: busca el programa que coincida con lo que escribes: cmd, notepad, ...
  • Win + c: importante si quieres APAGAR el equipo o acceder a la configuración.
  • Win + i: te lleva a la configuración
  • Win + f: te lleva a la pantalla de búsqueda de ficheros
  • Win + q: pantalla de búsqueda de aplicaciones y muestra todos los programas
  • Win + w: te lleva a la búsqueda de configuraciones
  • Win + x: muestra el nuevo menú de inicio
  • Win + e: la clásica, muestra un explorador de Windows, unidades, carpetas,...
  • Win + d: muestra en el escritorio
  • Win + r: ejecutar programa
  • Win + u: muestra centro de accesibilidad
  • Win + p: opciones para segunda pantalla
  • Win + t: se mueve entre las ventanas abiertas de la barra de tareas, enter para ejecutar
  • Win + l: lock, bloquea la pantalla
  • Win + Pause/Break: muestra las propiedades del sistema.
  • Win + Número: pasa a primer plano la aplicación, según el orden en que estén
  • Win + PrtSc: te guarda un pantallazo en Imágenes.
  • Win + m: minimiza todas las ventanas
  • Win + Arriba: maximiza la ventana.
  • Win + Abajo: minimiza la ventana.
  • Win + Izq: desplaza la ventana abierta a la izquierda.
  • Win + Der: desplaza la ventana abierta a la derecha.
  • Win + Space: cambia el idioma del teclado
  • Win + Enter: inicia el narrador
  • Win + +: aumenta con la lupa
  • Win + - : disminuye el tamaño con la lupa
  • Win + Esc: sale del magnificador
  • Ctrl + Mayus + Esc: Administrador de tareas
  • Shift + Supr: elimina un fichero/directorio sin dejarlo en papelera. Pide confirmación.
  • Alt + Enter: muestra propiedades de un fichero seleccionado
  • Alt + Der: en un Explorador de ficheros se mueve a la siguiente carpeta
  • Alt + Izq: en un Explorador de ficheros se mueve a la carpeta anterior
  • Alt + Arriba: en un Explorador de ficheros se mueve a la carpeta de nivel superior
  • Alt + Tab: cambiar de ventana, siempre para ocultarle algo a alguien ;)
  • Alt + Mayus + Tab: cambiar de ventana en orden inverso
  • Ctrl + Alt + Sup: si no lo sabes también irás al infierno, a un nivel lleno de usuarios a los que les tendrás que reinstalar el XP hasta el fin de los tiempos.




jueves, 5 de septiembre de 2013

Administrar Windows Update en Windows 2012

Para comprobar la configuración actual de Windows Update, en un símbolo del sistema, ejecuta el siguiente comando:

Cscript scregedit.wsf /AU /v


Para habilitar las actualizaciones automáticas, ejecuta los siguientes comandos:

Net stop wsuaserv
cscript scregedit.wst /AU 4
net start wsuaserv


Para deshabilitar las actualizaciones automáticas, ejecuta los siguientes comandos:

Net stop wsuaserv
cscript scregedit.wsf /AU 1
net start wsuaserv


Si el servidor es miembro de un dominio, también puedes configurar Windows Update mediante directivas de grupo.


Para obligar a Windows Update a detectar e instalar inmediatamente cualquier actualización disponible, ejecute el siguiente comando:

wuauclt /detectnow


En función de las actualizaciones que estén instaladas, es posible que deba reiniciar el equipo, aunque el sistema no se lo notificará. Para determinar si el proceso de instalación se ha completado, use el Administrador de tareas para comprobar que los procesos Wuauclt o Trusted Installer no se están ejecutando de forma activa. También puede usar los métodos incluidos en la sección "Ver actualizaciones instaladas" para comprobar la lista de actualizaciones instaladas.

Extraído de  -> http://technet.microsoft.com/es-es/library/jj574100.aspx


Cambios de interfaz en Windows 2012 Core to Gui

Una de las opciones interesantes que ofrece la versión de windows 2012, es la posibilidad de cambiar el tipo de interfaz del servidor. Antiguamente esto solo era posible mediante la re instalación del sistema.

Para realizar las conversiones podemos mirara la siguiente tabla:

Para alcanzar el estado de instalación en cada columna... Opción de instalación Server Core Interfaz de servidor básica Opción de instalación Servidor con una GUI Característica experiencia de escritorio instalada
Seleccione estas características en Administrador del servidor: ninguna Infraestructura y herramientas de administración de gráficos Infraestructura y herramientas de administración de gráficos, Shell gráfico de servidor Infraestructura y herramientas de administración de gráficos, Shell gráfico de servidor, experiencia de escritorio
O ejecute los comandos install/uninstall de Windows PowerShell con estos valores para el parámetro Name: ninguno Server-Gui-Mgmt-Infra Server-Gui-Mgmt-Infra, Server-Gui-Shell Server-Gui-Mgmt-Infra, Server-Gui-Shell, Desktop-Experience

Para usar Windows PowerShell para convertir una instalación Server Core en una instalación Servidor con una GUI, use este cmdlet de Windows PowerShell:

Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell –Restart

Para convertir a una instalación Server Core con Windows PowerShell: ejecute el siguiente cmdlet:

Uninstall-WindowsFeature Server-Gui-Mgmt-Infra -Restart

miércoles, 4 de septiembre de 2013

Script útil para actualizar la descripción de las maquinas del dominio

Script útil para actualizar la descripción de las maquinas del dominio, creamos un fichero vbs y lo ubicamos en el SYSVOL, de esta manera los lanzamos en la politica de dominio al logarse al sistema.

Nos mantendra en la descripcion del equipo de active directory el User, Serial Number & Computer Model

'-----------------------------------------------------------------------
' Created 3/29/2011
' When used as login script it will populate the Computer Description
' in Active Directory with User Description, Serial Number & CompModel
'----------------------------------------------------------------------
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colcomputersystem = objWMIService.ExecQuery _
    ("Select * from Win32_computersystem")
Set colBIOS = objWMIService.ExecQuery _
    ("Select * from Win32_BIOS")
For each objcomputersystem in colcomputersystem
    Getcomputersystem = objcomputersystem.Model
Next
    For each objBIOS in colBIOS
GetSerialNumber = objBIOS.SerialNumber
    Next      
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName)
strMessage = objUser.DisplayName & " / " & Getcomputersystem & " / " & GetSerialNumber
objComputer.Description = strMessage
objComputer.SetInfo