ogclone-engine/ogclient/scripts/buildToOrder.py

65 lines
2.2 KiB
Python

import sys
#!/usr/bin/env python3
"""
BuildToOrder
@brief Script de ejemplo para realizar una configuracion del sistema operativo antes de generar imagen o de restaurado.
@brief Activa el uso de los contralodres de disco más usados en windows 7.
@brief (puede usarse como complemento para el programa de creación de imágenes o de restauración).
@param 1 disco
@param 2 particion
@return
@TODO
@exception
@version 1.0.4 - Discos ide + SATA.
@date 2012-10-05
@version 1.1.1b - Funciona para Windows8 y Windows 10. Si la clave no existe (tiene valor vacío) se crea.
@date 2020-05-04
"""
def main():
PROG = sys.argv[0]
if len(sys.argv) != 3:
ogRaiseError("OG_ERR_FORMAT", f"Formato: {PROG} ndisco nparticion")
disk = sys.argv[1]
partition = sys.argv[2]
MNTDIR = ogMount(disk, partition)
OSTYPE = ogGetOsType(disk, partition)
if OSTYPE == "Windows":
print("Filtro versión de sistema operativo windows.")
TYPE = ogGetOsVersion(disk, partition)
if "Windows XP" in TYPE:
print("Versión de sistema operativo Windows XP no soportado")
sys.exit()
elif "Windows 7" in TYPE:
KEYS = ["intelide", "pciide", "msahci", "iaStorV", "iaStor", "LSI_SAS"]
elif "Windows 8" in TYPE or "Windows 10" in TYPE:
KEYS = ["intelide", "pciide", "storahci", "iaStorV", "iaStorAC", "iaStorAVC", "LSI_SAS"]
else:
KEYS = []
print(TYPE)
CONTROLSET = ["ControlSet001", "ControlSet002"]
for C in CONTROLSET:
if ogListRegistryKeys(MNTDIR, "SYSTEM", f'\\{C}') == "":
continue
for K in KEYS:
FULLK = f'\\{C}\\Services\\{K}\\Start'
VALUE = ogGetRegistryValue(MNTDIR, "SYSTEM", FULLK)
if VALUE == "":
ogDeleteRegistryValue(MNTDIR, "SYSTEM", FULLK)
ogAddRegistryValue(MNTDIR, "SYSTEM", FULLK, "DWORD")
ogSetRegistryValue(MNTDIR, "SYSTEM", FULLK, '0')
print(f" * {C} {K} enabled")
elif OSTYPE == "Linux":
print("Versión de Sistema Operativo GNU/Linux no soportado")
else:
print("Sistema Operativo no soportado")
if __name__ == "__main__":
main()