====== Anotaciones técnicas sobre Windows ======
===== Trucos varios horribles y oscuros =====
//Nota: los procedimientos y consejos indicados aquí pueden producir inestabilidad en el sistema, destrucción del sistema operativo, pérdida de datos, incluso caída de cabello y problemas psicológicos del operador, así que utilizar con mucho cuidado//
==== GodMode ====
Para crear un acceso a **todas** las aplicaciones y utilitarios de configuración, crear una nueva carpeta en el escritorio y llamarla **exactamente**: GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
==== Desactivar hibernación ====
To turn off or disable hibernation, type the following command at the prompt:
En una consola como administrador, ejecutar el siguiente comando:
powercfg –h off
Esto desactivará permanentemente la hibernación, y eliminará el archivo c:\hiberfil.sys liberando en disco aproximadamente la misma cantidad de espacio que RAM existente en el sistema.
==== Activar administrador en Windows 7 y superiores ====
En un cmd con permisos elevados, ejecutar:
net user administrator /active:yes
Si las cosas se complican, se deberá seguir un procedimiento utilizando **regedit**, según se describe en:
http://www.eightforums.com/tutorials/9650-built-administrator-account-enable-disable-windows-8-a.html
==== Reparar el EFI Bootloader en Windows 8 ====
Parece que es común que el archivo BCD utilizado en el inicio de Windows, se dañe y por lo tanto la máquina ya no arranque. El procedimiento para repararlo es el siguiente.
- Ingresar en una consola, iniciando desde el CD de instalación
- Iniciar diskpart para asignar una letra de unidad. Dentro del shell de diskpart, ejecutar:
sel disk 0
list vol
# Verificar que la partición EFI sea FAT32 y asignarle una letra de unidad
sel vol 3
assign letter=v:
# Salir de diskpart con exit
- Reparar el registro de arranque:
cd /d v:\EFI\Microsoft\Boot\
bootrec /fixboot
- Reconstruir el BCD store:
ren BCD BCD.old
bcdboot c:\Windows /l en-us /s v: /f ALL
==== Permitir apagado por ACPI aunque haya usuarios conectados ====
- Iniciar el Group Policy Object Editor (gpedit.msc)
- Cambiar la siguiente clave a "Habilitado": Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Shutdown: Allow system to be shut down without having to log on
- Iniciar el Registry Editor (regedit.exe) y cambiar la siguiente clave al valor "00000001": HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\"ShutdownWarningDialogTimeout"=dword:00000001
==== Windows Server 2008: desactivar popup de error ====
Para desactivar Error Reporting in Windows 2008 Server, ejecutar el siguiente comando:
serverWerOptin /disable
Además, se debe poner el siguiente valor que por defecto es 0, en 2, para configurar todos los mensajes en "invisible":
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Windows\ErrorMode.
Finalmente, el siguiente valor debe estar en 1:
HKEY_CURRENT_USER\Software\ Microsoft\Windows\Windows Error Reporting\DontShowUI
Obviamente, como es habitual en Windows, se debe luego reiniciar el sistema operativo.
==== Port forwarding: reenvío de puertos hacia una IP externa ====
Los Windows Server desde el 2008 en adelante tienen una interfaz llamada **netsh** para realizar diversas modificaciones en los paquetes IP. Por ejemplo, para aceptar conexiones entrantes en un puerto y reenviarlas a otra dirección IP en otro puerto:
netsh interface portproxy add v4tov4 listenport=1111 listenaddress=191.57.233.93 connectport=61110 connectaddress=190.181.111.61
Para borrar esa regla:
netsh interface portproxy delete v4tov4 listenport=1111 listenaddress=191.57.233.93
=== Bibliografía ===
* https://technet.microsoft.com/en-us/library/cc731068%28v=ws.10%29.aspx
* http://www.billmorefield.com/index.php/2014/03/31/port-forwarding-in-windows/
==== Denegar acceso por RDP a un usuario o grupo ====
To deny a user or a group logon via RDP, explicitly set the "Deny logon through Remote Desktop Services" privilege. To do this access a group policy editor (either local to the server or from a OU) and set this privilege:
Start | Run | Gpedit.msc if editing the local policy or chose the appropriate policy and edit it.
Computer Configuration | Windows Settings | Security Settings | Local Policies | User Rights Assignment.
Find and double click "Deny logon through Remote Desktop Services"
Add the user and / or the group that you would like to dny access.
After that, either run gpupdate /force /target:computer or wait for the next policy refresh for this setting to take effect.
===== Carpetas %windir%\Installer y %windir%\winsxs =====
La carpeta **Installer** guarda parches y actualizaciones de todo tipo correspondientes a Windows Installer, y **no** se puede borrar, ni su contenido.
La carpeta **winsxs** es un agujero negro donde Microsoft tira toda clase de cosas que no sabe dónde meter, además de poner enlaces duros a archivos en otras partes fuera de esa carpeta. Se llama técnicamente Windows Component Store, y **no** se debe eliminar, ni su contenido, salvo siguiendo el procedimiento adecuado. Generalmente crece hasta niveles desproporcionados, pero para conocer su tamaño real debe seguirse un procedimiento determinado.
* http://blogs.technet.com/b/joscon/archive/2012/01/18/can-you-safely-delete-files-in-the-windir-installer-directory.aspx
* Manage the Component Store: http://technet.microsoft.com/en-us/library/dn251569.aspx
* Determine de actual size of winsxs folder: http://technet.microsoft.com/en-us/library/dn251566.aspx
===== Comandos útiles =====
- **cls**: limpia la terminal y el buffer
- **driverquery**: muestra los drivers cargados en el sistema. /V para verlos en modo verboso
- **inuse**: reemplazar archivos que están siendo usados por el sistema
- **netstat**: muestra conexiones. /nao para ver todas las conexiones
- **openfiles**: muestra archivos abiertos. Hay que activarlo primero y reiniciar el sistema operativo, con /local on. Luego: /query /v muestra un listado verboso de los archivos abiertos en el sistema. Para desactivar esta característica (supongo que mejora la performance): /local off
- **reg**: manipulación básica de la registry
- **sc**: manipulación de servicios. query muestra los servicios actuales. start/stop inicia/detiene servicios
- **systeminfo**: muestra información del sistema
- **taskkill**: termina procesos. /IM termina el proceso
- **tasklist**: muestra los procesos. /M muestra las tareas con sus archivos .exe y .dll. Se puede especificar un módulo en particular. /V muestra las tareas en modo verboso
- **wmic**: Windows Management Instrumentation Command-line (WMIC). Acceso a la poderosísima Windows Management Instrumentation API de Windows XP/2003/Vista. Es un muy complejo comando con enorme cantidad de opciones. Algunas son: **process** (muestra los procesos y toda la info de los mismos), **process list brief** (lista breve de procesos), **startup list full** (muestra los procesos a iniciar en el arranque), /every:5 (muestra la info cada 5 segundos). Para ver si un proceso aparece, se puede usar el comando **find** (similar al grep) enviándole la salida del wmic cada un segundo: **wmic process list brief /every:1 | find "cmd.exe"**. La **ayuda** se invoca con **/?**. Más info en http://technet.microsoft.com/en-us/library/bb742610.aspx
- **forfiles**: ejecutar comandos sobre los archivos filtrados (es similar al find de Linux) forfiles -p "C:\what\ever" -s -m *.* -d -c "cmd /c del @path"
=== Borrar archivos con nombres muy largos ===
del "\\?\c:\
=== Bloquear un escritorio Windows (lock computer) ===
rundll32.exe user32.dll, LockWorkStation
=== Cerrar conexiones a un servidor ===
net use \\server\share /d
net use \\server\ipc$ /d
=== Ver usuarios conectados y sesiones ===
query session
query process
query user
=== Detener e iniciar el servicio de spooler ===
net stop spooler
net start spooler
=== Agregar usuarios y hacerlos administrador ===
net user /add [username] [password]
Agregarlo al grupo administradores:
net localgroup administrators [username] /add
Configurar que nunca expire la contraseña:
net user [username] /expires:never
Este método en Windows 10 no funciona, y se debe configurar la no expiración de contraseña con:
wmic useraccount where "Name='usuario'" set PasswordExpires=false
Impedir que el usuario pueda cambiar la contraseña:
net user [username] /Passwordchg:no
Cambiar la contraseña de un usuario:
net user [username] *
==== Bibliografía ====
* http://www.vista123.net/content/five-command-line-tools-detect-windows-hacks
* http://www.docstoc.com/docs/3446485/Guide-to-Microsoft-Windows-Server-2003-Command-Line-Administration
* [[https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc771865(v=ws.11)|Información sobre comando net]]
===== Control Panel: comandos =====
Control panel tool Command
-----------------------------------------------------------------
Accessibility Options control access.cpl
Add New Hardware control sysdm.cpl add new hardware
Add/Remove Programs control appwiz.cpl
Date/Time Properties control timedate.cpl
Display Properties control desk.cpl
FindFast control findfast.cpl
Fonts Folder control fonts
Internet Properties control inetcpl.cpl
Joystick Properties control joy.cpl
Keyboard Properties control main.cpl keyboard
Microsoft Exchange control mlcfg32.cpl
(or Windows Messaging)
Microsoft Mail Post Office control wgpocpl.cpl
Modem Properties control modem.cpl
Mouse Properties control main.cpl
Multimedia Properties control mmsys.cpl
Network Properties control netcpl.cpl
NOTE: In Windows NT 4.0, Network
properties is Ncpa.cpl, not Netcpl.cpl
Password Properties control password.cpl
PC Card control main.cpl pc card (PCMCIA)
Power Management (Windows 95) control main.cpl power
Power Management (Windows 98) control powercfg.cpl
Printers Folder control printers
Regional Settings control intl.cpl
Scanners and Cameras control sticpl.cpl
Sound Properties control mmsys.cpl sounds
System Properties control sysdm.cpl
===== Cómo hacer un pendrive de instalación de Windows =====
//Nota//: este procedimiento lo he probado con éxito con el DVD de instalación de Windows 7 Professional 64 bit, y debería funcionar para todos los Windows modernos
- Formatear un pendrive con NTFS haciendo iniciable la partición y poniéndole una etiqueta que luego se usará para GRUB, por ejemplo **win7usb**:
mkfs.ntfs -L -f /dev/sdX1
- Montar el DVD de instalación de Windows, el pendrive, y copiar todos los archivos dentro del pendrive, cuidando que el directorio "boot" quede en minúsculas
- Instalar GRUB en el pendrive:
grub-install --boot-directory="/mnt//boot" /dev/sdX
- Crear un archivo grub.cfg dentro del directorio boot del pendrive, con el siguiente contenido, cuidando de cambiar por lo que se ingresó en el paso 1 como etiqueta:
default=1
timeout=15
color_normal=light-cyan/dark-gray
menu_color_normal=black/light-cyan
menu_color_highlight=white/black
menuentry "Iniciar instalacion de Windows" {
insmod ntfs
insmod search_label
search --no-floppy --set=root --label --hint hd0,msdos1
ntldr /bootmgr
}
menuentry "Iniciar desde el primer disco rigido" {
insmod ntfs
insmod chain
insmod part_msdos
insmod part_gpt
set root=(hd1)
chainloader +1
boot
}
==== Bibliografía ====
* http://onetransistor.blogspot.com.ar/2014/09/make-bootable-windows-usb-from-ubuntu.html
===== Reparar con Hiren's CD un Windows con bootmgr perdido =====
- Once you open CMD, you have to enter **diskpart** into the window. Then, type **list disk** as well.
- You will see all the hard disk drives on CMD screen there. Enter the name of the disk (taken from the list) which you installed Windows into. (for example, **select disk 2**)
- Now, you should list the partitions. Use **list partition** command for that. Don’t forget to choose the correct partition on which you installed the OS. (for example, type select partition 2)
- In order to make the partition active, you have to enter active into the CMD window.
- I hope you know the drive letter containing Windows installation. If you don’t know, follow the commands **diskpart**, **list volume** and exit. Soon after you enter the first command, you can get the list of drives.
- If your disk letter is C, type C: into the window. Then use the following commands
Bootrec /fixmbr
Bootrec /fixboot
Bootrec /rebuildbcd
Chkdsk /f
- Restart your computer to see the changes in action
===== Reparar Windows 10 que no termina de iniciar =====
En modo seguro, en una consola:
sfc /scannow
Luego reiniciar. Si sigue sin andar, probar:
Dism /Online /Cleanup-Image /RestoreHealth
===== SQL Server: crear usuario =====
This article will show you how to create and configure a user in MSSQL.
- Open SQL Server Management Studio (SSMS).
- Connect to SQL Server using your log in information.
- In the left-hand panel, expand Security > Logins.
- Right click Logins and select New Login from the drop-down menu.
- Assign a Login name and select the authentication method and default database/language. Note: Only Domains can use Windows Authentication.
- If you are using SQL authentication you will need to enter an initial password and choose the enforcement options for password policy and expiration as well as whether or not the user will need to change their password when they log in.
- In the left-hand panel, click Server Roles to assign any server roles you want this user to have, including bulkadmin, dbcreator, public, and so on.
- In the left-hand panel, click Securables and then click Search.
- The Add Objects dialog box displays, where you can choose specific objects, objects of a certain type or the server itself. Select one and click OK.
- On the Securables page, select Grant, With Grant or Deny as necessary for any/all of the objects in the explicit box.
- Grant will grant access to the securable, with grant will allow the user to grant access to the securable and deny will expressly deny permission to the securable no matter what roles or permissions the user may have.
- In the left-hand panel, click Status to grant or deny permission to the Database Engine, enable or disable the login and to unlock the account should it get locked out.
When you have finished modifying the settings, click OK to create the user and exit the new login creation window.
===== Error de "Corrección de oráculo de cifrado de CredSSP" al conectarse por escritorio remoto (RDP) =====
El escenario más común es que el cliente tiene instalada la actualización CredSSP y la configuración de directiva de Corrección de oráculo de cifrado no permite una conexión RDP no segura con un servidor que no tenga instalada la actualización CredSSP.
Para resolver este problema, siga los siguientes pasos:
En el cliente que tiene instalada la actualización CredSSP, ejecute gpedit.msc y, a continuación, busque Configuración del equipo > Plantillas administrativas > Sistema > Delegación de credenciales en el panel de navegación.
Cambie la directiva de Corrección de oráculo de cifrado a Habilitado y, a continuación, cambie el Nivel de protección a Vulnerable.
Si no puede usar gpedit.msc, puede realizar el mismo cambio con el registro de la siguiente manera:
Abra una ventana del símbolo del sistema como administrador.
Ejecute el siguiente comando para agregar un valor de registro:
REG ADD HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters\ /v AllowEncryptionOracle /t REG_DWORD /d 2
===== Shortcut commands to open Management Console Snap-ins =====
^ Admin Snap-in ^ Command ^ Category ^
| Quality of Service Control Management | ACSsnap.msc | Network |
| ADSI Edit | ADSIedit.msc | AD Configuration |
| Authorization manager | AZman.msc | Security |
| Certificates Management - Local machine | Certlm.msc | Security |
| Certificates Management - Current user | Certmgr.msc | Security |
| Certification Authority Management | Certsrv.msc | Security |
| Certificate Templates | Certtmpl.msc | Security |
| Failover cluster Manager | Cluadmin.exe | Disc, File |
| Component Services | Comexp.msc | |
| Computer Management | Compmgmt.msc | |
| Device Manager | Devmgmt.msc | Hardware
| Notifications/Start menu/policy | DevModeRunAsUserConfig.msc | |
| Disk Defragmenter | Defrag.exe (formerly Dfrg.msc) | Disc, File |
| Distributed File Service Mgmt | DFSmgmt.msc | Disc, File |
| Disk Manager | DiskMgmt.msc | Disc, File |
| DNS Manager | DNSmgmt.msc | Network |
| AD Domains and Trusts | Domain.msc | AD Configuration |
| AD Users and Computers | DSA.msc | Security |
| AD Sites and Services | DSsite.msc | AD Configuration |
| Embedded Lockdown Manager | EmbeddedLockdown.msc | Security |
| Event Viewer | Eventvwr.msc | |
| Shared Folders open files | FSmgmt.msc | Disc, File |
| File Server Resource manager | FSRM.msc | Disc, File |
| Local Group Policy Editor | GPedit.msc | Policy |
| Group Policy Management | GPmc.msc | Policy |
| Group Policy Management Editor | GPme.msc | Policy |
| Group Policy Starter GPO Editor | GPTedit.msc | Policy |
| Local Users and Groups Manager | LUsrMgr.msc | Security |
| Terminal Services RDP | MSTSC | Remote Access |
| Terminal Services RDP to Console | MSTSC /v:[server] /console | Remote Access |
| NAP client configuration | NapCLCfg | Network |
| Performance Monitor | PerfMon.msc | |
| Print Management | PrintManagement.msc | Print |
| Resultant Set of Policy | RSOP.msc | Policy |
| Local Security Settings Manager | SecPol.msc | Policy |
| Server Roles, Features | ServerManager.msc | |
| Services Management | Services.msc | |
| SQL Server configuration Manager | SQLServerManager11.msc | |
| Storage Mgmt | StorageMgmt.msc | Disc, File |
| Telephony Management | TAPImgmt.msc | Phone/Modem |
| Task Scheduler | TaskSchd.msc | |
| Trusted Platform Module | TPM.msc | Security |
| Terminal Server Manager | TSadmin.exe | Remote Access |
| Remote Desktop | TSmmc.msc | Remote Access |
| Windows Mangement Instrumentation | WmiMgmt.msc | |
| Windows Server Backup (Local+Remote) | WBadmin.msc | Disc, File |
| Windows Local Backup | WLBadmin.msc | Disc, File |
| Windows Firewall | WF.msc | Remote Access |