• Publicidad

Obtener y modificar parámetros de la política local de Win32

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Obtener y modificar parámetros de la política local de Win32

Notapor ricar » 2009-07-16 07:22 @349

Hola a todos.

Quisiera saber si alguien conoce alguna forma, tipo módulo, para obtener y modificar los parámetros de las políticas locales de Windows (directivas de cuentas, directivas locales...).

He revisado los módulos de CPAN y no he visto nada válido.

Muchas gracias.

Un saludo,
Ricar.
ricar
Perlero nuevo
Perlero nuevo
 
Mensajes: 71
Registrado: 2009-07-13 07:29 @353

Publicidad

Re: Obtener y modificar parámetros de la política local de win

Notapor explorer » 2009-07-16 07:47 @366

Bienvenido a los foros de Perl en Español, ricar.

No sé si esto te servirá, como ejemplo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# From the book "Windows XP Cookbook"
# ISBN: 0596007256

# This code displays the current settings for the password
# and account lockout policies.
# ------ SCRIPT CONFIGURATION ------

use Win32::OLE qw(in);

$strDomain = '<DomainName>';
# e.g. rallencorp.com
# ------ END CONFIGURATION ---------
$objRootDSE = Win32::OLE->GetObject('LDAP://' . $strDomain . '/RootDSE');
$objDomain = Win32::OLE->GetObject('LDAP://' . $objRootDSE->Get('defaultNamingContext'));

# Hash containing the domain password and lockout policy attributes
# as keys and the units (e.g. minutes) as the values
$objDomAttrHash = Win32::OLE->new('Scripting.Dictionary');
$objDomAttrHash->Add('lockoutDuration', 'minutes');
$objDomAttrHash->Add('lockoutThreshold', 'attempts');
$objDomAttrHash->Add('lockoutObservationWindow', 'minutes');
$objDomAttrHash->Add('maxPwdAge', 'minutes');
$objDomAttrHash->Add('minPwdAge', 'minutes');
$objDomAttrHash->Add('minPwdLength', 'characters');
$objDomAttrHash->Add('pwdHistoryLength', 'remembered');
$objDomAttrHash->Add('pwdProperties', ' ');

# Iterate over each attribute and print it
foreach my $strAttr (in $objDomAttrHash->Keys) {
    if (((ref $objDomain->Get($strAttr)) =~ /^Win32::OLE/)) {
        $objLargeInt = $objDomain->Get($strAttr);
        if ($objLargeInt->LowPart == 0) {
            $value = 0;
        }
        else {
            $value = abs($objLargeInt->HighPart * 2 ** 32 + $objLargeInt->LowPart);
            $value = int($value / 10000000);
            $value = int($value / 60);
        }
    }
    else {
        $value = $objDomain->Get($strAttr);
    }
    print $strAttr . ' = ' . $value . ' ' . $objDomAttrHash->Item($strAttr), "\n";
}

# Constants from DOMAIN_PASSWORD_INFORMATION
$objDomPassHash = Win32::OLE->new('Scripting.Dictionary');
$objDomPassHash->Add('DOMAIN_PASSWORD_COMPLEX', 0x1);
$objDomPassHash->Add('DOMAIN_PASSWORD_NO_ANON_CHANGE', 0x2);
$objDomPassHash->Add('DOMAIN_PASSWORD_NO_CLEAR_CHANGE', 0x4);
$objDomPassHash->Add('DOMAIN_LOCKOUT_ADMINS', 0x8);
$objDomPassHash->Add('DOMAIN_PASSWORD_STORE_CLEARTEXT', 0x16);
$objDomPassHash->Add('DOMAIN_REFUSE_PASSWORD_CHANGE', 0x32);

# The PwdProperties attribute requires special processing because
# it is a flag that holds multiple settings.
foreach my $strFlag (in $objDomPassHash->Keys) {
    if ($objDomPassHash->Item($strFlag) && $objDomain->Get('PwdProperties')) {
        print " $strFlag is enabled\n";
    }
    else {
        print " $strFlag is disabled\n";
    }
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4

Lo he encontrado en este libro: Windows XP Cookbook.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Obtener y modificar parámetros de la política local de Win32

Notapor ricar » 2009-07-16 10:14 @468

Muchas gracias explorer, por la bienvenida y por la respuesta.

Tengo que analizarlo más detenidamente pero tiene pinta de referirse a políticas de dominio.

Me interesa, lo relativo a políticas locales. La verdad es que no creo que me valga.

Muchas gracias.

Un saludo,
Ricar.
ricar
Perlero nuevo
Perlero nuevo
 
Mensajes: 71
Registrado: 2009-07-13 07:29 @353

Re: Obtener y modificar parámetros de la política local de Win32

Notapor explorer » 2009-07-16 15:31 @688

He leído por encima el capítulo 15 y habla de ordenadores, usuarios y contraseñas, mientras que el resto de los capítulos se dedican a otros temas.

¿A qué tipo de políticas te refieres?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Obtener y modificar parámetros de la política local de Win32

Notapor ricar » 2009-07-17 00:46 @073

Hola Explorer.

Las políticas de dominio son relativas al Active Directory y las locales a todas las máquinas Windows.

Los "checks" u opciones son prácticamente los mismos, o sea, lo que comentas, directivas de cuentas, directivas locales, etc.

Pero entre otras cosas cambia el modo de propagación de las mismas. Una política de dominio se propaga a través del SYSVOL y consiste en un fichero GptTmpl.inf y se podría (en principio) obtener (cambiar) datos sobre ese fichero.

Pero las políticas locales no guarda la información en un .inf, si no que lo guarda, creo, en la base de datos .sdb, que no es legible.

Por tanto, no sé cómo puedo obtener y/o fijar valores de la política local.

Espero haber expresado lo que quería de forma clara :).

Un saludo,
Ricardo.
ricar
Perlero nuevo
Perlero nuevo
 
Mensajes: 71
Registrado: 2009-07-13 07:29 @353


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron