
LAPS by WAPT
Silent install package for LAPS by WAPT
3-9
Utilities
Utilities
- package: tis-laps-by-wapt
- name: LAPS by WAPT
- version: 3-9
- categories: Utilities
- maintainer: WAPT Team,Tranquil IT,Simon FONTENEAU,Amelie LE JEUNE,Pierre COSSON,Jimmy PELÉ
- licence: wapt_public
- locale: all
- target_os: windows
- architecture: all
- signature_date:
- size: 16.22 Ko
package : tis-laps-by-wapt
version : 3-9
architecture : all
section : base
priority : optional
name : LAPS by WAPT
categories : Utilities
maintainer : WAPT Team,Tranquil IT,Simon FONTENEAU,Amelie LE JEUNE,Pierre COSSON,Jimmy PELÉ
description : change and display administrator password with admin's private key
depends :
conflicts :
maturity : PROD
locale : all
target_os : windows
min_wapt_version : 2.1
sources :
installed_size :
impacted_process :
description_fr :
description_pl :
description_de :
description_es :
description_pt :
description_it :
description_nl :
description_ru :
audit_schedule :
editor :
keywords :
licence : wapt_public
homepage :
package_uuid : 4dd9a464-c4d1-4c39-a479-abf25590026e
valid_from :
valid_until :
forced_install_on :
changelog :
min_os_version :
max_os_version :
icon_sha256sum : 3ff6547ef5ca3bd871b4ae07f6ae9060009646db2baac829120c87c285ead18b
signer : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature_date : 2025-09-19T16:04:22.000000
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes
signature : aB8eXKuse7t5YaboTnPr0euuWAYjr+gJ7MCMEp7IMPmol9etnGQmbWb9HmUZaGC6FoPuPNT1mPRCcs4PTdArkn19vdcBFJZy6dt1yNa5B5wa6VVZIO6TJfjy7CjAZOy2k75XLYqov+dwhxFEmU+MRTkh5OeNJc+8r2mDntQG1y4FfwrJSXFJYg6WwCI9aOIzxJS2uAJFyTB0pjHS3zybOR/tBYgxqP1t9P5Is3XE7M+q+ADllRhIU0NEpcpk+H5oYAOpGegW7brf97ftbBxF8VVmboTCTZrWTTM5oMIbNYjQFvqYrN7KYq20TTsV/jCYCiq7a+IThmotcovU7GhoeA==
# -*- coding: utf-8 -*-
from setuphelpers import *
import win32net
import win32security
import datetime
try:
import waptcrypto
if "encrypted_data_str" in dir(waptcrypto):
from waptcrypto import encrypted_data_str as rsa_encrypted_data_str
except:
pass
import string
import random
# dict_admin = {
# "en": "administrator",
# "fr": "administrateur",
# "de": "administrator",
# "pl": "administrator",
# "es": "Administrador",
# "pt": "administrador",
# "it": "administrator",
# "nl": "administrator",
# "ru": "Администратор",
# }
def install():
# you can add you ssl certificate in the package in order to decrypt information in the audit_data
for crt in glob.glob("*.crt"):
filecopyto(crt, makepath(WAPT.wapt_base_dir, "ssl", crt))
audit()
def audit():
all_passwords = list(WAPT.read_audit_data_set("laps", "local_admin_password"))
if all_passwords:
last_date = list(WAPT.read_audit_data_set("laps", "local_admin_password"))[-1][1]
else:
last_date = None
if not last_date or (datetime.datetime.now() - isodate2datetime(last_date) > datetime.timedelta(days=365)) or force == True:
randompassword = password_generator(size=random.randint(10, 16), chars=string.ascii_letters + string.digits)
locsid = str(win32net.NetUserModalsGet(get_computername(), 2)['domain_id']).split(':',1)[-1]
sid = win32security.GetBinarySid(locsid + "-500")
admin_local_user, domain, typ = win32security.LookupAccountSid(wincomputername(), sid)
if not params.get("install_with_luti", False):
run(r'net user "%s" "%s"' % (admin_local_user, randompassword))
run(r'net user "%s" /active:yes' % admin_local_user)
WAPT.write_audit_data_if_changed("laps", "local_admin_password", rsa_encrypted_data_str(randompassword, [WAPT.public_certs_dir]), max_count=3)
return "OK"
def password_generator(size=16, chars=string.ascii_letters + string.digits):
"""
Returns a string of random characters, useful in generating temporary
passwords for automated password resets.
size: default=8; override to provide smaller/larger passwords
chars: default=A-Za-z0-9; override to provide more/less diversity
Credit: Ignacio Vasquez-Abrams
Source: http://stackoverflow.com/a/2257449
"""
return "".join(random.choice(chars) for i in range(size))
1a6b620f00f4030e18b8bf199de1987bae82e8b57541750886298ac42393ddc6 : README.MD
424412f5866d0050bf46967f2f3aefedbf1de50d6821f719b20fcc4e5d85e214 : README_fr.md
38d056ab130f7bf7c481c12636a4e9959de36561d3dfcbe54c6e3571bc0c1dc3 : WAPT/certificate.crt
ceb01e969cf3a458a2ca473a53d345384c4e624ed61efdd1dcce67fa75211a0b : WAPT/control
3ff6547ef5ca3bd871b4ae07f6ae9060009646db2baac829120c87c285ead18b : WAPT/icon.png
8e83c1c0360cf8dcba8827436c790c3afa46e5e33ce13973f21cca7b512d6308 : luti.json
3059eaa3f83ec899291a9ca64e55fcfbf5081debbf3f3f78f89ced5a05fa81f2 : setup.py