Seite 2 von 2

Betreff: [GELÖST] Verschlüsseln Ihrer Wapt-Passwörter

Veröffentlicht: 20. Juli 2018 - 10:27 Uhr
von Sfonteneau
Sie müssen Ihr Skript im WAP-Installationsordner ablegen.

Betreff: [GELÖST] Verschlüsseln Ihrer Wapt-Passwörter

Veröffentlicht: 20. Juli 2018 - 10:49 Uhr
von Louisinger
Okay, es ist eine .pyd-Datei, mein Fehler, danke

Betreff: [GELÖST] Verschlüsseln Ihrer Wapt-Passwörter

Veröffentlicht: 20. Juli 2018 – 13:48 Uhr
von Sfonteneau
Du kannst dein Skript gerne veröffentlichen, sobald es fertig ist.

Es ist ein Beitrag zur Wapt-Community!

Betreff: [GELÖST] Verschlüsseln Ihrer Wapt-Passwörter

Veröffentlicht: 20. Juli 2018 – 15:39 Uhr
von Louisinger
Hier ist mein Code, so weit wie möglich anonymisiert und kommentiert. Hoffentlich hilft er.

Code: Alle auswählen

def isGroup(myPackage):
    """
        Renvoie True si le paquet est un paquet groupe de l'AD.
        :param myPackage: nom du paquet à tester.
        :return boolean: True si myPackage appartient à groupPackages, False si non.
        :exemple:
            > isGroup('lot1')
            True
            > isGroup('tis-java8')
            False
    """
    groupPackages = {'lot1','lot2','lot3','lot4'}
    for group in groupPackages:
        if group == myPackage:
            return True
    return False


def haveGroup(depends):
    """
        Renvoie true si la ligne de dépendance en paramètre contient un des groupes.
        :param depends: ligne de dépendance au format "dependance1,dependance2,..."
        :return boolean: True si il y a un groupe False si non.
        :exemple:
            > haveGroup('tis-chrome, tis-microsoft-office, lot1')
            True
            > haveGroup('tis-chrome')
            False
    """
    if not depends :
        return False
    else :
        packages = depends.split(',')
        for p in packages:
            if isGroup(p):
                return True
        return False


def main(get_group):
    """
        Repartie les clients WAPT dans différents groupes (groupes AD).    
        :param get_group: fonction qui renvoie le nom du package group
    """
	# const
    USER = 'admin'
    URL_SERVER = '**********'
    RESULT_LIMIT = 1500
    TEMP_DIR_ROOT = 'c:/temp/*******'
    PATH_TO_CONFIGFILE = r'C:/Users/administrateur/AppData/Local/waptconsole/waptconsole.ini'
    FORCE = False

    remove_tree(TEMP_DIR_ROOT)
    myWapt = Wapt(config_filename = PATH_TO_CONFIGFILE)
    
    mycrt = r"****************"
    credentials_url = waptguihelper.login_password_dialog('admin loggin', URL_SERVER, USER, '')
    passwd_private_key = waptguihelper.key_password_dialog('Password for private key',mycrt, '')

    USER = credentials_url['user']
    PASSWORD = credentials_url['password']
    PASSWORD_KEY = passwd_private_key['keypassword']
    data = json.loads(wgets('https://%s:%s@%s/api/v1/hosts?limit=%s' % (USER, PASSWORD, URL_SERVER, RESULT_LIMIT)))
    uuid, depends, fqdn, tmpdir = '','','',''
    
    if FORCE:
            print("Force : True")
    
    for value in data['result']:    
        uuid = value.get('uuid')
        depends = value.get('depends')
        fqdn = value.get('computer_fqdn')
        if not haveGroup(depends) or FORCE:
            group_name = get_group(fqdn)
            tmpdir = makepath(TEMP_DIR_ROOT, uuid)
            myWapt.edit_host(uuid, target_directory = tmpdir, append_depends = group_name)
            myWapt.build_upload(r'%s'%tmpdir, private_key_passwd = PASSWORD_KEY, wapt_server_user = USER, wapt_server_passwd = PASSWORD)
            print("%s (%s) ---> %s"%(uuid,fqdn,group_name))

                
if __name__ == "__main__":
    main(get_group = mafonctiongetGroup)

PS: Das verdient definitiv ein paar Tranquil IT-Aufkleber, findest du nicht?

Betreff: [GELÖST] Verschlüsseln Ihrer Wapt-Passwörter

Veröffentlicht: 23. Juli 2018 - 09:47 Uhr
von Sfonteneau
Sie möchten nicht die anonymisierte Version der Funktion mafonctiongetGroup bereitstellen? :rollen:

Betreff: [GELÖST] Verschlüsseln Ihrer Wapt-Passwörter

Veröffentlicht: 23. Juli 2018 - 13:09 Uhr
von Louisinger
Das ist eine organisationsspezifische Funktion, und selbst anonymisiert macht es meiner Meinung nach keinen Sinn, sie anzubieten. Aber ich werde sehen, was ich tun kann ;)

Betreff: [GELÖST] Verschlüsseln Ihrer Wapt-Passwörter

Veröffentlicht: 23. Juli 2018 – 13:47 Uhr
von Louisinger
Hier ist getGroup:
unter der Annahme, dass die Berufsbezeichnungen im Format X000Y100.organisation.fr vorliegen
wobei X000 die Standortreferenz ist.

Code: Alle auswählen

def toSiteName(computer_fqdn):
    """
        Renvoie le nom du site en fonction du host name.
        :param computer_fqdn: full hostname d'un poste client.
        :return string: nom du site en majuscule
    """
    host = computer_fqdn.split('.')[0][0:4]
    return host.upper()

def getGroup(fqdn):
    """
        Renvoie le groupe en fonction du nom de l'hote
    """
    site_name = toSiteName(fqdn)
    group_name = alias_groupe.get(switcher.get(site_name, 0), 'hors-lot')
    return group_name
Alias_groupe hat folgende Form:

Code: Alle auswählen

alias_groupe = {
    0:'hors-lot'
    1:'lot1',
    2:'lot2',
    3:'lot3'
}
und der Umschalter, der das Umschalten zwischen Standorten und Gruppen ermöglicht:

Code: Alle auswählen

switcher = {
    'X000':1
    'X001':2
    'X002':1
    'Y010':3
}
Voilà, es ist einfach und simpel, spart aber enorm viel Zeit beim Sortieren der Maschinen.