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

viernes, 27 de julio de 2012

[Solucionado] Desbloquear todos los usuarios bloqueados del servidor de dominio (Active Directory)

Si trabajas en una organización grande es común que un lunes en la mañana te llamen los usuarios indicando que bloquearon la contraseña para ingresar a su PC, por lo que hay que proceder a desbloquear el usuario y en menos de 5 minutos llama otro usuario indicando lo mismo. En otras ocasiones puede tratarse de una pesadilla de un virus como el Conficker que masivamente bloquea usuarios usuarios del dominio y queremos desbloquearlos a la brevedad mientras se investiga el origen del problema.

Existe un Visual Basic Script creado por Mohammed Alyafae (MCSE 2003 MCSA 2003 Messaging MCP CCNA MCTS 2008 Active Directory Configuration MCTS 2008 Network Infrastructure Configuration MCTS 2008 Application Infrastructure Configuration ITIL Network +) de Yemén, el cual permite desbloquear masivamente usuarios del dominio y es perfectamente compatible con: Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows 7, Windows Vista, Windows XP.

¿Cómo desbloquear usuarios masivamente del Directorio Activo (Active Directory)?
1. Abrir el Block de Notas (también llamado notepad).
2. Copie y pegue el siguiente script dentro del Block de Notas:
'==========================================================
' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 2009 
' NAME: Unlock User accounts 
' AUTHOR: Mohammed Alyafae ,  
' DATE  : 9/22/2011 
' COMMENT: this script is to search for locked accounts and unlock them  
'==========================================================
Option Explicit 
On Error Resume Next 
Dim oQuery 
Dim objConnection 
Dim objCommand 
Dim objRecordSet 
Dim objUser 
Dim objRoot 
Dim NamingContext 
 
set objRoot = getobject("LDAP://RootDSE") 
NamingContext = objRoot.get("defaultNamingContext") 
oQuery = ";" & "(objectClass=user);adspath;subtree" 
 
'=======all the following lines are the same for every script==================== 
Set objConnection = CreateObject("ADODB.Connection") 
Set objCommand = CreateObject("ADODB.Command") 
objConnection.Open "Provider=ADsDSOObject;" 
objCommand.ActiveConnection = objConnection 
objCommand.CommandText = oQuery 
Set objRecordSet = objCommand.Execute 
'================================= 
 
While Not objRecordSet.EOF 
 
Set objUser=GetObject(objRecordSet(0)) 
 
If objUser.Isaccountlocked=True Then 
    WScript.Echo objRecordSet(0) 
    objUser.IsAccountLocked=False 
    objUser.SetInfo 
End If 
objRecordSet.MoveNext 
 
Wend 
 
objConnection.Close 
Set objUser=Nothing 

3. Guarde el archivo como Unlockaccounts.vbs
4. Ejecútelo con usuario que tenga los privilegios adecuados para desbloquear usuarios en el Dominio o usarlo desde el servidor de Active Directory de su empresa.

Cada vez que desbloquea un usuario aparecerá un mensaje indicando que usuario ha desbloqueado, si usted lo va a utilizar con el programador de tareas de Windows para que la tarea desbloquee los usuarios cada cierto tiempo, debe eliminar la línea que indica: WScript.Echo objRecordSet(0).

El script puede descargarselo directamente de la página de Microsoft desde aquí: http://gallery.technet.microsoft.com/scriptcenter/Unlock-User-accounts-48494fba/file/44315/1/Unlockaccounts.vbs

Existe una variante creada por el mismo autor, donde desbloquea el usuario, crea un archivo en C:\unLockedUsers.Log con el listado de usuarios desbloqueados, asigna la contraseña P@ssword y que obliga a cambiarla en el próximo inicio de sesión. NO UTILIZAR ESTE SCRIPT CON UNA TAREA PROGRAMADA: no se recomienda utilizar este script con una tarea programada, dado que un hacker o cualquier empleado puede ingresar al computador de alguien fácilmente si sabe que este script lo utilizan con una tarea programada.
Option Explicit
On Error Resume Next
Dim oQuery
Dim objConnection
Dim objCommand
Dim objRecordSet
Dim objUser
Dim objRoot
Dim objLogfile
Dim objFSO
Dim NamingContext
Dim strPassword


Const LOGFILE = "C:\unLockedUsers.Log"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogfile = objFSO.CreateTextFile(LOGFILE,True)

strPassword="P@ssword"

set objRoot = getobject("LDAP://RootDSE")
NamingContext = objRoot.get("defaultNamingContext")
oQuery = ";" & "(objectClass=user);adspath;subtree"

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Open "Provider=ADsDSOObject;"
objCommand.ActiveConnection = objConnection
objCommand.CommandText = oQuery
Set objRecordSet = objCommand.Execute

While Not objRecordSet.EOF

Set objUser=GetObject(objRecordSet(0))

If objUser.Isaccountlocked=True Then
'WScript.Echo objRecordSet(0)
objUser.IsAccountLocked=False
objUser.SetPassword strPassword
objUser.Put "PwdLastSet", 0 
objUser.SetInfo
UpdateLogFile  objRecordSet(0)
End If
objRecordSet.MoveNext

Wend

objConnection.Close
Set objUser=Nothing

Sub UpdateLogFile(szMsg)
objLogfile.WriteLine  "Unclocked account   " & szMsg
objLogfile.WriteLine
End Sub 

viernes, 9 de diciembre de 2011

[Resuelto] Desactivar Actualizaciones de Windows Server 2008 Core. Error: "Parameter 1 : Parameter type mismatch expected DWord."

Una novedad en Windows Server 2008 es el modo Core, lo que hace que cuando te conectas a este servidor no existe una interfaz gráfica por lo que debemos ser muy buenos en ms-dos y demás comandos por consola.

http://yolosolucionoasi.blogspot.com/

Para poder utilizar los siguientes comandos que permiten desactivar o activar las actualizaciones de Windows Server 2008 Core se debe estar en el directorio: c:\windows\system32 donde se encuentra el script scregedit.wsf


Comando para ver la configuración actual de las Actualizaciones Automáticas:
c:\windows\system32\scregedit.wsf /AU /v


Para activar las Actualizaciones Automáticas ejecute en la consola (command prompt):

c:\windows\system32\scregedit.wsf /AU 4
http://yolosolucionoasi.blogspot.com/
Para desactivar las Actualizaciones Automáticas ejecute en la consola (command prompt):

c:\windows\system32\scregedit.wsf /AU 1

http://www.ingenuatur.com

Nota:
En muchos foros indican que se debe ejecutar el siguiente comando:
Cscript c:\windows\system32\ scregedit.wsf /au /4


Por lo que aparece el siguiente error:
“Parameter 1 : Parameter type mismatch expected DWord.”

http://www.ingenuatur.com

Antes del 4 o 1 va solamente un espacio y no un slash /

Originalmente esta solución la encontré (En Inglés):
http://yolosolucionoasi.blogspot.com/




miércoles, 30 de noviembre de 2011

[Resuelto] Evitar apagar un servidor Windows Server 2008 mediante Escritorio Remoto

Algo normal en usuarios que aceden a un servidor Windows 2008 Server es que por error le den al botón de Apagar. Para evitar esto se deben seguir los siguientes pasos para deshabilitar los botones, por lo que la única forma de apagar el servidor sería mediante comandos de DOS.

http://yolosolucionoasi.blogspot.com/

Paso 1: Ingresar en Inicio (Start) y en la casilla de búsqueda escribir gpedit.msc y presionar enter.www.ingenuatur.com
http://yolosolucionoasi.blogspot.com/


Paso 2: Ingresar en: Configuración de Usuario (User Configuration) / Plantillas Administrativas (Administrative Templates) / Inicio y barra de tareas (Start Menu and Taskbar). Hacer doble clic sobre: Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate commands.
http://yolosolucionoasi.blogspot.com/


Paso 3: Hacer clic en Habilitado (Enabled).www.ingenuatur.com
http://yolosolucionoasi.blogspot.com/

Inmediatamente al realizar el cambio se ocultará el botón de apagar el equipo así mismo en las opciones desaparecerán los botones de Apagar, Reiniciar, Sleep e Hibernar.www.ingenuatur.com

http://yolosolucionoasi.blogspot.com/

Explicación en Inglés de Habilitar o Deshabilitar "Remove and prevent access to the Shut Down, Restart, Sleep, and Hibernate commands":

This policy setting prevents users from performing the following commands from the Start menu or Windows Security screen: Shut Down, Restart, Sleep, and Hibernate. This policy setting does not prevent users from running Windows-based programs that perform these functions.
If you enable this policy setting, the Power button and the Shut Down, Restart, Sleep, and Hibernate commands are removed from the Start menu. The Power button is also removed from the Windows Security screen, which appears when you press CTRL+ALT+DELETE. www.ingenuatur.com
If you disable or do not configure this policy setting, the Power button and the Shut Down, Restart, Sleep, and Hibernate commands are available on the Start menu. The Power button on the Windows Security screen is also available.
Note: Third-party programs certified as compatible with Microsoft Windows Vista, Windows XP SP2, Windows XP SP1, Windows XP, or Windows 2000 Professional are required to support this policy setting.

http://yolosolucionoasi.blogspot.com/
www.ingenuatur.com

martes, 29 de noviembre de 2011

[Solucionado] Crear un Trabajo de Respaldo (backup Job) en SQL Server y guarde en una carpeta con el nombre de la fecha del respaldo

Algo muy importante en un servidor es realizar respaldos automáticos, a continuación un ejemplo paso a paso para: realizar una tarea programada que realice un trabajo a una hora determinada, cree una carpeta con la fecha con formato YYYYMMDD (Y=Año/Year , M=Mes/Month , D=Día/Day) y dentro de la misma guardar el respaldo de la base de datos.


1. Ingresar en Microsoft SQL Server Management Studio.

2. En el explorador de objetos (Object Explorer), hacer clic con el botón derecho sobre Trabajo (Job), clic en Nuevo Trabajo (New Job...).

3. Escriba el nombre que tendrá el trabajo en el campo Nombre (Name), luego seleccione el Propietario (Owner).

4. Haga clic en la página de Pasos (Steps) y luego clic en el botón Nuevo...(New).

5. Escriba el nombre del paso (Step Name), todos los demás campos se pueden dejar igual, en el comando debe escribir los siguientes comandos para poder crear una carpeta utilizando comandos TSQL.
declare @MD varchar(100), @wk_no varchar(100)
set @wk_no = 'C:\Respaldos\' + Convert(VarChar(4),DatePart(Year,GetDate()))+Right('0'+Convert(VarChar(2),DatePart(Month,GetDate())),2)+Right('0'+Convert(VarChar(2),DatePart(Day,GetDate( ))),2)
SET @MD = ' mkdir ' + @wk_no
EXEC xp_cmdshell @MD, no_output


6. Hacer clic en Aceptar (Ok), yse debe hacer clic en el botón de Nueva Consulta, para ejecutar un comando para permitir utilizar el xp_cmdshell.

7. Se debe ejecutar la siguiente sentencia SQL para permitir realizar cambios, de lo contrario aparecería un error.
EXEC sp_configure 'allow updates', 0;
RECONFIGURE;
El error que aparecería si omitimos este paso sería:
Msg 5808, Level 16, State 1, Line 1
Ad hoc update to system catalogs is not supported.

8. Escribir EXEC sp_configure 'xp_cmdshell', 1 y luego clic en el botón de Ejecutar. 
En el cuadro de mensajes aparecerá: Configuration option 'xp_cmdshell' changed from 0 to 1. Run the RECONFIGURE statement to install.
Si hemos omitido el paso anterior a este pudiera aparecer el siguiente mensaje:

Msg 5808, Level 16, State 1, Line 1
Ad hoc update to system catalogs is not supported.


9. Una vez realizado lo indicado anteriormente, se procede a crear un nuevo paso (Step). Para ello dar doble click sobre el nombre del Trabajo (Job), luego clic en Pasos (Steps) y clic en el botón Nuevo (New)

10. Escriba el siguiente comando para realizar el respaldo de una base de datos dentro de la carpeta con la fecha del día que se está ejecutando.


Declare @Ruta VarChar(100)
SET @Ruta = 'C:\Respaldos\'  + Convert(VarChar(4),DatePart(Year,GetDate()))+Right('0'+Convert(VarChar(2),DatePart(Month,GetDate())),2)+Right('0'+Convert(VarChar(2),DatePart(Day,GetDate( ))),2) + '\'
Set @Ruta=@Ruta+'prueba_'+Convert(VarChar(4),DatePart(Year,GetDate()))+Right('0'+Convert(VarChar(2),DatePart(Month,GetDate())),2)+Right('0'+Convert(VarChar(2),DatePart(Day,GetDate( ))),2)

BACKUP DATABASE nombrebasededatosprueba TO DISK = @Ruta WITH INIT


11. Clic en Aceptar (Ok).


Si al tratar de ejecutar el comando EXEC sp_configure 'xp_cmdshell', 1 llega a aparecer el siguiente error:
SQL 2005 Msg 15123, Level 16, State 1, Procedure sp_configure, Line 51  The configuration option 'xp_cmdshell' does not exist, or it may be an advanced option.

Debes ejecutar la siguiente consulta en SQL:
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO



NOTA:
Para ahorrar espacio cuando se hacen los respaldos se puede activar la compresión (sólo aplica a partir de SQL Sver 2008 en adelante):

sp_configure 'backup compression',1
go
reconfigure;
go


[Solucionado] Crear carpetas utilizando SQL Server (TSQL) comando xp_cmdshell

En SQL Server (cualquier versión), es posible programas trabajos (Jobs) que se ejecuten a una hora determinada, por ejemplo si queremos hacer algún respaldo de una base de datos. Si queremos ser muy organizados podemos crear una carpeta con la fecha y guardar dentro todos los respaldos.

Si tratamos de hacer un respaldo dentro de una carpeta que no existe aparecerá el siguiente error en SQL:

Date: 11/28/2011 11:00:00 PM
Log: Job History (prueba)
Step ID: 1
Server: NOMBRE_SERVIDOR\INSTANCIASQL
Job Name: prueba_yolosolucionoasi.blogspot.com
Step Name: prueba
Duration: 00:00:00
Sql Severity: 16
Sql Message ID: 3013
Operator Emailed
Retries Attempted: 0
Message: Executed as user: NT AUTHORITY\SYSTEM. Cannot open backup device 'C:\Respaldos\prueba\basededatos_20111128'. Operating system error 3(The system cannot find the path specified.). [SQLSTATE 42000] (Error 3201)  BACKUP DATABASE is terminating abnormally. [SQLSTATE 42000] (Error 3013).  The step failed.

Para solucionar esto debemos crear un Trabajo (Job), ejecutando un comando de DOS para crear la carpeta con el nombre deseado, por ejemplo:


declare @MD varchar(100), @wk_no varchar(100)
set @wk_no = 'C:\Respaldos\' + Convert(VarChar(4),DatePart(Year,GetDate()))+Right('0'+Convert(VarChar(2),DatePart(Month,GetDate())),2)+Right('0'+Convert(VarChar(2),DatePart(Day,GetDate( ))),2)
SET @MD = ' mkdir ' + @wk_no
EXEC xp_cmdshell @MD, no_output


Esto crearía una carpeta con la fecha de la siguiente forma: c:\respaldos\yyyymmdd

Luego de crear el trabajo antes de comenzar a ejecutarlo se debe autorizar al servidor para que pueda ejecutar comandos 'xp_cmdshell', de lo contrario aparecería el siguiente error:
Date: 11/29/2011 3:14:19 PM
Log:  Job History (Respaldos)
Step ID: 1
Server: NOMBRE_SERVIDOR\INSTANCIASQL
Job Name: Respaldos
Step Name: Crear carpeta para respaldo
Duration: 00:00:00
Sql Severity: 16
Sql Message ID: 15281
Operator Emailed
Retries Attempted: 0
Message: Executed as user: NT AUTHORITY\SYSTEM. SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online. [SQLSTATE 42000] (Error 15281).  The step failed.

Para permitir ejecutar xp_shell:
EXEC sp_configure 'xp_cmdshell', 1



Más información:
[Solucionado] Crear un Trabajo de Respaldo (backup Job) en SQL Server y guarde en una carpeta con el nombre de la fecha del respaldo
http://yolosolucionoasi.blogspot.com/2011/11/solucionado-crear-un-trabajo-de.html