El TecnoBaúl de Kiquenet

Kiquenet boring stories

Archive for 28 enero 2014

Automatización en envío de correo: Send Automated Emails using SendEmail and Windows Task Scheduler

Posted by kiquenet en 28 enero 2014

Se puede automatizar el envío de correos aplicando Tareas Programadas de Windows y el comando SendEmail.exe.

Para crear tareas programadas (tasks scheduler) se utiliza el comando schtasks.exe o Start->Programs->Accessories->System Tools->Task Scheduler

Con el comando SendEmail.exe podemos configurar el envío de correos:

Examples below.

  • -f xxxxx@gmail.com : This parameter is the email address that will be the “sender.”
  • -t rdube@yahoo.com : This is the recipient’s email address.
  • -u Monday Status Updates : This is the subject
  • -m Here’s the analytics data for this week! : This is the message body.
  • -a Analytics_Channel1.csv Analytics_Channel2.csv Analytics_Channel3.csv : These are the attachments.
  • -s smtp.gmail.com:587 : SMTP server and port
  • -xu xxxxx@gmail.com : SMTP authentication ID name
  • -xp A1ienz2A51 : SMTP authentication password
  • -o tls=yes : SMTP uses TLS (or SSL)

.

sendmail2   Send Automated Emails Using SendEmail & Windows Task Scheduler

sendmail3   Send Automated Emails Using SendEmail & Windows Task Scheduler

sendmail4   Send Automated Emails Using SendEmail & Windows Task Scheduler

Referencias:

http://www.makeuseof.com/tag/send-automated-emails-save-time-sendemail-windows-task-scheduler/
http://caspian.dotconf.net/menu/Software/SendEmail/

http://www.makeuseof.com/tag/how-to-automate-windows-programs-on-a-schedule/

Posted in Scripts, Trucos | Etiquetado: , , | Leave a Comment »

Sleep command in batch file

Posted by kiquenet en 28 enero 2014

On Windows Vista / Windows 7 you can use the timeout command:

timeout /T [delay in seconds] /NOBREAK > NUL

On previous versions of Windows, you can use the ping command (the ping command has 1000 ms of delay between each iteration):

ping -n [delay in seconds + 1] 127.0.0.1 > NUL

Note: As TCP/IP is now ubiquitous, using ping will usually work, but only if TCP/IP is used (a client Windows machine could use NetBEUI or IPX/SPX instead).

Some versions of Windows (like Windows Server 2003) has the sleep.exe executable:

sleep [delay in seconds]

Note: Windows Resource kit for 2003 (http://www.microsoft.com/en-us/download/details.aspx?id=17657) contains sleep.exe command.

Referencias:
http://malektips.com/xp_dos_0002.html

http://stackoverflow.com/questions/7958265/sleep-command-in-batch-file
http://stackoverflow.com/questions/166044/sleeping-in-a-batch-file

Posted in Scripts, Trucos | Etiquetado: , , | Leave a Comment »

Logs de IIS

Posted by kiquenet en 27 enero 2014

Ruta por defecto:

c:\inetpub\logs\LogFiles


Nota:

Otherwise, check under IIS Manager, select the computer on the left pane, and in the middle pane, go under "Logging" in the IIS area. There you will se the default location for all sites (this is however overridable on all sites)


También pueden encontrarse en siguientes rutas: C:\Windows\system32\LogFiles\W3SVC1

En esta ruta un log que contiene sólo los errores:

C:\Windows\System32\LogFiles\HTTPERR

Comprobar que esté activo:

Programs and Features

then click on

Turn Windows features on or off

on the left side then select

Internet Information Services\World Wide Web Services\Health and Diagnostics\HTTP Logging

Una referencia interesante, y que trata de la configuración de logs en IIS (sección <logFile> de settings)

http://www.iis.net/configreference/system.applicationhost/sites/sitedefaults/logfile

Referencias:

http://stackoverflow.com/questions/6426375/where-can-i-find-the-iis-logs

http://techslate.net/es/cas-server-and-using-and-troubleshooting-iis-log-files/

http://www.iis.net/configreference/system.applicationhost/sites/sitedefaults/logfile

Posted in IIS, Trucos | Etiquetado: , | Leave a Comment »

Dos notas sobre Hyper-V en Windows

Posted by kiquenet en 24 enero 2014

Remote Desktop hacia máquinas virtuales en Hyper-V Cliente en Windows 8
http://mastergt68.wordpress.com/2013/01/17/remote-desktop-hacia-mquinas-virtuales-en-hyper-v-cliente-en-windows-8/

INSTALLING HYPER-V MANAGER ON WINDOWS 7
http://blogs.technet.com/b/schadinio/archive/2010/07/09/installing-hyper-v-manager-on-windows-7.aspx

Remote Desktop hacia máquinas virtuales en Hyper-V Cliente en Windows 8

La ventana cliente de conexión hacia una máquina virtual que corre en Hyper-V de Windows 8 es limitada. Por ello, decidí investigar que hacer para conectarme con otro cliente que permitiese, como en VMWare Player y en VMWare Workstation, usar toda la pantalla de mi laptop.

Después de una intensa búsqueda para ver si había un cliente que me permitiese conectarme, pensé que debía ser posible conectarse mediante escritorio remoto, Remote Desktop, con lo cual si podía usar toda la pantalla de mi laptop, entre otros beneficios.

Para lo anterior, hay que realizar lo siguiente, asumiendo que ya Hyper-V está habilitado en Windows 8:

1. Habilitar un “virtual switch network” en Hyper-V. Para ello es necesario ejecutar el Hyper-V Manager, luego correr el Virtual Switch Manager y luego crear el nuevo switch. En mi caso en particular, quedó configurado de la siguiente manera:

image

2. Es importante que el switch sea definido como “Internal Network”.

3. Ahora hay que habilitar en la tarjeta física, la posibilidad de compartirla por el switch interno definido. Para ello, revisamos las conexiones de red; en mi caso en particular, se ven de esta manera:

image

4. Como el switch virtual se ha “apoderado” de algunas propiedades de la tarjeta de red Wi-Fi, como se llama en mi laptop, entonces sobre ésta seleccionamos las propiedades de la misma. Debe salir una ventana como la que se muestra a continuación:

image

5. Se selecciona la pestaña etiquetada como “Sharing” y se deja, de nuevo para la configuración que se ha venido realizando, como se detalla en la siguiente imagen:

image

6. Presionar OK. Sobre la pantalla de conexiones de red, se debe apreciar que la conexión que hace mención al switch virtual sobre la tarjeta WiFi está compartida.

7. Ahora bien, si la máquina virtual solo requiere una tarjeta de red y no se conecta con otra máquina virtual o incluso con un controlador de dominio, pues muy seguramente usará el switch virtual configurado previamente. Si por el contrario, la máquina virtual requiere que se conecte con otra, pues para verla vía RD hay que habilitar otra tarjeta de red conectada al switch virtual que se configuró previamente para compartir vía el switch interno.

8. Por ultimo, y un paso importante, aunque a veces se obvia, es habilitar el acceso por escritorio remoto hacia la máquina virtual.

Con esto, entonces procedemos a mostrar como se ve la máquina virtual accedida desde RD, primero mostrando la interfaz cliente nativa de Hyper-V:

image

Y así, desde RD:

image

Ya en RD, se puede maximizar y usar la pantalla completa para trabajar con la máquina virtual.

INSTALLING HYPER-V MANAGER ON WINDOWS 7.

Download and install the RSAT tools for Windows 7 from here: http://www.microsoft.com/downloads/details.aspx?FamilyID=7D2F6AD7-656B-4313-A005-4E344E43997D&displaylang=en. Install either the 32-bit or 64-bit depending on what version of Windows 7 you’re using.

Next, go to Start – Control Panel and click on Programs.

clip_image001

Next, you’ll see an option to Turn Window features on or off. Click on this option.

clip_image002

Under Remote Server Administration Tools – Role Administration Tools, find the option for Hyper-V Tools, check the checkbox and click OK. You can now type Hyper-V Manager at the Start Menu

clip_image004

You can now type Hyper-V Manager at the Start menu or go to Start – Administrative Tools -Hyper-V Manager.

clip_image006

Posted in Virtualizacion, Windows | Etiquetado: , | Leave a Comment »

AppPools e IIS con Powershell

Posted by kiquenet en 24 enero 2014

Trabajando con Powershell y AppPools, para crear un Application Pool en:

Windows Server 2012 R2 con versión IIS 8.5

Windows Server 2008 R2 con versión IIS 7.5

Powershell 4.0

Algunos datos previos como la versión de Powershell:

$PSVersionTable.PSVersion.ToString()

Get-PSVersion

Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine" | Select -ExpandProperty PowerShellVersion

Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine" | Select -ExpandProperty PowerShellVersion

Y la versión de IIS:

Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\  | select setupstring,versionstring
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters | select MajorVersion,MinorVersion,PSPath

Versión de Microsoft.Web.Administration:

$IISAssembly = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Web.Administration")
$IISVersion = $IISAssembly.GetName().Version
$IISVersionString = [string]::Format("{0}.{1}.{2}.{3}", $IISVersion.Major, $IISVersion.Minor, $IISVersion.Build, $IISVersion.Revision)
$IISVersionString

Algunas anotaciones a tener en cuenta respecto a la sintaxis: 

   Set-Location IIS:\AppPools
   $appPool = New-Item IIS:\AppPools\$name 
   $appPool.processModel.identityType = $processModelIdentityType
   $appPool.managedRuntimeVersion = $managedRuntimeVersion
   $appPool.managedPipelineMode = ([int] [Microsoft.Web.Administration.ManagedPipelineMode]::$managedPipelineMode)
   $appPool | set-item

Otra forma podría ser utilizar Set-ItemProperty:

       Set-ItemProperty IIS:\AppPools\$AppPoolNameTest ProcessModel.IdentityType $processModelIdentityType
    Set-ItemProperty IIS:\AppPools\$name managedRuntimeVersion $managedRuntimeVersion
    Set-ItemProperty IIS:\AppPools\$name managedPipelineMode ([int] [Microsoft.Web.Administration.ManagedPipelineMode]::$managedPipelineMode)
    Set-ItemProperty IIS:\AppPools\$name enable32BitAppOnWin64 true

    Get-ItemProperty IIS:\AppPools\$AppPoolNameTest managedRuntimeVersion
    Get-ItemProperty IIS:\AppPools\$AppPoolNameTest managedPipelineMode
    Get-ItemProperty IIS:\AppPools\$AppPoolNameTest ProcessModel.IdentityType

O utilizarse el comando AppCmd.exe:

system32\inetsrv\appcmd.exe set AppPool $AppPoolName -processModel.identityType:ApplicationPoolIdentity

En Windows Server 2012 – IIS 8.5 funcionó así también, en cambio no aplicaba cambios en Windows Server 2008 – IIS 7.5:

$appPool | set-ItemProperty -Name "managedRuntimeVersion" -Value $managedRuntimeVersion
$appPool | Set-ItemProperty -Name "managedPipelineMode" -Value ([int] [Microsoft.Web.Administration.ManagedPipelineMode]::$managedPipelineMode)
$appPool | set-ItemProperty -Name "managedPipelineMode" -Value $managedPipelineMode

Además,

set-ItemProperty -Name "managedRuntimeVersion" -Value $managedRuntimeVersion

producía un error de casting a int (Set-ItemProperty : [Microsoft.Web.Administration.ManagedPipelineMode]::Integrated is not a valid value for Int32).

De la siguiente manera se consigue solucionar:

Set-ItemProperty -Name "managedPipelineMode" -Value ([int] [Microsoft.Web.Administration.ManagedPipelineMode]::$managedPipelineMode)

Si aparece el siguiente error indica que existe un Sitio Web con el mismo puerto:

start-webitem "Cannot create a file when that file already exists"

Útil además el manejo de versiones con PS:

$PSVersionTable.BuildVersion -ge [Version]"6.3.9421.0"

Una estupenda referencia: http://blogs.iis.net/jeonghwan/archive/2008/07/30/iis-powershell-user-guide-comparing-representative-iis-ui-tasks.aspx

Referencias:

https://gist.github.com/rasmuskl/1482665

https://gist.github.com/jstangroome/882528

http://learn.iis.net/page.aspx/434/powershell-snap-in-making-simple-configuration-changes-to-web-sites-and-application-pools/
http://www.iis.net/configreference/system.applicationhost/applicationpools/add/processmodel

http://www.iis.net/configreference/system.applicationhost/applicationpools

http://www.iis.net/learn/manage/powershell/powershell-snap-in-creating-web-sites-web-applications-virtual-directories-and-application-pools
http://blog.analysisuk.com/post/Configuring-IIS-7-Bindings-with-IIS-PowerShell-Provider.aspx
http://www.iisonthe.net/2012/07/25/changing-application-pool-identities-in-iis-78-using-powershell/
http://stackoverflow.com/questions/4229082/powershell-how-do-i-set-the-net-framework-version-when-using-new-webapppool
http://stackoverflow.com/questions/9282063/powershell-error-when-trying-to-use-set-itemproperty-with-defaultapppool

http://stackoverflow.com/questions/7988306/how-to-use-an-enum-type-in-powershell-when-configuring-iis-using-the-powershell

http://www.powershellmagazine.com/2014/01/03/pstip-validating-version-numbers-without-regex/

http://stackoverflow.com/questions/435050/how-to-determine-installed-iis-version
http://stackoverflow.com/questions/16784587/finding-version-of-iis-using-powershell

Posted in PowerShell, Scripts | Etiquetado: , , , , , , | Leave a Comment »