1 | import os |
---|
2 | import sys |
---|
3 | |
---|
4 | from engine.FileLib import * |
---|
5 | from engine.InventoryLib import * |
---|
6 | from engine.NetLib import * |
---|
7 | from engine.RegistryLib import * |
---|
8 | from engine.SystemLib import * |
---|
9 | |
---|
10 | def ogCleanOs(): |
---|
11 | # Si se solicita, mostrar ayuda. |
---|
12 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
13 | ogHelp("ogCleanOs", "ogCleanOs int_ndisk int_nfilesys", "ogCleanOs 1 1") |
---|
14 | return |
---|
15 | |
---|
16 | # Error si no se reciben 2 parámetros. |
---|
17 | if len(sys.argv) != 3: |
---|
18 | ogRaiseError(OG_ERR_FORMAT, "ogCleanOs int_ndisk int_nfilesys") |
---|
19 | return |
---|
20 | |
---|
21 | os_type = ogGetOsType(sys.argv[1], sys.argv[2]) |
---|
22 | |
---|
23 | if os_type == "Linux": |
---|
24 | # Borramos los ficheros de dispositivos y los temporales. |
---|
25 | ogCleanLinuxDevices(sys.argv[1], sys.argv[2]) |
---|
26 | os.system("rm -rf " + ogMount(sys.argv[1], sys.argv[2]) + "/tmp/*") |
---|
27 | elif os_type == "Windows": |
---|
28 | # Borrar ficheros de hibernación y paginación de Windows. |
---|
29 | if ogGetPath(sys.argv[1], sys.argv[2], "pagefile.sys"): |
---|
30 | ogDeleteFile(sys.argv[1], sys.argv[2], "pagefile.sys") |
---|
31 | if ogGetPath(sys.argv[1], sys.argv[2], "hiberfil.sys"): |
---|
32 | ogDeleteFile(sys.argv[1], sys.argv[2], "hiberfil.sys") |
---|
33 | if ogGetPath(sys.argv[1], sys.argv[2], "swapfile.sys"): |
---|
34 | ogDeleteFile(sys.argv[1], sys.argv[2], "swapfile.sys") |
---|
35 | |
---|
36 | def ogInstallMiniSetup(): |
---|
37 | # Si se solicita, mostrar ayuda. |
---|
38 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
39 | ogHelp("ogInstallMiniSetup", "ogInstallFirstBoot ogInstallRunonce") |
---|
40 | return |
---|
41 | |
---|
42 | if len(sys.argv) == 4: |
---|
43 | # Ejecución en el primer arranque de la máquina. |
---|
44 | ogInstallFirstBoot(sys.argv[1], sys.argv[2], sys.argv[3]) |
---|
45 | elif len(sys.argv) == 7 or len(sys.argv) == 9: |
---|
46 | # Ejecución en el "runonce". |
---|
47 | ogInstallRunonce(*sys.argv[1:]) |
---|
48 | else: |
---|
49 | ogRaiseError(OG_ERR_FORMAT) |
---|
50 | |
---|
51 | def ogInstallFirstBoot(): |
---|
52 | # Si se solicita, mostrar ayuda. |
---|
53 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
54 | ogHelp("ogInstallFirstBoot", "ogInstallFirstBoot int_ndisk int_npartition str_filename", "ogInstallFirstBoot 1 1 filename.cmd") |
---|
55 | return |
---|
56 | |
---|
57 | # Error si no se reciben 3 parámetros. |
---|
58 | if len(sys.argv) != 4: |
---|
59 | ogRaiseError(OG_ERR_FORMAT) |
---|
60 | return |
---|
61 | |
---|
62 | MNTDIR = ogMount(sys.argv[1], sys.argv[2]) |
---|
63 | if not MNTDIR: |
---|
64 | return |
---|
65 | |
---|
66 | for i in ["winnt", "windows"]: |
---|
67 | DIR = ogGetPath(os.path.join(MNTDIR, i, "system32")) |
---|
68 | if DIR: |
---|
69 | CMDDIR = DIR |
---|
70 | break |
---|
71 | else: |
---|
72 | ogRaiseError(OG_ERR_NOTFOUND, os.path.join(MNTDIR, "windows", "system32")) |
---|
73 | return |
---|
74 | |
---|
75 | CMDFILE = os.path.join(CMDDIR, sys.argv[3]) |
---|
76 | |
---|
77 | # Creamos el archivo cmd y creamos un par de comandos para que una vez acabe la |
---|
78 | # postconfiguracion resetee el mini setup, sino lo haria en cada arranque. |
---|
79 | with open(CMDFILE, "w") as f: |
---|
80 | f.write("""REG ADD HKLM\System\Setup /v SystemSetupInProgress /t REG_DWORD /d 0 /f |
---|
81 | REG ADD HKLM\System\Setup /v CmdLine /t REG_SZ /d "" /f""") |
---|
82 | |
---|
83 | # Crear los valores de registro necesarios para que se haga la ejecución del .cmd al aranque. |
---|
84 | ogSetRegistryValue(MNTDIR, "SYSTEM", "\\Setup\\SystemSetupInProgress", 1) |
---|
85 | ogSetRegistryValue(MNTDIR, "SYSTEM", "\\Setup\\SetupType", 4) |
---|
86 | #ogDeleteRegistryValue(MNTDIR, "SYSTEM", "\\Setup\\CmdLine") |
---|
87 | ogAddRegistryValue(MNTDIR, "SYSTEM", "\\Setup\\CmdLine") |
---|
88 | ogSetRegistryValue(MNTDIR, "SYSTEM", "\\Setup\\CmdLine", "cmd.exe /c " + os.path.basename(CMDFILE)) |
---|
89 | |
---|
90 | def ogInstallRunonce(): |
---|
91 | # Si se solicita, mostrar ayuda. |
---|
92 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
93 | ogHelp("ogInstallRunonce", "ogInstallRunonce int_ndisk int_npartition str_filename str_adm_user str_adm_password bool_autologin [str_auto_user str_auto_password]", "ogInstallRunonce 1 1 filename.cmd administrator passadmin 1 userauto passuserauto", "ogInstallRunonce 1 1 filename.cmd administrator passadmin 0") |
---|
94 | return |
---|
95 | |
---|
96 | # Error si no se reciben 6 u 8 parámetros. |
---|
97 | if len(sys.argv) != 6 and len(sys.argv) != 8: |
---|
98 | ogRaiseError(OG_ERR_FORMAT) |
---|
99 | return |
---|
100 | |
---|
101 | MOUNTPOINT = ogGetPath(sys.argv[1], sys.argv[2], "/") |
---|
102 | CMDDIR = None |
---|
103 | |
---|
104 | # Comprobar que existe el directorio del fichero de comandos. |
---|
105 | for i in ["winnt", "windows"]: |
---|
106 | DIR = ogGetPath(os.path.join(MOUNTPOINT, i, "system32")) |
---|
107 | if DIR: |
---|
108 | CMDDIR = DIR |
---|
109 | break |
---|
110 | |
---|
111 | if not CMDDIR: |
---|
112 | ogRaiseError(OG_ERR_NOTFOUND, os.path.join(MOUNTPOINT, "Windows", "System32")) |
---|
113 | return |
---|
114 | |
---|
115 | CMDFILE = os.path.join(CMDDIR, sys.argv[3]) |
---|
116 | |
---|
117 | if sys.argv[6] == "0": |
---|
118 | # Si no queremos hacer autologin despues de la postconfiguracion lo indicamos en las claves de registro |
---|
119 | with open(CMDFILE, "w") as f: |
---|
120 | f.write("""DEL C:\ogboot.* |
---|
121 | REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 0 /f |
---|
122 | REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "" /f |
---|
123 | REG DELETE "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /f""") |
---|
124 | else: |
---|
125 | # Si queremos hacer autologin despues de la postconfiguracion introducimos la informacion en las claves de registro |
---|
126 | with open(CMDFILE, "w") as f: |
---|
127 | f.write(f"""DEL C:\ogboot.* |
---|
128 | REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 /f |
---|
129 | REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "{sys.argv[7]}" /f |
---|
130 | REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "{sys.argv[8]}" /f""") |
---|
131 | |
---|
132 | # Creamos las claves de registro necesarias para que meter el cmd en el runonce del usuario y este haga autologin |
---|
133 | ogAddRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows\\CurrentVersion\\RunOnce\\PostConfiguracion") |
---|
134 | ogSetRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows\\CurrentVersion\\RunOnce\\PostConfiguracion", f"C:\\windows\\system32\\{sys.argv[3]}") |
---|
135 | ogAddRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\AutoAdminLogon") |
---|
136 | ogSetRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\AutoAdminLogon", "1") |
---|
137 | ogAddRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultUserName") |
---|
138 | ogSetRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultUserName", sys.argv[4]) |
---|
139 | ogAddRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultDomainName") |
---|
140 | ogSetRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultDomainName", ".\\") |
---|
141 | ogAddRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultPassword") |
---|
142 | ogSetRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\DefaultPassword", sys.argv[5]) |
---|
143 | ogDeleteRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\ForceAutoLockOnLogon") |
---|
144 | ogDeleteRegistryValue(MOUNTPOINT, "software", "\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\AutoLogonCount") |
---|
145 | |
---|
146 | def ogAddCmd(): |
---|
147 | # Si se solicita, mostrar ayuda. |
---|
148 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
149 | ogHelp("ogAddCmd", "ogAddCmd int_ndisk int_npartition str_filename str_commands", "ogAddCmd 1 1 filename.cmd command") |
---|
150 | return |
---|
151 | |
---|
152 | # Error si no se reciben 4 parámetros. |
---|
153 | if len(sys.argv) != 5: |
---|
154 | ogRaiseError(OG_ERR_FORMAT) |
---|
155 | return |
---|
156 | |
---|
157 | MOUNTPOINT = ogMount(sys.argv[1], sys.argv[2]) |
---|
158 | if not MOUNTPOINT: |
---|
159 | return |
---|
160 | |
---|
161 | # Crear fichero de comandos, si no existe. |
---|
162 | CMDFILE = ogGetPath(os.path.join(MOUNTPOINT, "windows", "system32"), sys.argv[3]) |
---|
163 | if not CMDFILE: |
---|
164 | ogInstallMiniSetup(sys.argv[1], sys.argv[2], sys.argv[3]) |
---|
165 | CMDFILE = ogGetPath(os.path.join(MOUNTPOINT, "windows", "system32"), sys.argv[3]) |
---|
166 | if not CMDFILE: |
---|
167 | ogRaiseError(OG_ERR_NOTFOUND, os.path.join(MOUNTPOINT, "windows", "system32", sys.argv[3])) |
---|
168 | return |
---|
169 | |
---|
170 | # Concatenamos el comando en el fichero de comandos |
---|
171 | with open(CMDFILE, "a") as f: |
---|
172 | f.write(sys.argv[4]) |
---|
173 | |
---|
174 | def ogDomainScript(): |
---|
175 | # Si se solicita, mostrar ayuda. |
---|
176 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
177 | ogHelp("ogDomainScript", "ogDomainScript int_ndisk int_npartition str_filename str_domain str_user str_password", "ogDomainScript 1 1 filename.cmd domain user password_user") |
---|
178 | return |
---|
179 | |
---|
180 | # Error si no se reciben 6 parámetros. |
---|
181 | if len(sys.argv) != 7: |
---|
182 | ogRaiseError(OG_ERR_FORMAT) |
---|
183 | return |
---|
184 | |
---|
185 | MOUNTPOINT = ogMount(sys.argv[1], sys.argv[2]) |
---|
186 | if not MOUNTPOINT: |
---|
187 | return |
---|
188 | |
---|
189 | # Comprobar que existe el directorio de comandos. |
---|
190 | CMDDIR = ogGetPath(os.path.join(MOUNTPOINT, "windows", "system32")) |
---|
191 | if not CMDDIR: |
---|
192 | ogRaiseError(OG_ERR_NOTFOUND, os.path.join(sys.argv[1], "windows", "system32")) |
---|
193 | return |
---|
194 | |
---|
195 | # Añadimos en el cmd que se ejecutara al arranque, el comando de ejecutar el script que añade al dominio. |
---|
196 | ogAddCmd(sys.argv[1], sys.argv[2], sys.argv[3], "CSCRIPT joindomain.vbs") |
---|
197 | # Eliminamos el script porque tiene el usuario de administrador de dominio en claro |
---|
198 | ogAddCmd(sys.argv[1], sys.argv[2], sys.argv[3], "DEL /Q C:\\Windows\\System32\\joindomain.vbs") |
---|
199 | # Metemos unas claves de registro para que el dominio salga seleccionado por defecto |
---|
200 | ogAddCmd(sys.argv[1], sys.argv[2], sys.argv[3], f"REG ADD \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\" /v DefaultDomainName /t REG_SZ /d \"{sys.argv[4]}\" /f") |
---|
201 | |
---|
202 | # Creamos el archivo joindomain.vbs que nos introduce la maquina en el dominio |
---|
203 | with open(os.path.join(CMDDIR, "joindomain.vbs"), "w") as f: |
---|
204 | f.write(f"""Const JOIN_DOMAIN = 1 |
---|
205 | Const ACCT_CREATE = 2 |
---|
206 | Const ACCT_DELETE = 4 |
---|
207 | Const WIN9X_UPGRADE = 16 |
---|
208 | Const DOMAIN_JOIN_IF_JOINED = 32 |
---|
209 | Const JOIN_UNSECURE = 64 |
---|
210 | Const MACHINE_PASSWORD_PASSED = 128 |
---|
211 | Const DEFERRED_SPN_SET = 256 |
---|
212 | Const INSTALL_INVOCATION = 262144 |
---|
213 | |
---|
214 | strDomain = "{sys.argv[4]}" |
---|
215 | strUser = "{sys.argv[5]}" |
---|
216 | strPassword = "{sys.argv[6]}" |
---|
217 | |
---|
218 | Set objNetwork = CreateObject("WScript.Network") |
---|
219 | strComputer = objNetwork.ComputerName |
---|
220 | |
---|
221 | Set objComputer = GetObject("winmgmts:{{impersonationLevel=Impersonate}}!\\\\\" & _ |
---|
222 | strComputer & "\\root\\cimv2:Win32_ComputerSystem.Name='" & strComputer & "'") |
---|
223 | |
---|
224 | ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, strPassword, _ |
---|
225 | strDomain & "\\" & strUser, NULL, JOIN_DOMAIN + ACCT_CREATE)""") |
---|
226 | |
---|
227 | def ogConfigureOgagent(): |
---|
228 | # Si se solicita, mostrar ayuda. |
---|
229 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
230 | ogHelp("ogConfigureOgagent", "ogConfigureOgagent int_ndisk int_nfilesys", "ogConfigureOgagent 1 1") |
---|
231 | return |
---|
232 | |
---|
233 | # Error si no se reciben 2 parámetros. |
---|
234 | if len(sys.argv) != 3: |
---|
235 | ogRaiseError(OG_ERR_FORMAT, "ogConfigureOgagent int_ndisk int_nfilesys") |
---|
236 | return |
---|
237 | |
---|
238 | MNTDIR = ogMount(sys.argv[1], sys.argv[2]) |
---|
239 | if not MNTDIR: |
---|
240 | return |
---|
241 | |
---|
242 | # Comprobar si existe el fichero de configuración de OGAgent. |
---|
243 | for AGENTDIR in ["usr/share/OGAgent", "Program Files/OGAgent", "Program Files (x86)/OGAgent", "Applications/OGAgent.app"]: |
---|
244 | CFGFILE = ogGetPath(os.path.join(MNTDIR, AGENTDIR, "cfg", "ogagent.cfg")) |
---|
245 | if CFGFILE: |
---|
246 | break |
---|
247 | else: |
---|
248 | ogRaiseError(OG_ERR_NOTFOUND, "ogagent.cfg") |
---|
249 | return |
---|
250 | |
---|
251 | # Parchear dirección del servidor OpenGnsys en el fichero de configuración de OGAgent. |
---|
252 | with open(CFGFILE, "r") as f: |
---|
253 | lines = f.readlines() |
---|
254 | with open(CFGFILE, "w") as f: |
---|
255 | for line in lines: |
---|
256 | if line.startswith("remote="): |
---|
257 | line = "remote=https://" + ogGetServerIp() + "/opengnsys/rest/\n" |
---|
258 | f.write(line) |
---|
259 | |
---|
260 | def ogInstallLaunchDaemon(): |
---|
261 | # Si se solicita, mostrar ayuda. |
---|
262 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
263 | ogHelp("ogInstallLaunchDaemon", "ogInstallLaunchDaemon int_ndisk int_nfilesys str_scriptname", "ogInstallLaunchDaemon 1 2 postconf") |
---|
264 | return |
---|
265 | |
---|
266 | # Error si no se reciben 3 parámetros. |
---|
267 | if len(sys.argv) != 4: |
---|
268 | ogRaiseError(OG_ERR_FORMAT) |
---|
269 | return |
---|
270 | |
---|
271 | LAUNCHDIR = ogGetPath(sys.argv[1], sys.argv[2], "/Library/LaunchDaemons") |
---|
272 | if not LAUNCHDIR: |
---|
273 | ogRaiseError(OG_ERR_NOTFOUND, os.path.join(sys.argv[1], sys.argv[2], "/Library/LaunchDaemons")) |
---|
274 | return |
---|
275 | |
---|
276 | SCRIPTDIR = ogGetPath(sys.argv[1], sys.argv[2], "/usr/share") |
---|
277 | if not SCRIPTDIR: |
---|
278 | ogRaiseError(OG_ERR_NOTFOUND, os.path.join(sys.argv[1], sys.argv[2], "/usr/share")) |
---|
279 | return |
---|
280 | |
---|
281 | # Crear fichero de configuración del servicio de arranque. |
---|
282 | with open(os.path.join(LAUNCHDIR, f"es.opengnsys.{sys.argv[3]}.plist"), "w") as f: |
---|
283 | f.write("""<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
---|
284 | <plist version="1.0"> |
---|
285 | <dict> |
---|
286 | <key>Label</key> |
---|
287 | <string>es.opengnsys.{}</string> |
---|
288 | <key>ProgramArguments</key> |
---|
289 | <array> |
---|
290 | <string>{}/{}.sh</string> |
---|
291 | </array> |
---|
292 | <key>RunAtLoad</key> |
---|
293 | <true/> |
---|
294 | <key>StandardOutPath</key> |
---|
295 | <string>/var/log/{}.log</string> |
---|
296 | <key>StandardErrorPath</key> |
---|
297 | <string>/var/log/{}.err</string> |
---|
298 | <true/> |
---|
299 | </dict> |
---|
300 | </plist>""".format(sys.argv[3], SCRIPTDIR, sys.argv[3], sys.argv[3], sys.argv[3])) |
---|
301 | |
---|
302 | # Crear un fichero de script vacío. |
---|
303 | with open(os.path.join(SCRIPTDIR, f"{sys.argv[3]}.sh"), "w") as f: |
---|
304 | f.write("") |
---|
305 | os.chmod(os.path.join(SCRIPTDIR, f"{sys.argv[3]}.sh"), 0o755) |
---|
306 | |
---|
307 | def ogAddToLaunchDaemon(): |
---|
308 | # Si se solicita, mostrar ayuda. |
---|
309 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
310 | ogHelp("ogAddToLaunchDaemon", "ogAddToLaunchDaemon int_ndisk int_nfilesys str_scriptname str_command", "ogAddToLaunchDaemon 1 2 postconf \"diskutil enableJournal disk0s2\"") |
---|
311 | return |
---|
312 | |
---|
313 | # Error si no se reciben 4 parámetros. |
---|
314 | if len(sys.argv) != 5: |
---|
315 | ogRaiseError(OG_ERR_FORMAT) |
---|
316 | return |
---|
317 | |
---|
318 | SCRIPTDIR = ogGetPath(sys.argv[1], sys.argv[2], "/usr/share") |
---|
319 | if not SCRIPTDIR: |
---|
320 | ogRaiseError(OG_ERR_NOTFOUND, os.path.join(sys.argv[1], sys.argv[2], "/usr/share")) |
---|
321 | return |
---|
322 | |
---|
323 | # Comprobar que existe el fichero de comandos. |
---|
324 | SCRIPTFILE = os.path.join(SCRIPTDIR, sys.argv[3] + ".sh") |
---|
325 | if not os.path.exists(SCRIPTFILE): |
---|
326 | ogRaiseError(OG_ERR_NOTFOUND, SCRIPTFILE) |
---|
327 | return |
---|
328 | |
---|
329 | # Concatenamos el comando en el fichero de comandos |
---|
330 | with open(SCRIPTFILE, "a") as f: |
---|
331 | f.write(sys.argv[4] + "\n") |
---|
332 | |
---|
333 | def ogUninstallLinuxClient(): |
---|
334 | # Si se solicita, mostrar ayuda. |
---|
335 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
336 | ogHelp("ogUninstallLinuxClient", "ogUninstallLinuxClient int_ndisk int_filesys", "ogUninstallLinuxClient 1 1") |
---|
337 | return |
---|
338 | |
---|
339 | # Error si no se reciben 2 parámetros. |
---|
340 | if len(sys.argv) != 3: |
---|
341 | ogRaiseError(OG_ERR_FORMAT) |
---|
342 | return |
---|
343 | |
---|
344 | MNTDIR = ogMount(sys.argv[1], sys.argv[2]) |
---|
345 | if not MNTDIR: |
---|
346 | return |
---|
347 | |
---|
348 | # Borrar ficheros y quitar llamada al cliente durante el proceso de inicio. |
---|
349 | os.system(f"rm -f {MNTDIR}/{{usr/sbin,sbin,usr/local/sbin}}/ogAdmLnxClient") |
---|
350 | os.system(f"rm -f {MNTDIR}/{{etc,usr/local/etc}}/ogAdmLnxClient.cfg") |
---|
351 | os.system(f"sed -i -e '/ogAdmLnxClient/ d' {MNTDIR}/{{etc,usr/local/etc}}/{{rc.local,rc.d/rc.local}} 2>/dev/null") |
---|
352 | |
---|
353 | def ogUninstallWindowsClient(): |
---|
354 | # Si se solicita, mostrar ayuda. |
---|
355 | if len(sys.argv) > 1 and sys.argv[1] == "help": |
---|
356 | ogHelp("ogUninstallWindowsClient", "ogUninstallWindowsClient int_ndisk int_filesys str_filename", "ogUninstallWindowsClient 1 1 filename.cmd") |
---|
357 | return |
---|
358 | |
---|
359 | # Error si no se reciben 3 parámetros. |
---|
360 | if len(sys.argv) != 4: |
---|
361 | ogRaiseError(OG_ERR_FORMAT) |
---|
362 | return |
---|
363 | |
---|
364 | MNTDIR = ogMount(sys.argv[1], sys.argv[2]) |
---|
365 | if not MNTDIR: |
---|
366 | return |
---|
367 | |
---|
368 | # Crear órdenes para desinstalar servicio y borrar ejecutable del cliente. |
---|
369 | if ogGetPath(MNTDIR, "windows", "ogAdmWinClient.exe") or ogGetPath(MNTDIR, "winnt", "ogAdmWinClient.exe"): |
---|
370 | ogAddCmd(sys.argv[1], sys.argv[2], sys.argv[3], 'ogAdmWinClient -remove') |
---|
371 | ogAddCmd(sys.argv[1], sys.argv[2], sys.argv[3], 'DEL C:\\Windows\\ogAdmWinClient.exe') |
---|
372 | ogAddCmd(sys.argv[1], sys.argv[2], sys.argv[3], 'DEL C:\\Winnt\\ogAdmWinClient.exe') |
---|