Mostrando entradas con la etiqueta Windows. Mostrar todas las entradas
Mostrando entradas con la etiqueta Windows. Mostrar todas las entradas

jueves, 5 de mayo de 2022

Instalación remota - PSEXEC III

 He realizado un cambio en el script (javaV3.bat) usado para instalar java para eliminar las versiones antiguas en el mismo proceso.

Este es el repositorio de github

Enjoy!

Culex.


domingo, 31 de octubre de 2021

Powershell Scripts II

 Hello everyone,

Hoy tenemos tres scripts the Powershell que nos ayudan a la hora de cambiar el nombre de una maquina, añadirla a un dominio o borrarla de un dominio.


ChangeComputerName.ps1

AddComputerToDomain.ps1

RemoveComputerFromDomain.ps1


El código lo podéis descargar aquí. DomainTools

Enjoy!

Culex.

domingo, 26 de septiembre de 2021

Powershell Scripts I

Hello everyone,

Después de unas cuantas semanas lockdown volvemos a la carga con una serie de scripts de Powershell que pueden ser útiles para los administradores de sistemas.

El primero de ellos nos permites obtener un listado del software instalado en una serie de maquinas.

InstallSoftByComputer.ps1

Solo es necesario proporcionar un fichero con el listado de equipos que queremos consultar y 'voila'

El código lo podéis descargar aquí. Software Instalado

Enjoy!

Culex.

sábado, 17 de abril de 2021

Error instalando NFS en Windows server 2016

Algo que parece trivial siempre se puede complicar un poco y nos obliga a usar la materia gris para resolver el problema.

Necesitaba instalar NFS server en un windows server 2016 y después de fallar dos veces me parecía muy extraño porque es algo que no tiene dificultad alguna.

Mirando un poco los logs de windows vi que era algo relacionado con el puerto que usa NFS, el 111 y el 2049

Port 111 (TCP and UDP) and 2049 (TCP and UDP) for the NFS server

Pensé que algún otro proceso debía tenerlo en uso y efectivamente así era, usando el comando netstat puedes ver el identificador del proceso  (PID) que usa un puerto en concreto.

netstat -aof | findstr :111


En el ejemplo vemos que esta usado por el PID 8620

Luego usando el task manager vimos, que efecto, estaba en uso por un proceso de ARCServe


Para, solucionarlo, paramos el servicio CASportmapper, instalamos NFS server, cambiamos el inicio del portmapper a 'delayed' y le iniciamos, de esta forma a portmapper  se le asigna otro puerto libre ya que el 111 lo está usando NFS

Culex.





jueves, 18 de febrero de 2021

Crear imagen con SYSPREP - Actualización

 

Alguna veces despues de ejecutar el comando  - Sysprep /generalize /shutdown /oobe -  puede aparecer este error.



Para solucionarlo hay que hacer lo siguiente:

Import-Module appx

Import-Module dism

Get-AppxPackage -AllUsers | Remove-AppxPackage


Mirar si ya tienes algún usuario ya existe. Y eliminarlo.

Culex.


Sysprep (image creation) - Update

Sometimes  I have found this error when you run this command (Sysprep /generalize /shutdown /oobe)

In this situation you have to do the next:

Import-Module appx
Import-Module dism

Get-AppxPackage -AllUsers | Remove-AppxPackage


Then, you check if a previous user has been created and you delete it

Culex.



domingo, 2 de agosto de 2020

Sysprep (image creation)

 Here you are a guide for making windows images using sysprep. This can be useful if we have to set up several computers that share the same/similar configuration.


  • Install a virtual machine (drive type VHD) with the OS. We have to use a VM for getting an image clean of drivers. If we don’t have the last windows ISO we can download from here link.

  • Start Audit mode,  %windir%\system32\sysprep\sysprep.exe /audit /reboot (once the system restart we click cancel on next window.



  • Enable adminstrator account, configure the computer and install all software you need.

  • We can uninstall the  BLOATWARE in order to get a cleaner image(optional).

For getting the bloatware list we run next powershell command.

DISM /Online /Get-ProvisionedAppxPackages | select-string Packagename >> c:\Bloatware.txt



Once we have the list we need to made up two Powershell scripts, once for removing the provision of the apps and another one for uninstalling them. 


 The first one should have next structure:


 DISM /Online /Remove-ProvisionedAppxPackage /PackageName: (Package name)

 

And the second one this structure: 

Get-AppxPackage “(Package name)” | Remove-AppxPackage

 

Note: If posible we have to actívate script execution on Powershell using next command 


Set-ExecutionPolicy Unrestricted.


 Once the scripts have been run we have to roll back the script execution policy using next command. 


Set-ExecutionPolicy  Default


  • Once the computer is configured we have to getting it ready for creating the image. Copy the  “unatend.xml” file we want to use on following path: C:\Windows\Panther\   and reboot the computer using this command; Sysprep /generalize /shutdown /oobe.

This command runs  Sysprep and leave the computer ready for creating the image.




  • Now we have to mount the virtual drive using drive manager choosing Read-Only mode.



We pay attention to the  drive letter assigned and run following command.


 dism /capture-image /imagefile:c:\Install.wim /capturedir:( assigned letter):\ /name:"Windows 10 Pro" /Description:"Windows 10 Pro" /compress:maximum /checkintegrity /verify /bootable

 

Once the proccess has finished we split the “Install.wim” on order to be able of using FAT32 formar.


 Dism /Split-Image /ImageFile:Install.wim /SWMFile:install.swm /FileSize:3800

Now we mount the ISO we have used for installing the VM and copy everything on a folder (e.g. \myWindosImage) . This folder Will be use for creating the final installation media.


We replaced the original  “Install.wim” o “install.esd”, on folder “\myWindosImage \sources” for the files “Install.swm, Install2.swm…” we created previously and finally we copy everything on a USB stick with system file FAT32


Here you are the files I’ve used for this example.


Enjoy.


 Culex.

domingo, 12 de julio de 2020

Sysinternals Tools

Adjunto un pequeño documento sobre las herramientas presentes en la toolbox de Sysinternals.

Es basicamente un resumen de lo que hay en esta página www.howtogeek.com con algún añadido personal.

Here -> Sysinternals. 

Enjoy

Culex

sábado, 20 de junio de 2020

Microsoft Azure (Descarga de software)

Buscando sobre los acuerdos existentes entre la UNED y Microsoft me he encontrado con al sorpresa que hay mucho software que podemos descargar de forma gratuita.

Solo temenos que acceder al portal https://portal.azure.com/

Acceder al enlace 'beneficios estudiantes'  y voila, un montón de software para descargar.






Culex.

miércoles, 31 de julio de 2019

Crear imagen con SYSPREP

A continuación muestro un ejemplo para crear imágenes usando sysprep. Esto nos puede ser util si tenemos que instalar un numero elevado de equipos que comparten entre si una determinada configuración.

  • Instalar máquina virtual (tipo disco VHD) con el SO deseado. Usamos una MV para que la imagen este limpia de drivers. Si no tenemos una imagen actualizada podemos descargarla desde aquí.
  • Iniciar modo auditoria.   %windir%\system32\sysprep\sysprep.exe /audit /reboot (Al reiniciar el equipo Cancelamos esta ventana).



  • Habilitar cuenta usuario administrador, configurar maquina e instalar todo el software que necesitamos.
  • Podemos desinstalar BLOATWARE para tener una imagen mas limpia (opcional).
Obtenemos el listado de bloatware instalado en el equipo.

DISM /Online /Get-ProvisionedAppxPackages | select-string Packagename >>  C:\Bloatware.txt




Una vez obtenemos el listado vamos a generar dos scripts de Powershell, uno para desaprovisionar y otro para desinstalar, que eliminaran de nuestro sistema los paquetes que no deseamos. 

El script para desaprovisionar debe de tener el siguiente formato:

DISM /Online /Remove-ProvisionedAppxPackage /PackageName: (nombre paquete)



Y el script para desinstalar debe de tener el siguiente formato:

Get-AppxPackage “(nombre paquete)” | Remove-AppxPackage


Nota: es posible que tengamos que habilitar la ejecución de scripts en PowerShell. Podemos hacerlo con el comando de powershell

Set-ExecutionPolicy Unrestricted.

Una vez ejecutados los dos scripts podemos volver a establecer la restricción.

Set-ExecutionPolicy  Default

  • Una vez configurado nuestro Sistema lo preparamos para crear la imagen. Copiamos el archivo “unatend.xml” que deseemos usar en la carpeta C:\Windows\Panther\   y reiniciamos la máquina con el comando Sysprep /generalize /shutdown /oobe.
Esto ejecutara Sysprep y dejara la maquina lista para la captura de la imagen previa a la creación del disco de instalación.



  • Una vez a terminado, montamos el disco virtual con el administrador de discos como solo lectura.


Nos fijamos en la letra de unidad asignada y ejecutamos el comando

dism /capture-image /imagefile:c:\Install.wim /capturedir:(letra asignada):\ /name:"Windows 10 Pro" /Description:"Windows 10 Pro" /compress:maximum /checkintegrity /verify /bootable


Cuando el proceso finalice y con el fin de crear una imagen que se pueda instar en formato EFI, vamos a dividir el archivo “Install.wim” que hemos creado en ficheros de no más de 3800 MB, ya que para crear una instalación EFI debemos usar un formato de fichero FAT32.

Dism /Split-Image /ImageFile:Install.wim /SWMFile:install.swm /FileSize:3800


  • Para poder personalizar la ISO de instalación, lo primero que tenemos que hacer es montar la ISO original de Windows 10. Copiamos todo su contenido en la carpeta que vamos a usar para crear la ISO. 

Una vez la copia haya finalizado deberemos borrar el archivo “Install.wim” o “install.esd”, ubicado en la carpeta “\sources” y pegar los archivos “Install.swm, Install2.swm…” que generamos en los apartados anteriores y copiarlo en un USB con sistema de archivos FAT32

Aqui dejo los archivos que he usado.


Culex.



martes, 23 de julio de 2019

Checking HardLinks (deduplicacion)

Doing some test with deduplication I wanted to check the hardlink created on a Windows server 2003.

The native windows tool on Server 2003 fsutil  doesn't allow to check the list of hardlinks so I needed some alternative.

After some research I found  the 'sysinternal' tool  'findlinks'. Its allow a easy way to find the number and path of the diferent hardlinks of a specific file.

e.g.




Culex.

P.D. Here you're a post which explain  the difference between Symbolic Links, Hard Links and Directory Junctions 

miércoles, 26 de junio de 2019

W2016 Server Core

Trasteando un poco con W2016 Server core he visto que tienen una herramienta bastante útil para poder realizar la configuración inicial.

El comando es sconfig.cmd y con el podemos establecer de forma sencilla la configuración de red o añadirlo al dominio.



Culex.



viernes, 8 de febrero de 2019

Acceso fichero bloqueado


Hoy me he encontrado un problema de estos que al encontrar la solución te deja buen sabor de boca y por esa razón lo comparto.

Situación, archivo que tiene bloqueado el acceso de escritura en una unidad de red pero que el cual no esta accedido.


Lo primero que hice fuer verificar si el archivo aparecía accedido usando las propias herramientas del SO. Pero ni con la versión GUI ni con la version CLI 'openfiles' funciono. El caso es que se veía el archivo accedido y dejaba forzar el cierre pero aún así nada. 




Después de esto intente con programas estilo IOBit Unlocker pero no me servían porque no funcionan con recursos de red.

Entonces, me acorde de la asignatura de Administración de Sistemas Operativos, y  pensé que quizás el proceso que se había usado para manejar el acceso al archivo había fallado a la hora de realizar la llamada al sistema  close() al finalizar el acceso y liberar el archivo.

Por ahí la cosa,  si que funciono.

Lo primer o fue usar el programa 'process explorer’ de 'sysinternals'. Usando la opción 'find' podemos buscar manejadores o dll's que contengan una cadena determinada, por ejemplo el nombre de archivo que está bloqueado.




Y una vez localizado el manejador,  podemos forzar el cierre





Y ahora si, archivo liberado :)

Culex.

lunes, 24 de diciembre de 2018

Windows ISO Downloader

Ayer como el día estaba un poco gris y el ordenador de mi compañera necesitaba una puesta a punto decidí que la buena acción del año sería reinstalarselo.

El caso es que  no tenía ninguna ISO a mano y al internar bajarla desde Microsoft no terminaba nunca la validación de la clave.

Me puse a buscar un poco y me encontré con esta herramienta  que me ha funcionado a la perfección.


Enjoy!

Culex




jueves, 9 de agosto de 2018

Putty, Windows 10 and a serial connection

I've had some troubles for setting a serial connection with a Startech.com 2 port serial card to a router Fortinet.

It was the first time I used this card since my old computer has a serial port on the mother board.

The point is that using putty with Windows 7 I have never had to configure anything and the connection always worked properly so I got surprised when it didn't work on Windows 10.

The point is the terminal gets crazy during the boot of the router when the system asked anything



or you should  write any command.


It was a surprised since it has always worked properly with Windows 7

The point is after some troubleshooting the problem was the Flow Control property, I had to set it on 'none' instead of 'XON/XOFF'




I think it was quite obvious but I didn't think about it at the begging since I never did nothing with Windows 7.

Culex.





miércoles, 27 de junio de 2018

Updating lockscreen picture on WINDOWS 10

It seems that MS boys has decided that only the enterprise edition of W10 deserves to be able of updating the lockscreen image using GP.

This is a complete nosense, nobody is going to update just for this reason but the point is we have a problem if we need to update a lot of computers.

After surfing the internet I found a way to do it copying the image and adding some keys to the windows register.

Finally I set up this script in order to update several computers on one shot.



First the script copy the image to this folder c:\Windows\System32\oobe\INFO\BACKGROUNDS (You can choose a different one) and after that you add some key to the register using psexec.



Enjoy.


jueves, 24 de mayo de 2018

PSEXEC II, Software remote installation

Hello everyone,

I've done a litte improvement on the scripts for installing Adobe Acrobat, Chrome, Firefox, Flash player and Java.

On previous version of the script  you have to write down the user&pass you were using for installing (normally an admin account) on the script itselft on text plane. This isn't a very good idea at all.

On this new version you pass then  like paremeters when you run the script.



In addition to this, there is a control if the target machine is online. This can save an important amount of time if you have to update a 'BIG' number of machines.



Here you are the GitHub repository when you can donwload them. They are named like V2.


Enjoy.

Culex

miércoles, 16 de agosto de 2017

Instalación remota - PSEXEC II

Finalmente aquí están unos cuantos scripts que usan PSEXEC para realizar instalaciones desatendidas de forma remota y alguna otra cosilla.

Esta es la lista:

Installing Acrobat Reader
Installing Chrome
Installing Firefox
Installing FlashPlayer
Installing Java
Uninstalling software (UninstallString)
Running vbs script
Checking computer architecture,
Checking HF installed,
Checking computers online,
Checking IE version,

Este es el repositorio en github

Enjoy!

Culex.


jueves, 10 de agosto de 2017

Instalación remota Windows Update - PSEXEC

Como lo prometido es deuda, hoy voy a explicar como instalar actualizaciones de windows de forma remota.

El proceso es similar a la instalación de otros ejecutables pero vamos a tener que usar wusa.exe (windows-update-standalone-installer).

Previamente tenemos que copiar el ejecutable en el equipo que queremos parchear, se crea un directorio, se copia y finalmente se deja todo limpito, vamos como si no ha pasado nada :-)

Para evitar problemas con la copia usamos robocopy  (a mi nunca me ha fallado).

Aquí vemos un ejemplo para parchear el sistema contra Wannacry




Al igual que con el resto de ejecutables se generan dos archivos log para controlar la correcta instalación.

Adjunto el código (just in case)

Enjoy

Culex





lunes, 31 de julio de 2017

Instalación remota - PSEXEC

Estando un poco aburrido de tener mal parcheado los ordenadores de mi curro, y después de que la asignatura DyASO me haya abierto los ojos respecto al uso de script, me he puesto a trastear un poco y al final me he montado unos script para instalar de forma remota, desatendida y silenciosa unos cuantos programas que se están actualizando un día sí y otro también.

En concreto los siguientes; Adobe Reader, Chrome, Firefox, Flash Player y java.

Y ya puestos a la tarea también actualizaciones de Windows pero este va en otro post.

La utilidad de línea de comandos que hace posible todo esto es PSEXEC.EXE  

PSEXEC es parte de Sysinternal  y para hacer de una explicación larga una corta, podemos resumir diciendo que nos permite ejecutar procesos en un equipo remoto.

La sintaxis es (resumiendo mucho) la siguiente: psexec \\computer [arguments]

Y con más detalle: psexec [\\computer[,computer2[,...] | @file\]\]\[-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,...] cmd [arguments]

Y como el movimiento se demuestra andando vamos a explicar un poco el tema. Normalmente se usan siempre los mismos argumentos y solo tenemos que investigar un poco para ver cómo podemos instalar el programa que nos interesa desde la línea de comandos y sin interactuar con el usuario.

Por ejemplo, el siguiente comando instalaría flashPlayer en el pc1.

psexec \\pc1 -c -s -u dominio\username -p password \\path\flashplayer.exe -install -force

y explicando un poco más,

-c, copia el ejecutable desde la ruta indicada \\path\flashplayer.exe  a la máquina local
-s, ejecuta el proceso con privilegios system
-u y -p, nos permiten especificar el usuario y contraseña con la que hacemos log on en la máquina remota. (obviamente un administrador)
flashplayer.exe -install -force, argumentos necesarios para la instalación.





Esto no está mal pero si tienes que parchear 100 equipos pues al final es un poco rollo, así que por qué no lo mejoramos un poco y lo hacemos en los 100 del tirón J

La cosa es sencilla, un bucle que va leyendo los nombres de máquina de un fichero (equipos.txt) y punto. Luego para tener todo controlado usamos unos ficheros de log y  voila! … un script muy útil que nos va a ahorrar bastante tiempo a la hora de tener parcheado los equipos.

Usamos dos fichero de log, uno para ver que ha pasado de un vistazo (log.txt) y poder actualizar nuestro dashboard de forma rápida y otro con el detalle por si tenemos que hacer debugging (detalle_%MYDATE: =%.log).

Aquí hay un ejemplo del script para Acrobat,



Y un ejemplo de ejecución con Java.



Estoy seguro que debe haber muchísimaaaaaaas formas distintas de hacerlo, mejores y más rápidas pero esta tampoco funciona mal.

Una cosita que es recomendable es abrir la consola que vamos a usar para lanzar el script con un usuario con permisos admin en las maquinas objetivo

Lo bueno es que podemos usar PSEXEC para instalar casi de todo, ejecutar comandos remotos etc etc….

Adjunto el código del ejemplo de Acrobat

Enjoy J

Culex.