Pagina web y blog personal de David Pascual Rocher. Administrador de sistemas y desarrolador web.

Restringir una cuenta de usuario administrador (o no) a que solo pueda ejecutar ciertos programas en windows 10

Publicado el 2021-04-28 por David Pascual
 

Hace poco me ha aparecido una casuística que no veía desde los tiempos de windows xp, el permitir a un usuario el arrancar una aplicación con permisos de administrador local ya que sin ellos la aplicación no funciona (hay desarrolladores que simplemente quieren ver el mundo arder).

El caso es que en windows xp la solución a este problema era relativamente sencilla, simplemente con dejar un acceso directo en el escritorio que con el siguiente contenido:

runas /user:nombre-maquina\nombre-administrador /savedcred "L:\a\ruta\al\ejecutable.exe"

Ejecutándolo tu mismo e introduciendo la contraseña del administrador local una vez, el usuario podía arrancar ese programa como administrador sin saber la contraseña del mismo.

A partir de windows 7, si intentamos usar este “truquillo” del runas nos aparecerá el siguiente mensaje:

Error 740: La operación solicitada requiere elevación

La solución mas rápida para permitir al usuario ejecutar el programa seria deshabilitar el UAC, pero esta solución no es en absoluto recomendable. No obstante se puede conseguir una màquina en donde un usuario (en nuestro caso un administrador de la maquina) solo pueda ejecutar un programa y nada mas.

Crear usuario para ejecutar el programa

Crearemos un usuario administrador local, en nuestro caso, ya que el programa en cuestión necesita de permisos de administrador.

New-LocalUser -AccountNeverExpires -UserMayNotChangePassword -PasswordNeverExpires -Name "usuario-programa"
Add-LocalGroupMember -Group "Administradores" -Member "usuario-programa"

Configurar políticas locales para limitar ejecución de programas para el usuario

Abrir editor de políticas para un usuario en concreto del equipo local.

Win + R y ejecutaremos mmc

Ejecutar Microsoft Management Console

Una vez que tengamos la MMC abierta añadiremos el complemento mediante la entrada de menú Archivo –> Agregar o quitar complemento…“ o mediante el shortcut Ctrl + M:

Agregar complemento a la consola

Cuando se nos abra el cuadro de dialogo de Agregar o quitar complementos buscaremos la entrada de Complementos disponibles: Editor de objetos y directivas de grupo y pulsaremos en Agregar:

Agregar Editor de objetos y directivas de grupo

En el asistente que nos aparecerá pulsaremos sobre el botón Examinar…:

Agregar Editor de objetos y directivas de grupo 02

En la ventana que nos aparecerá seleccionaremos la pestaña Usuarios y dentro de usuarios seleccionaremos el usuario que hemos creado en el paso anterior (usuario-programa) y pulsaremos en Aceptar:

Agregar Editor de objetos y directivas de grupo 03 Agregar Editor de objetos y directivas de grupo 04

Una vez que le hemos dado a Aceptar podremos ver en el asistente que nos aparece seleccionado como Objeto de directiva de grupo el usuario que hemos creado en el paso anterior, pulsaremos en Finalizar para agregar el complemento a la consola de administración.

Agregar Editor de objetos y directivas de grupo 05

Configurar la política para limitar la ejecución de programas a un solo programa.

Accederemos a Configuración de usuario -> Plantillas administrativas -> Sistema y haremos doble click sobre la entrada Ejecutar solo aplicaciones especificas de Windows:

Configurar política Ejecutar solo aplicaciones especificas de Windows 01

En la ventana de configuración de la política que nos aparece, habilitaremos la politica selccionando Habilitada y pulsaremos el botón Mostrar… de la opcion Lista de aplicaciones permitidas

Configurar política Ejecutar solo aplicaciones especificas de Windows 02

En el cuadro de dialogo que nos aparecerá introduciremos el nombre del ejecutable que queremos permitir que se ejecute (para este articulo usaremos firefox como ejemplo) y pulsaremos en Aceptar.

Configurar política Ejecutar solo aplicaciones especificas de Windows 03

Importante: En la ventana anterior hay que poner solo el nombre del programa que queremos permitir ejecutar, no hay que poner la ruta del hacia el ejecutable.

Pulsaremos Aceptar en la ventana e configuración de la política

Configurar política Ejecutar solo aplicaciones especificas de Windows 04

Y ya nos aparecerá como configurada y habilitada:

Configurar política Ejecutar solo aplicaciones especificas de Windows 05

Comprobación de la política

Si iniciamos sesión con el usuario usuario-programa que hemos creado en el primer paso e intentamos abrir cualquier aplicación, excepto firefox, nos aparecerá el siguiente mensaje de error:

Comprobación aplicación política 01

En cambio si ejecutamos firefox, se nos abrirá sin problema alguno.

Comprobación aplicación política 02

Esta solución solo vale para las sesiones interactivas del usuario sobre el que configuramos la política, si por ejemplo tenemos un usuario en el mismo equipo que sabe la contraseña del administrador capado e intenta ejecutar cualquier cosa mediante ejecutar como administrador y selecciona este administrador:

Ejecutar como administrador se salta la política 01 Ejecutar como administrador se salta la política 02

Podrá hacerlo sin ningún problema:

Ejecutar como administrador se salta la política 03

Comento esto por que mi idea inicial era configurar esta política, darle la contraseña a un usuario y dejar que ejecutar la aplicación que requería permisos de administrador mediante “Ejecutar como administrador”.

Notas finales

Para solventar el problema de que el usuario no pueda arrancar programas a través del “Ejecutar como administrador” se ha creado una VM en la misma màquina y para entrar al programa se arranca la VM y se conecta por rdp a esta con el administrador con restricciones.

Si en lugar de configurar esta política configuramos la política “No ejecutar aplicaciones de Windows especificas”

Política No ejecutar aplicaciones de Windows especificas

El usuario podrá ejecutar cualquier cosa excepto lo que nosotros especifiquemos, por ejemplo podríamos configurar que un usuario no arranque los navegadores para impedir que navegue por internet.

Documentación

 

Crear galería de imágenes a partir de un conjunto estructurado de pdfs

Publicado el 2021-04-07 por David Pascual
 

Hace poco me pasaron un tochaco de pdfs para publicar en la pagina web, escaneos de diferentes publicaciones anuales. Por suerte la info venia ya estructurada de la siguiente forma:

.
├── 1942
│   └── 1942.pdf
├── 1944
│   └── 1944.pdf
├── 1945
│   └── 1945.pdf
.
.
.
└── 1985
    └── 1985.pdf

Automáticamente pensé que la mejor opción para publicarlo seria una galería con la portada de cada publicación enlazando al pdf de la publicación y que con el poder unix/linux seria una tarea sencilla el poder generar los thumbnais de las portadas de las publicaciones.

En este articulo veremos el proceso para generar esta galería a partir de un conjunto de pdfs.

Prerequisitos

Necesitaremos una maquina linux (en nuestro caso una ubuntu 20.04) con las utilidades pdftk, convert y mogrify todas ellas presentes en los paquetes imagemagick y pdftk. Para instalarlas simplemente ejecutaremos.

sudo apt install imagemagick pdftk -y

Extraer la portada de cada pdf

El primer paso es extraer la primera pagina de cada pdf, que contiene la portada de la publicación, en un archivo a parte, si ejecutamos sobre un fichero pdf

pdftk pdf-origen.pdf cat 1 output pdf-orinen-front.pdf

nos generara un pdf nuevo con solo la primera pagina del original.

Para hacerlo sobre todos los pdf presentes en la estructura de en la estructura de directorios y ficheros que hemos visto antes, ejecutaremos la siguiente secuencia de comandos en la carpeta pricipal que contiene todas las carpetas con los pdfs.

find . -iname "*.pdf" | xargs -I{} echo "{}" | sed 's/\.pdf//g' | xargs -I{} pdftk "{}.pdf" cat 1 output "{}-front.pdf"

Ahora pasamos a destripar un poco este oneliner:

  • find . -iname "*.pdf": Nos encontrará todos los archivos pdfs presentes en la carpeta y subcarpetas.
  • xargs -I{} echo "{}" | sed 's/\.pdf//g': elimina la extensión pdf de la ruta del archivo para asi poder trabajar con el nombre del archivo mejor, se introduce xargs -I{} echo "{}" antes de quitar el .pdf de la cadena con sed por que si se le hace el pipe desde el find directamente a sed, sed busca y substituye .pdf en el contenido del fichero y empieza a escupir un churro de caracteres (el contenido del pdf) en pantalla.
  • xargs -I{} pdftk "{}.pdf" cat 1 output "{}-front.pdf": se genera un pdf a partir del existente con solo la primera pagina del pdf original, en la carpeta donde teniamos el pdf original cuyo nombre es [nombre_pdf]-front.pdf.

Una vez ejecutado este oneliner nos quedara una estructura de carpetas y contenido como la siguiente:

.
├── 1942
│   ├── 1942-front.pdf
│   └── 1942.pdf
├── 1944
│   ├── 1944-front.pdf
│   └── 1944.pdf
├── 1945
│   ├── 1945-front.pdf
│   └── 1945.pdf
.
.
.

Convertir la portada a imagen

El siguiente paso es convertir el pdf que tenemos con la portada en una imagen, ejecutando lo siguiente:

convert 1942.pdf 1942.jpg

conseguiremos que nuestro pdf con la portada se convierta en un jpg.

Para hacerlo sobre todas las portadas que hemos extraido en el paso anterior, ejecutaremos:

find . -name "*-front.pdf" | xargs -I{} echo "{}" | sed 's/\.pdf//g' | xargs -I{} convert "{}.pdf" "{}.jpg"

Destripando este oneliner tenemos que:

  • find . -name "*-front.pdf": nos encuentra todos los achivos pdfs con las portadas que hemos generado en el paso anterior.
  • xargs -I{} echo "{}" | sed 's/\.pdf//g': elimina la extensión pdf de la ruta del archivo, al igual que en la seccion anterior se usa el truquete del echo para que sed no trabaje sobre el contenido del fichero.
  • xargs -I{} convert "{}.pdf" "{}.jpg": convierte el pdf con la portada a una imagen jpg

una vez ejecutado tendremos una estructura de carpetas y contenido como la siguiente:

.
├── 1942
│   ├── 1942-front.jpg
│   ├── 1942-front.pdf
│   └── 1942.pdf
├── 1944
│   ├── 1944-front.jpg
│   ├── 1944-front.pdf
│   └── 1944.pdf
├── 1945
│   ├── 1945-front.jpg
│   ├── 1945-front.pdf
│   └── 1945.pdf
.
.
.

Corregir error imagemagick

Al ejecutar el comando convert en ubuntu 20.04, nos aparecerá el siguiente error:

onvert-im6.q16: no images defined `./1977/1977-front.jpg' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.

Para solventarlo hay que aplicar lo que se dice en el siguiente hilo de stackoverflow y cambiar en el fichero /etc/ImageMagick-6/policy.xml la siguiente línea:

-<policy domain="coder" rights="none" pattern="PDF" />
+<policy domain="coder" rights="read | write" pattern="PDF" />

Eliminar pdf de la portada

Ahora que ya tenemos la imagen, los pdf donde hemos extraido la portada en el primer paso ya no nos interesan, podemos deshacernos de ellos ejecutando

find . -name "*-front.pdf" -delete

una vez ejecutado nos quedara la estructura de carpetas y contenido del siguiente modo:

.
├── 1942
│   ├── 1942-front.jpg
│   └── 1942.pdf
├── 1944
│   ├── 1944-front.jpg
│   └── 1944.pdf
├── 1945
│   ├── 1945-front.jpg
│   └── 1945.pdf
.
.
.

Reducir tamaño de la imagen y normalizarla como thumbnail

El conjunto de imágenes generadas contiene tanto imagenes apaisadas como imagenes horizontales, ademas el tamaño de estas es mejorable para que el el tiempo de carga de la pagina sea mas optimo.

Por ejemplo, tenemos la siguiente imagen 1942-front.jpg que nos ocupa 148KB:

 ls -lh
total 32M
-rw-rw-r--  1 david david 148K abr  7 09:32 1942-front.jpg
-rw-r--r--  1 david david  32M dic 18 10:42 1942.pdf

Si ejecutamos:

mogrify -resize 242x200 -background white -gravity center -extent 242x200 -format jpg -quality 75 1942-front.jpg

nos generara un thumbnail a partir de la imagen que:

  • tiene una tamaño de 242px x 200px: -extent 242x200
  • la imagen original se ajustara al tamaño 242x200, -resize 242x200
  • la imagen original aparecera centrada dentro del thumbnail: -gravity center
  • se rellerara lo que no ocupe la imagen original con el color blanco: -background white
  • nos generara un jpg con una calidad un 25% inferior al original: -format jpg -quality 75

con lo que despues de ejecutar este comando obtendremos un thumbnail que nos ocupa 11KB (una reduccion del 93%):

s -lh
total 32M
-rw-rw-r-- 1 david david 11K abr  7 09:37 1942-front.jpg
-rw-r--r-- 1 david david 32M dic 18 10:42 1942.pdf

Para conseguir un thumbnail de todas las imagenes que hemos conseguido en los passos anteriores ejecutaremos:

find . -name "*-front.jpg" | xargs -I{} mogrify -resize 242x200 -background white -gravity center -extent 242x200 -format jpg -quality 75 "{}"

Mostrar las imagenes en el navegador

Con el siguiente snippet en php conseguiremos que nos pinte la galeria en el navegador a partir de la estructura de carpetas y contenido que tenemos.

<?php foreach(glob($_SERVER['DOCUMENT_ROOT'].'/path/directorio/pdfs/*/*.pdf') as $pdfFile) : ?>
<?php
    $path_parts = pathinfo($pdfFile);
    $html_base_path = str_replace($_SERVER['DOCUMENT_ROOT'], "", $path_parts['dirname']);
    $pdf_path = $html_base_path."/".$path_parts['basename'];
    $image_path = $html_base_path."/".$path_parts['filename']."-front.jpg";
?>

<div class="col-sm-6 col-md-4">
    <a href="<?=$pdf_path?>">
      <div class="thumbnail">
        <img src="<?=$image_path?>" alt="Llibre Festes <?=$path_parts['filename']?>">
        <div class="caption" style="text-align:center">
          <h3>Llibre Festes <?=$path_parts['filename']?></h3>
        </div>
      </div>
    </a>
  </div>
<?php endforeach ?>

Esto nos pintará una galería como la de la siguiente imagen:

galeria

Tambien podeis ver el resultado en vivo.

 

Conmutador de ventanas tipo vista de actividades de gnome 3 para xfce

Publicado el 2021-04-01 por David Pascual
 

Una de las features que mas me gustan de Gnome 3 es la vista de actividades:

Ejemplo vista actividades Gnome 3

En donde, mediante un simple shortcut de teclado, o un click de ratón, aparecen todas las ventanas que tenemos abiertas en el escritorio como una miniatura y podemos cambiar a la que queremos llegar identificándola por su miniatura y clickando sobre ella nos lleva directamente a ella. Si eres, como yo, una persona que llega a tener decenas de ventanas abiertas al mismo tiempo durante el desarrollo de la jornada de trabajo, probablemente te guste esta feature.

En macOS también existe esta feature y recibe el nombré de exposé, en windows 10 también la tenemos al pulsar Win + Tab.

Por desgracia, el sistema de escritorio xfce, mi favorito para equipos poco potentes (o no tan poco potentes) por su ligereza y velocidad de respuesta, no trae ninguna característica como esta integrada.

Si buscan en google te aparecen alternativas como skippy-xd, pero su código (tal y como se puede ver en el repositorio de github) no se actualiza desde hace 7 años y la PPA a la que apuntan para instalar en ubuntu no tiene paquetes mas allá de la release 16.04.

En este articulo vamos a configurar una utilidad llamada xfdashboard, que tiene pinta de ser parte del proyecto xfce y que ademas distros como ubuntu 20.04 o fedora la ofrecen ya empaquetada.

En este articulo nos centraremos en su instalación y configuración en xubuntu 20.04.

Instalación de xfdashboard

Como hemos dicho la utilidad viene por defecto en los repositorios de ubuntu, asi que instalarla es simplemente escribir en un terminal:

sudo apt install xfdashboard -y

si ejecutamos en un terminal xfdashboard podremos ver que ya nos aparece la vista de actividades de gnome.

Ejecución en backgroud y shortcut

Aunque podríamos crear solamente el shortcut de teclado que nos lance esta vista, la solución mas optima es ejecutar el programa mediante la opción daemonize, para dejarlo en segundo plano, al iniciar sesión y una vez lanzado todas las veces que lo llamemos no lanzara una instancia nueva sino que nos mostrara la que esta ejecutandose en backgroud.

Ejecución en segundo plano.

Simplemente añadiremos a aplicaciones de inicio en Settings -> Session and Startup -> Application Autostart que se ejecute el comando:

xfdashboard -daemonize

Añadir xfdashboard como daemon al inicio de sesión

Ahora si salimos/cerramos nuestra sesión y volvemos a entrar podremos ver que xfdashboard se esta ejecutando en segundo plano:

xfdashboard ejecutandose en segundo plano

Creación de un shortcut de teclado

Ahora que ya tenemos xfdashboard ejecutándose en segundo plano procederemos a crear un atajo de teclado para poder lanzar la vista de actividades. En Settings -> Keyboard ->Applicattion Shortcuts pulsaremos sobre Add para añadir un nuevo shortcut.

En el primer cuadro de dialogo nos pide el programa que se va a ejecutar con el atajo de teclado, introduciremos simplemente xfdashboard:

Creación shortcut de teclado

En el segundo cuadro de dialogo nos pedira que pulsemos la combinación de teclas que queremos asignar a este nuevo atajo de teclado, la pulsaremos. A mi personalmente me gusta la combinación de teclado **+W**, pero se puede introducir cualquiera (como por ejemplo + para tener un shortcut equivalente al de windows).

Nota: si elegimos un shortcut que xfce ya tiene asignado (por ejemplo la combiancion *+W* esta ya asignada a lanzar el navegador web), nos preguntará si queremos reasignarla.

Una vez tenemos el shortcut definido si lo pulsamos podremos ver que nos aparece el xfdashboard.

xfdashboard funcionando

 

Actualizar zabbix server de la version 4 a la version 5

Publicado el 2020-06-12 por David Pascual
 

Recientemente he actualizado unas instalaciones de zabbix de la versión 4.0 a la 5.0 que mantengo. Una en un server ubuntu, una en un server debian y una en una raspberrypi, aqui dejo el proceso para actualizar el servidor de zabbix.

Actualizar los repositorios

Simplemente seguir las instrucciones que hay en la documentación, como si fueramos a instalar por primera vez zabbix, para el caso de un servidor ubuntu 18.04, por ejemplo, ejecutariamos:

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb
sudo dpkg -i zabbix-release_5.0-1+bionic_all.deb

Parar los servicios de zabbix

sudo systemctl stop zabbix-server
sudo systemctl stop zabbix-agent

Actualizar los paquetes

En la documentación oficial se indica otro modo, pero simplemente si ejecutamos:

sudo apt update && sudo apt upgrade -y

funciona igualmente.

Durante la actualización nos preguntara que hacer con los ficheros de configuración /etc/zabbix/zabbix_server.conf y /etc/zabbix/zabbix_agentd.conf, si queremos conservar las versiones instaladas o instalar la versión que viene con el paquete, contestaremos que no (N, opción por defecto) para no perder la configuración del servidor.

Nota en raspbian, o raspberry OS como se llama ahora, la actualización marca como no necearios los paquetes libapache2-mod-php libapache2-mod-php7.3 libsodium23 php7.3-cli php7.3-json php7.3-opcache php7.3-readline, con lo que si ejecutamos un sudo apt autoremove -y se desinstalarán y el frontend de zabbix dejará de funcionar, hay que marcarlos como que són necesareos.

apt install libapache2-mod-php libapache2-mod-php7.3 libsodium23 php7.3-cli php7.3-json php7.3-opcache php7.3-readline -y

Quitar error “Database history tables upgraded: No”

Una vez realizado el upgrade a la versión 5.0 en el dashboard principal, nos apaarecerá el mensaje de error “Database history tables upgraded: No”:

Error 'Database history tables upgraded: No'

Para que este mensaje desaparezca tenemos que:

Descargar y pasar el patch ‘double.sql’

wget https://git.zabbix.com/projects/ZBX/repos/zabbix/raw/database/mysql/double.sql
mysql -u'zabbix' -p zabbix < double.sql

Nota: Nos pedira el password del usuario de la base de datos zabbix.

Editar el fichero zabbix.conf.php

Tendremos que editar los contenidos del fichero /etc/zabbix/web/zabbix.conf.php y añadir la siguiente línea:

$DB['DOUBLE_IEEE754'] = 'true';

Notas finales

El proceso de actualización de los agentes zabbix en linux es muy similar al del servidor. Estoy trabajando en un playbook ansible para automatizar todo el proceso de actualizar los agentes de zabbix en linux.

Enlaces

 

Cambiar la fuente de la GUI del thunderbird

Publicado el 2013-01-23 por David Pascual
 

La fuente que trae por defecto el thunderbird no casa demasiado con el look and feel de OSX, no obstante se puede cambiar si realizamos los siguientes cambios.

En la carpeta del perfil de usuario (en OSX /Users/xoner/Library/Thunderbird/Profiles/xxxxxxxxx.default) crear una carpeta que se llame chrome i crear en ella un fichero que se llame userChrome.css.

Editar el fichero que hemos creado anteriormente e introducir el siguiente contenido:

* {
	font-size: 14px !important;
	font-family: "Lucida Grande", Arial !important;
}

Se supone que este truco también tiene que funcionar con la gui del firefox, si se coloca el fichero chrome\userChrome.css en la carpeta del perfil de firefox.

 

Hacer que los ficheros con cierta extensión sean ejecutables en windows

Publicado el 2009-11-24 por David Pascual Rocher
 

Actualización 16/06/2020:
Se añade la creación de las claves de registro mediante powershell

En los entornos linux/unix hacer que un script sea directamente ejecutable es algo tan sencillo como marcar el fichero como ejecutable, mediante chmod, y poner en la primera linea del script el path del interprete comentado. En windows esto mismo no es posible, no obstante es posible asociar cada extensión de fichero con que programa se ha de usar por defecto al ejecutarlo. En este articulo haremos que los ficheros .py se ejecuten con el interprete de python IronPython, implementación de python sobre el clr de .NET)

Habilitar HKEY_CLASS_ROOT en powershell

Por defecto powershell no tiene acceso al grupo de claves de registro HKEY_CLASSES_ROOT, para poder tener acceso a este conjunto de claves de registro hay que ejecutar el siguiente comando en powershell:

New-PSDrive -PSProvider registry -Root HKEY_CLASSES_ROOT -Name HKCR

Crear una clave de registro para el tipo de archivo (si no existe)

Version regedit

  1. Abrir el editor de registro de windows i sobre la clave de registro HKEY_CLASSES_ROOT crear una nueva clave con la extension de archivos que queremos hacer ejecutable (en nuestro caso .py)
  2. Sobre esta nueva clave de registro que hemos creado, crear un nuevo valor con estos valores:
NombreTipoDatos
ContentTypeREG_SZ text/plain
  1. Sobre esta nueva clave de registro que hemos creado cambiar el valor (Predeterminado) para que quede de la siguiente forma:
NombreTipoDatos
(Predeterminado)REG_SZIronPython.File

Versión powershell

Set-Location HKCR:
New-Item -Path HKCR:\ -Name '.py'
Set-ItemProperty -Path  HKCR:\.py -Name '(Default)' -Value 'IronPython.File'

Crear una clau para el manejador de archivo que hemos declarado anteriormente

Versión regedit

  1. Sobre la clave de registro HKEY_CLASS_ROOT crear una nueva clave con el valor introducido en el punto 3 del apartado anterior (En nuestro caso IronPython.File).
  2. Sobre la clave de registro creada en el paso anterior crear una subclave llamada Shell.
  3. Sobre la clave creada en el paso anterior crear una subclave llamada Open, editar el valor del valor (Predeterminado) de la clave Open. para que quede de la siguiente forma.
NombreTipoDatos
(Predeterminado)REG_SZOpen
  1. Sobre la clave de registro creada en el paso anterior crear una subclave Command.
  2. Editar el valor (Predeterminado) de la clave creada en el paso anteiror para que quede de la siguiente forma:
NombreTipoDatos
(Predeterminado)REG_SZ“C:\Program Files\IronPython 2.7\ipy.exe” “%1″ %*

Nota!!: C:\Program Files\IronPython 2.7\ipy.exe es la ruta hacia el ejecutable de ironpython.

Versión powershell

New-Item -Path HKCR:\ -Name 'IronPython.File'
New-Item -Path HKCR:\IronPython.File -Name 'Shell'
New-Item -Path HKCR:\IronPython.File\Shell -Name 'Open'
New-ItemProperty -Path HKCR:\IronPython.File\Shell\Open -Name '(Default)' -Value 'Open'

New-Item -Path HKCR:\IronPython.File\Shell\Open -Name 'Command'
New-ItemProperty -Path HKCR:\IronPython.File\Shell\Open\Command -Name '(Default)' -Value '"C:\Program Files\IronPython 2.7\ipy.exe" "%1" %*'