More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Pcamposs BlogsPhotosProfileFriendsMore Tools Explore the Spaces community

Pcamposs Blogs

posteando mis ideas para no olvidarlas :)
¡Gracias por tu visita!
Updated 2/28/2008
Updated 6/24/2008
Updated 6/14/2008
View space
Brede
View space
Freddy

June 27

Authenticar Usuarios contra Active Directory + ASP.net + C#


Hola a todos
Como casi todos saben, active directory es el centro de authenticacion de las empresas, asiq todas las aplicaciones que contruyan los desarrolladores, las deberian authenticar en Active Directory y no en bases de datos con cuentas de usuarios, que muchas veces no son las mismas que los usuarios usan para entrar en sus computadores.

En el siguiente ejemplo mostrare una sencilla plicacion en ASP.net que se autentica con mi dominio Test.com

Tendremos 2 Textboxs.. uno para el nombre de usuarios “TextBox1” y otro para el password “TextBox2”

using System.DirectoryServices;
string Server = "Server2003";
string ruta = "LDAP://"+Server+"/DC=test,DC=com";
DirectoryEntry raiz = new DirectoryEntry();
raiz.Path = ruta;
raiz.AuthenticationType = AuthenticationTypes.Secure;
raiz.Username = TextBox1.Text;
raiz.Password = TextBox2.Text;

string filtro = "sAMAccountName";
string strSearch = filtro + "=" + TextBox1.Text;
DirectorySearcher dsSystem = new DirectorySearcher(raiz, strSearch);
dsSystem.SearchScope = SearchScope.Subtree;
try
{
    SearchResult srSystem = dsSystem.FindOne();
    Response.Write("Autenticacion Correcta");
}
catch (Exception error)
{
    Response.Write(error.Message);
}
June 24

Creando RAID 1 con Diskpart

En este articulo veremos como crear un Raid-1 por software con la utilidad de linea de comando DiskPart

Primero que todo veremos el estado actual de nuestros discos duros (3)

 image
Tenemos el Disco 0 Basico donde tenemos instalado el sistema operativo.
Tenemos el Disco 1 y 2 en estado basico y sin asignar

Estamos a la linea de comando cmd y ejecutamos el comando diskpart

deberia quedar algo asi:

DISKPART>_

Ejecutamos el comando list disk para ver el estado de nuestros discos

DISKPART>list disk

Disco ###   Estado      Tamaño   Libre    Din  Gpt
---------   ----------  -------  -------  ---  ---
Disco 0     En pantall    64 GB  8033 KB
Disco 1     En pantall    16 GB    16 GB
Disco 2     En pantall    16 GB    16 GB

Ejecutamos el comando select disk 1 para seleccionar el disco con el cual trabajaremos

DISKPART>select disk 1

  Disco ###   Estado      Tamaño   Libre    Din  Gpt
  ---------   ----------  -------  -------  ---  ---
  Disco 0     En pantall    64 GB  8033 KB
* Disco 1     En pantall    16 GB    16 GB
  Disco 2     En pantall    16 GB    16 GB

Ahora ejecutamos el comando convert dynamic para convertirlo a dinamico y asi poder trabajar con volumenes en ves de particiones y poder crear el raid

DISKPART>convert dynamic
En el administrador de discos deberiamos ver asi
image
Ahora creamos un volumen simple con todo el espacio del volumen

DISKPART>create volume simple
En el administrador de discos deberiamos ver asi

image

Ahora hacemos casi lo mismo pero con el disco 2

DISKPART>select disk 2
DISKPART>convert dynamic

Ahora nos cambiamos al disco 1 para comenzar la creacion del Raid

DISKPART>select disk 1
DISKPART>list volume 
  Volumen ### Ltr  Etiqueta     Fs     Tipo        Tamaño   Estado     Info
  ----------- ---  -----------  -----  ----------  -------  ---------  --------
    Vol. 0     D   KRMSVOL_ES_  UDF    DVD-ROM     1891 MB  Correcto
    Vol. 1     C                NTFS   Partición     64 GB  Correcto   Sistema
  * Vol. 2                      RAW    Simple        16 GB  Correcto

Seleccionamos el volumen en el cual queremos trabajar
DISKPART>select volume 2

y porfin agregamos el segundo disco para crear nuestro RAID 1

DISKPART>add disk 2En el administrador de discos deberiamos ver asi

image
Listamos los volumenes para ver informacion

DISKPART>list volume 

Volumen ### Ltr  Etiqueta     Fs     Tipo        Tamaño   Estado     Info
----------- ---  -----------  -----  ----------  -------  ---------  --------
   Vol. 0     D   KRMSVOL_ES_  UDF    DVD-ROM     1891 MB  Correcto
   Vol. 1     C                NTFS   Partición     64 GB  Correcto   Sistema
* Vol. 2                      RAW    Reflejar i    16 GB  Correcto

y finalmente le agregamos la letra

DISKPART>assign letter f:En el administrador de discos deberiamos ver asi

image

Salimos de Diskpart con el comando exit y le damos formato a nuestro RAID

format F: /FS:NTFS

Eso es todo salu2 a todos

June 23

Creando carpetas de red para mis usuarios

Me encomendaron que automáticamente algunos usuarios de la red, se les creara una unidad de disco en un File Server, donde puedan respaldar sus archivos de ofimática mas importantes.

El tema es que tenia que ser automático y con un icono en el escritorio :)

En el file Server 192.168.222.10 creamos la carpeta C:\Usuarios y la compartimos como Usuarios$, para que quede oculta.
Dentro de esta carpeta creamos la carpeta de nuestro usuario Juan Pérez (jperez)

¿Por que crear las carpetas a mano y no automáticas?
Al crear sub carpetas, los permisos de la carpeta raiz se propagan

Entonces echamos a correr los scripts que tanto me gustan y lo ponemos en el inicio de sesion

 

-----------Monta Carpetas.VBS----------------------------------------------------------

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject( "WScript.Shell" )
Set objShell = CreateObject("Shell.Application")
Set objNetwork = CreateObject("WScript.Network")
Set oDrives = objNetwork.EnumNetworkDrives
' Variable de ambiente del Usuario
Usuario=oShell.ExpandEnvironmentStrings("%username%")
'Letra del Disco Duro
strDriveLetter = "R:"
' Etiqueta del Disco Duro
strNewName="Respaldos 1GB"
'Servidor
srtServer="\\192.168.222.10\Usuarios$\"
'Creamos un siclo for para saber si la letra que queremos montar ya esta montad, de ser asi, la desmontamos y montamos la nuestra :)
Sub Mapeo(Drive,Share)
For i = 0 to oDrives.Count -1 Step 2 if LCase(Drive) = LCase(oDrives.Item(i)) then if not LCase(Share) = LCase(oDrives.Item(i+1)) then ' Desconectamos la Unidad objNetwork.RemoveNetworkDrive Drive, true, true Else Exit Sub End if End if Next 'Conectamos nuestra unidad de RED objNetwork.MapNetworkDrive strDriveLetter, srtServer&Usuario 'Asignamos la Etiqueta del Disco objShell.NameSpace(strDriveLetter).Self.Name = strNewName End Sub 'llamamos a la funcion con la letra y la rura de la carpeta Mapeo strDriveLetter,srtServer&Usuario ' Ahora crearemos un icono el escritorio del Usuario para redirigirlo a la unidad de red strDesktop = oShell.SpecialFolders("Desktop") 'le ponemos nombre el link set oShellLink = oShell.CreateShortcut(strDesktop & "\Respaldos.lnk") 'Seleccionamos el destino de link, que en nuestro caso sera la letra de la unidad oShellLink.TargetPath = strDriveLetter oShellLink.WindowStyle = 1 'Descripcion del icono oShellLink.Description = "Disco De Respaldo" 'Figurita oShellLink.IconLocation = "SHELL32.dll, 8" oShellLink.WorkingDirectory = strDriveLetter oShellLink.Save

----------------------------------------------------------------------------------------------------------------------------

oShellLink.IconLocation = "SHELL32.dll, 8" , el Shell32.dll es el archivo donde están los iconos de sistema y el que puse yo esta en la posición 8, recuerden que se empieza de cero de arriba a abajo
image

Así debería quedar dentro de Mi PC

image

y así debería quedar el icono en el escritorio

image

June 19

PPts Charla Chillan

Despues de andar como 30 minutos perdidos por chillan con mi amigo Gonzalo Perez porfin llegamos al auditorio y para mi sorpresa estaba lleno Guiño
 
Entre la audiencia se encontraba arto publico de 4° año medio, asiq mientras Gonazlo daba su charla de Silverlight, yo me dedique a modificar mis ppt y tratar de hacer algo lo mas cristiano posible.
 
Asiq fusione las ppts de una charla dada en la UTFSM y las que tenia preparadas y asi salieron las PPTS de la charla
 
Se las dejo aca para que las descarguen
 
 
 
June 14

A chillan los pasajes :)

426250972_b243820952msdn_logo_small
 
El dia Miercoles 18 en  Santo Tomas de Chillan se realizarán un par de charlas sobre tecnologias Microsoft
 
Les dejo el horario
 
09:00       10:15       Novedades de VS2008 y ASP.Net:Linq. Gonzalo Perez
10:30       11:30       Migrando  mi Infraestructura de Red, hacia Windows Server 2008 YO Risa
11:30       12:45       Silverlight , Microsoft Expression Gonzalo Perez
13:00       13:45       Célula  Academca.Oscar San Martín 
 
 Si vas  a asistir a mi charla de las 10:30 a 11:30 Inscribete en el sitio de eventos de Microsoft
 

Santo Tomas de Chillan

Sala de Conferencias Alfonso Lagos
AVDA. Libertad 845
Chillán Chile
 
June 10

Webcast Technet para Junio


 

Microsoft Technet

Sin dejar tu hogar o lugar de trabajo asiste gratis a los Webcasts de TechNet. Se trata de eventos en directo vía Internet brindados por expertos de Microsoft que te ayudarán a planificar, gestionar, mantener y dar soporte a los productos y tecnologías que utilizas a diario. Con los Webcasts podrás ver ejemplos, escuchar charlas de capacitación y hacer las preguntas que desees a los expertos. Debes registrarte previamente para poder asistir a los eventos, haciendo esto recibirás las instrucciones para participar.

Características de seguridad en Windows Vista
    3 de junio, 17:00 EST
Desplegar System Center Configuration Manager 2007
    3 de junio, 16:00 EST
Trucos y recomendaciones para Microsoft Windows SharePoint Services
    5 de junio, 15:00 EST
Administrar y mantener las tecnologías de las sucursales con Windows Sever 2003 R2
    5 de junio, 20:30 EST
Monitoreo de servicio punto a punto con System Center Operations Manager 2007
    10 de junio, 16:00 EST
Copias de respaldo y restauración en Windows Vista
    18 de junio, 18:00 EST
Introducción a System Center Configuration Manager 2007
    19 de junio, 20:30 EST
Administración de activos de software (SAM)
    30 de junio, 14:00 EST
June 09

Habilitando el ping (echo request) en Windows Server 2008

Para los que han instalado el server 2008, se habrán dado cuenta que a diferencia del 2003 el firewall deja casi todo cerrado, lo cual es bueno/malo, malo, ya que no podemos hacer ping a nuestro server para saber si esta en línea

Como solucionamos esto ?
Tenemos 2 opciones

  1. CLI("Command line interface") YEHAAA
    netsh firewall set icmpsetting 8             Lo cual habilita las peticiones de echo
    netsh firewall set icmpsetting 8 disable  Lo cual deshabilita las peticiones de echo
  2. GUI("Graphical User Interface")
    Inicio
    Ejecutar
    WF.msc
    Vamos a las regla de entrada
    Click derecho sobre Reglas de entrada
    Filtrar por Grupo
    Filtrar por Compartir archivos e impresoras
    image
    Habilitamos la regla
    image

Eso no+ Gato

May 24

Como ver si un usuario del dominio es administrador local de su Desktop


strGroup = "Administradores"
strComputer = "."
Set oShell = CreateObject( "WScript.Shell" )
usuario = oShell.ExpandEnvironmentStrings("%username%")
set objGroup = GetObject("WinNT://" & strComputer & "/" & strGroup)
for each objMember in objGroup.Members
    if objMember.Name = usuario Then
        Wscript.Echo "Es Administrador"
    End if
next
set objGroup = nothing

El resultado lo podríamos almacenar en un archivo de texto en alguna carpeta compartida para mas adelante tomar alguna decisión con estos usuarios.

Carpetas compartidas con Full Control para Todos/Everyone

Hola a todos.
Haciendo un poquito de auditoria en los desktops, nos dimos cuenta que muchos usuarios comparten sus carpetas con el permisos Full Control o Cambiar. Lo que nos trae un gran problema, ya que otros usuarios inescrupolosos podrían borrar o cambiar archivos que no son de el.

P:¿Que podemos hacer para advertirle al usuario que tiene un recurso compartido para todos con permisos demasiado altos?
R: Un script de inicio de sesión

El problema que este es script no es muy sencillo ya que tendremos que llegar hasta el DACL ("discretionary access control list").

Para esto ocuparemos el método GetSecurityDescriptor que nos traerá el descriptor que tiene esta forma absoluta

GetOpenContent

Dentro del Descriptor están las SACL (Security Acces Control List), las ACL tienen un listado de ACE,las cuales definen la protección que tiene un objeto

GetOpenContentACL

Bueno después de ese poco de teoría nos vamos a hacer un script

Primero recorremos todos los recursos compartidos de nuestro PC

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

'En este linea hacemos la consulta a todos los recursos comparidos
Set colShares = objWMIService.ExecQuery("Select * from Win32_Share")

'hacemos un ciclo para recorrer cada uno de ello
For each objShare in colShares
    ' enviamos en computador, el nombre del recurso compartido y la ruta a una función llamada ViewSharePermission
    ViewSharePermission strComputer, objShare.Name, objShare.Path
Next

'Esta funcion la saque de la siguiente pagina http://wmiscripting.wordpress.com/2007/12/07/view-share-permission/ y la modifique
Sub ViewSharePermission(vComputer, vShareName,vPath)
    Dim objWMIService 
    Dim objFolderSecSetting
    Dim objSecDescriptor
    Dim intRetVal
    Dim arrDACL
    Dim objACE
    Dim objTrustee
    On Error Resume Next

    '// Get Security Descriptor 
    Set objWMIService = GetObject("winmgmts:\\" & vComputer & "\root\cimv2")
    If Err <> 0 Then
        Wscript.Echo "Connect to " & vComputer & " failed."
        Err.Clear
        Exit Sub
    End If

    Set objFolderSecSetting = objWMIService.Get("Win32_LogicalShareSecuritySetting.Name='" & vShareName & "'")
    intRetVal = objFolderSecSetting.GetSecurityDescriptor(objSecDescriptor)

    If IsNull(objSecDescriptor.DACL) Then
        '// Note: A NULL DACL gives full access to everyone, which is a serious security risk
        CreateReport "Share Permission," & vShareName & "," & "Everyone" & "," & "Full Control"
    Else
        arrDACL = objSecDescriptor.DACL '// Get DACL (an array of Win32_ACE objects)
        For Each objACE In arrDACL
            Set objTrustee = objACE.Trustee
            if GetShareAccessMaskStr(objACE.AccessMask) = "Full Control" then
                msgbox("Estimado usuario la carpeta " &vpath&" Tiene permisos de CONTROL TOTAL para TODOS los Usuarios de la Red")
            elseif GetShareAccessMaskStr(objACE.AccessMask) = "Change" then
                    msgbox("Estimado usuario la carpeta " &vpath&" Tiene permisos de CAMBIAR SUS ARCHIVOS para TODOS los Usuarios de la Red")
            end if
        Next
    End If

    Set objFolderSecSetting = Nothing
    Set objWMIService = Nothing
End Sub

Function GetShareAccessMaskStr(vAccessMaskVal)
    Dim strTemp
    Select Case vAccessMaskVal
        Case 2032127:  strTemp = "Full Control"
        Case 1245631:  strTemp = "Change"
        Case 1179817:  strTemp = "Read"  
        Case Else: strTemp = "Access Mask " & vAccessMaskVal
    End Select
    GetShareAccessMaskStr = strTemp
End Function

View more entries