Para quitar permisos de marcado a todos los usuarios del dominio primero hacemos un listado para ver quien tiene esos permisos:
dsquery * -filter "&(msNPAllowDialin=TRUE)" -attr samaccountname
El reporte esta bien, pero a la hora de intentar modificar el atributo con dsmod resulta que no se pueden modificar mas que unos pocos atributos con esta herramienta.
Opciones:
Powershell, bastante tedioso hasta que salga el 2.0
Herramientas de terceros:
OJO, BACKUP PRIMERO, LOS RESULTADOS PUEDEN SER UN INFIERNO SI NOS EQUIVOCAMOS
adfind y admod.
Primero listado:
adfind -dn -f "&(msNPAllowDialin=TRUE)" > users.txt
No tengo tiempo de ver pq el output no es un DN puro.
Eliminar los dn: con los que comienza cada linea con un simple reemplazar del notepad
Cambiar el atributo que necesitamos en el listado de usuarios:
type users.txt | admod msNPAllowDialin::FALSE -safety (numero de registros)
type users.txt | admod msNPAllowDialin:- -safety (numero de registros)
OJO, SI QUEREMOS ELIMINAR EL VALOR DEL ATRIBUTO SIMPLEMENTE PONED -
SI QUEREMOS QUE SEA VERDADERO O FALSO :TRUE O :FALSE
Si queremos quitar atributos a una lista de usuarios y alguno ya tiene el atributo en blanco dara error. Rellenar con lo que sea primero o usad el parametro para continuar en caso de errores -cont
Ya que estamos pongo un par de consultas interesantes con el dsquery:
Ver todos los usuarios con su logon script asociado:
dsquery * domainroot -filter "(&(objectCategory=Person)(objectClass=User))" -limit 0 -attr sAMAccountName sn distinguishedName scriptPath
Ver todos los grupos que no tienen miembros:
dsquery * -filter "&(objectCategory=group)(!member=*)" -limit 0 -attr groupType sAMAccountName distinguishedName
Ver cuando se creo un grupo y a que grupos pertenece
dsquery * -filter "&(objectCategory=group)" -limit 0 -attr whenCreated samaccountname memberof
Ver la fecha de expiracion de los usuarios de una OU
dsquery user "OU=XXX,DC=test,DC=com" dsget user -dn -acctexpires
lunes, 3 de mayo de 2010
miércoles, 14 de abril de 2010
Operadores Powershell
-lt
Less than
-le
Less than or equal to
-gt
Greater than
-ge
Greater than or equal to
-eq
Equal to. If the left hand side of the operator is an array and the right hand side is a scalar, the equivalent values of the left hand side will be returned
-ne
Not Equal to. If the left hand side of the operator is an array and the right hand side is a scalar, the not equivalent values of the left hand side will be returned
-contains
Determine elements in a group, this always returns Boolean $True or $False.
-notcontains
Determine excluded elements in a group, this always returns Boolean $True or $False.
-like
Like - uses wildcards for pattern matching
-notlike
Not Like - uses wildcards for pattern matching
-match
Match - uses regular expressions for pattern matching
-notmatch
Not Match - uses regular expressions for pattern matching
-band
Bitwise AND
-bor
Bitwise OR
-is
Is of Type
-isnot
Is not of Type
These operators are the case-sensitive counterparts:
Operator
Definition
-clt
Less than (case sensitive)
-cle
Less than or equal to (case sensitive)
-cgt
Greater than (case sensitive)
-cge
Greater than or equal to (case sensitive)
-ceq
Equal to (case sensitive)
-cne
Not Equal to (case sensitive)
-clike
Like (case sensitive)
-cnotlike
Not Like (case sensitive)
-ccontains
left hand side contains right hand side in a case sensitive manner
-cnotcontains
determine excluded elements in a group in a case sensitive manner
-cmatch
Match (case sensitive)
-cnotmatch
Not Match (case sensitive)
Other operators: Operator
Definition
+
Add
-
Subtract
*
Multiply
/
Divide
%
Modulo
-not
logical not
!
logical not
-band
binary and
-bor
binary or
-bnot
binary not
-replace
Replace (e.g. "abcde" –replace "b","B") (case insensitive)
-ireplace
Case-insensitive replace (e.g. "abcde" –ireplace "B","3")
-creplace
Case-sensitive replace (e.g. "abcde" –creplace "B","3")
-and
AND (e.g. ($a -ge 5 -AND $a -le 15) )
-or
OR (e.g. ($a –eq "A" –OR $a –eq "B") )
-is
IS type (e.g. $a -is [int] )
-isnot
IS not type (e.g. $a -isnot [int] )
-as
convert to type (e.g. 1 -as [string] treats 1 as a string )
..
Range operator (e.g. foreach ($i in 1..10) {$i } )
&
call operator (e.g. $a = "Get-ChildItem" &$a executes Get-ChildItem)
. (dot followed by a space)
call operator (e.g. $a = "Get-ChildItem" . $a executes Get-ChildItem in the current scope)
-F
Format operator (e.g. foreach ($p in Get-Process) { "{0,-15} has {1,6} handles" –F $p.processname,$p.Handlecount } )
-eq Equal to (case insensitive)
-ieq Equal to (case insensitive)
-ceq Equal to (case sensitive)
-ne Not equal to (case insensitive)
-ine Not equal to (case insensitive)
-cne Not equal to (case sensitive)
-gt Greater than (case insensitive)
-igt Greater than (case insensitive)
-cgt Greater than (case sensitive)
-ge Greater than or equal to (case insensitive)
-ige Greater than or equal to (case insensitive)
-cge Greater than or equal to (case sensitive)
-lt Less than (case insensitive)
-ilt Less than (case insensitive)
-clt Less than (case sensitive)
-le Less than or equal to (case insensitive)
-ile Less than or equal to (case insensitive)
-cle Less than or equal to (case sensitive)
-contains Group of values in left hand operand contains value specified in right hand operand (case insensitive)
-icontains Group of values in left hand operand contains value specified in right hand operand (case insensitive)
-ccontains Group of values in left hand operand contains value specified in right hand operand (case sensitive)
-notcontains Group of values in left hand operand does not contain value specified in right hand operand (case insensitive)
-inotcontains Group of values in left hand operand does not contain value specified in right hand operand (case insensitive)
-cnotcontains Group of values in left hand operand does not contain value specified in right hand operand (case sensitive)
Less than
-le
Less than or equal to
-gt
Greater than
-ge
Greater than or equal to
-eq
Equal to. If the left hand side of the operator is an array and the right hand side is a scalar, the equivalent values of the left hand side will be returned
-ne
Not Equal to. If the left hand side of the operator is an array and the right hand side is a scalar, the not equivalent values of the left hand side will be returned
-contains
Determine elements in a group, this always returns Boolean $True or $False.
-notcontains
Determine excluded elements in a group, this always returns Boolean $True or $False.
-like
Like - uses wildcards for pattern matching
-notlike
Not Like - uses wildcards for pattern matching
-match
Match - uses regular expressions for pattern matching
-notmatch
Not Match - uses regular expressions for pattern matching
-band
Bitwise AND
-bor
Bitwise OR
-is
Is of Type
-isnot
Is not of Type
These operators are the case-sensitive counterparts:
Operator
Definition
-clt
Less than (case sensitive)
-cle
Less than or equal to (case sensitive)
-cgt
Greater than (case sensitive)
-cge
Greater than or equal to (case sensitive)
-ceq
Equal to (case sensitive)
-cne
Not Equal to (case sensitive)
-clike
Like (case sensitive)
-cnotlike
Not Like (case sensitive)
-ccontains
left hand side contains right hand side in a case sensitive manner
-cnotcontains
determine excluded elements in a group in a case sensitive manner
-cmatch
Match (case sensitive)
-cnotmatch
Not Match (case sensitive)
Other operators: Operator
Definition
+
Add
-
Subtract
*
Multiply
/
Divide
%
Modulo
-not
logical not
!
logical not
-band
binary and
-bor
binary or
-bnot
binary not
-replace
Replace (e.g. "abcde" –replace "b","B") (case insensitive)
-ireplace
Case-insensitive replace (e.g. "abcde" –ireplace "B","3")
-creplace
Case-sensitive replace (e.g. "abcde" –creplace "B","3")
-and
AND (e.g. ($a -ge 5 -AND $a -le 15) )
-or
OR (e.g. ($a –eq "A" –OR $a –eq "B") )
-is
IS type (e.g. $a -is [int] )
-isnot
IS not type (e.g. $a -isnot [int] )
-as
convert to type (e.g. 1 -as [string] treats 1 as a string )
..
Range operator (e.g. foreach ($i in 1..10) {$i } )
&
call operator (e.g. $a = "Get-ChildItem" &$a executes Get-ChildItem)
. (dot followed by a space)
call operator (e.g. $a = "Get-ChildItem" . $a executes Get-ChildItem in the current scope)
-F
Format operator (e.g. foreach ($p in Get-Process) { "{0,-15} has {1,6} handles" –F $p.processname,$p.Handlecount } )
-eq Equal to (case insensitive)
-ieq Equal to (case insensitive)
-ceq Equal to (case sensitive)
-ne Not equal to (case insensitive)
-ine Not equal to (case insensitive)
-cne Not equal to (case sensitive)
-gt Greater than (case insensitive)
-igt Greater than (case insensitive)
-cgt Greater than (case sensitive)
-ge Greater than or equal to (case insensitive)
-ige Greater than or equal to (case insensitive)
-cge Greater than or equal to (case sensitive)
-lt Less than (case insensitive)
-ilt Less than (case insensitive)
-clt Less than (case sensitive)
-le Less than or equal to (case insensitive)
-ile Less than or equal to (case insensitive)
-cle Less than or equal to (case sensitive)
-contains Group of values in left hand operand contains value specified in right hand operand (case insensitive)
-icontains Group of values in left hand operand contains value specified in right hand operand (case insensitive)
-ccontains Group of values in left hand operand contains value specified in right hand operand (case sensitive)
-notcontains Group of values in left hand operand does not contain value specified in right hand operand (case insensitive)
-inotcontains Group of values in left hand operand does not contain value specified in right hand operand (case insensitive)
-cnotcontains Group of values in left hand operand does not contain value specified in right hand operand (case sensitive)
Calculo de consumos PC
Una pagina muy interesante donde especificar los componentes que tiene un ordenador y calcular el consumo, la fuente que necesita o el SAI adecuado.
lunes, 14 de diciembre de 2009
Calculo recogida agua
La estacion meteorologica expresa la pluviometria en milimetros por metro cuadrado.
9mm de lluvia *120m de recogida*0.75 porcentaje eficacia= 810 litros recogidos o 0.81m cubicos
9mm de lluvia *120m de recogida*0.75 porcentaje eficacia= 810 litros recogidos o 0.81m cubicos
Camion de 20000l a 44 euros = 0.0022€ el litro
Eficiencia aproximada segun tejado:
85 % en las zonas de recogida con tejado duro inclinado.
60 % en tejados planos con grava.
75 % porque yo lo valgo en tejado de teja de barro.
jueves, 3 de diciembre de 2009
Replicacion ADAM entre sitios ISA 2006
En una topologia de estrella en la que los sites extremo solo tienen conectividad con el central y no entre ellos la replicacion por defecto de ISA 2006 y 2004 deja bastante que desear.
La configuracion por defecto pretende replicar todos los servers entre ellos ya que los mete dentro del mismo site: Default-First-Site-Name
La herramienta para poder modificar la configuracion de replicacion es Adam Sites:
http://www.microsoft.com/downloads/details.aspx?familyid=82f57473-f866-471c-88db-fe2e175b04c8&displaylang=en
A mi la instalacion de esta herramienta me peta, no se porque pero paso de mirarlo. Simplemente descomprimid el paquete y copiad el adamsites.exe en C:\Archivos de programa\Microsoft ISA Server
Primer paso:
Crear un site nuevo para cada delegacion.
adamsites site create Mexico
adamsites site create Cuba
adamsites site create Dominicana
adamsites site create Central
Segundo paso:
Crear los vinculos de replicacion entre sites segun necesitemos. En este caso solo vincularemos los extremos con la Central para que repliquen todos con la Central y no entre ellos.
adamsites sitelink create Mexico-Central 2 Mexico Central 100 15
adamsites sitelink create Cuba-Central 2 Mexico Central 100 15
adamsites sitelink create Dominicana-Central 2 Mexico Central 100 15
Mexico-Central es el nombre que le damos al link.
El 2 es el numero de sitios que perteneceran al link.
A continuacion los nombres de los sitios el coste de replicacion y el intervalo en minutos para replicar (entre 15 y 360 creo)
El coste se calcula de la siguiente manera:
ADSL 2M/384kbps
Tomamos el canal de subida expresado en kbps que es el mas pequeño de los dos y a fin de cuentas es el que va a limitar la trasferencia de datos.
1 / logaritmo(384) * 1024 = 396 Este es el coste de replicacion.
Tras crear los links entre sitios movemos los servidores de almacenamiento cada uno a su sitio.
adamsites moveserver MexicoServer Default-First-Site-Name Mexico
adamsites moveserver CubaServer Default-First-Site-Name Cuba
adamsites moveserver DominicanaServer Default-First-Site-Name Dominicana
adamsites moveserver CentralServer Default-First-Site-Name Central
Nos deberia quedar asi:
C:\Archivos de programa\Microsoft ISA Server>adamsites sites
Site: Central
There is one server in the site.
CentralServer
Site: Cuba
There is one server in the site.
CubaServer
Site: Default-First-Site-Name
There are no servers in this site.
Site: Dominicana
There is one server in the site.
DominicanaServer
Site: Mexico
There is one server in the site.
MexicoServer
Hasta aqui todo facil. Ahora viene lo bueno, sacad la bola de cristal y preparaos a ser adivinos.
Abid el acceso directo de Simbolo de sistema Herramientas de ADAM y desde ahi ejecutad:
repadmin /showconn MexicoServer:2171 ( el puerto donde por defecto queda la instancia de ADAM al instalar ISA 2006 )
Os aparecera una conexion por cada uno de los servidores que teniais en la configuracion de empresa. En mi caso al no tener conectividad entre ellos habia errores por doquier.
Bien ahora abrid el acceso directo de Editor ADSI de ADAM.
Vamos a ver la rama para la replicacion del site Mexico por ejemplo:
CN=Configuration, CN={AF593097-2444-4478-BBEE-E507BF56FAF5},CN=Sites,CN=Mexico,CN=Servers,CN=MexicoServer$ISASTGCTRL,CN=NTDS Settings
Dentro de esa rama vereis una Key por cada uno de los vinculos de replicacion que tiene ese servidor. No se vosotros pero yo solo le he dicho que replique con la Central... Santa paciencia hace lo que le da la gana..
Esto no nos deberia generar problemas ya que al menos ahora ya replica con el server de la Central. Lo malo es que nos va a generar errores en el visor de sucesos con cada uno de los servers que no pueda replicar.
Para identificar con quien replica cadaSi abriis esas llaves y vais al atributo fromServer vereis por ejemplo:
CN=NTDS Settings,CN=CubaServer$ISASTGCTRL,CN=Servers,CN=ESM-PRD,CN=Sites,CN=Configuration,CN={AF593097-2444-4478-BBEE-E507BF56FAF5}
Como veis, este es el vinculo de replicacion con Cuba. No nos interesa ya que no hay conectividad entre ellos. Eliminamos por tanto todas las claves de la rama
CN=Configuration, CN={AF593097-2444-4478-BBEE-E507BF56FAF5},CN=Sites,CN=Mexico,CN=Servers,CN=MexicoServer$ISASTGCTRL,CN=NTDS Settings
A excepcion de la que contenga en el atributo fromServer:
CN=NTDS Settings,CN=CentralServer$ISASTGCTRL,CN=Servers,CN=ESM-PRD,CN=Sites,CN=Configuration,CN={AF593097-2444-4478-BBEE-E507BF56FAF5}
De esta manera solo permitimos que replique con la central y dejara de dar errores.
Una vez hayamos depurado los enlaces inter-sites repicamos el ADAM hacia los demas servidores. Hay que tener en cuenta que los cambios los hago en el ADAM del server central y lo replicamos hacia los extremos.
c:\windows\adam\repadmin /replicate CentralServer:2171 MexicoServer:2171 CN=Configuration,CN={AF593097-2444-4478-BBEE-E507BF56FAF5}
El GUID que debeis poner es el de vuestro ADAM a replicar y es el mismo para todos los servers que tengais en esa replica.
Lo podeis ver claramente al abrir el ADSI ADAM en la primera rama.
Si ahora lanzamos de nuevo por ejemplo:
repadmin /showconn MexicoServer:2171
Veremos como solamente aparece 1 link hacia la Central y sin errores
Todo esto si lo hubiesen integrado igual que en la consola de Sitios y Servicios de Active Directory.. reduciria todo el trabajo a 20 clicks..
Paciencia..
lunes, 30 de noviembre de 2009
Query contra ISA para sacar reporte de navegacion de usuarios
(
SELECT clientip, ClientUserName, Desthost, logtime
FROM [ISALOG_20091023_WEB_000].[dbo].[WebProxyLog]
union
SELECT clientip, ClientUserName, Desthost, logtime
FROM [ISALOG_20091024_WEB_000].[dbo].[WebProxyLog]
union
SELECT clientip, ClientUserName, Desthost, logtime
FROM [ISALOG_20091025_WEB_000].[dbo].[WebProxyLog]
union
SELECT clientip, ClientUserName, Desthost, logtime
FROM [ISALOG_20091026_WEB_000].[dbo].[WebProxyLog]
union
SELECT clientip, ClientUserName, Desthost, logtime
FROM [ISALOG_20091027_WEB_000].[dbo].[WebProxyLog]
union
SELECT clientip, ClientUserName, Desthost, logtime
FROM [ISALOG_20091028_WEB_000].[dbo].[WebProxyLog]
union
SELECT clientip, ClientUserName, Desthost, logtime
FROM [ISALOG_20091029_WEB_000].[dbo].[WebProxyLog]
union
SELECT clientip, ClientUserName, Desthost, logtime
FROM [ISALOG_20091030_WEB_000].[dbo].[WebProxyLog]
union
SELECT clientip, ClientUserName, Desthost, logtime
FROM [ISALOG_20091031_WEB_000].[dbo].[WebProxyLog]
) DATOS
where clientusername = 'usuario' o where clientusername like '%usuario%'
group by clientusername, desthost
order by hits desc
Envio mail a traves de telnet
ehlo o ehlo dominio.com (segun config)
MAIL FROM:alertas@dominio.com
RCPT TO:soporte@dominio.com
DATA
subject: Blabla
Cuerpo mensaje
.
Etiquetas:
Exchange 2000,
Exchange 2003,
Exchange 2007,
Linea de comandos
Suscribirse a:
Entradas (Atom)