[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 /* $Id: action_unattend_xp_tftp.php 6533 2011-10-21 16:45:49Z olikin $ 3 =========================================== 4 Projet SE3 5 Dispositif SE3+TFTP+Sauvegarde/Restauration/Clonage 6 Stephane Boireau 7 Distribué selon les termes de la licence GPL 8 ============================================= 9 */ 10 11 // loading libs and init 12 include "entete.inc.php"; 13 include "ldap.inc.php"; 14 include "ihm.inc.php"; 15 //require_once "../dhcp/dhcpd.inc.php"; 16 include "printers.inc.php"; 17 18 require ("lib_action_tftp.php"); 19 20 //aide 21 $_SESSION["pageaide"]="Le_module_Clonage_des_stations#Unattend_XP"; 22 23 // On active les rapports d'erreurs: 24 //error_reporting(E_ALL); 25 26 // Bibliothèque prototype Ajax pour afficher en décalé l'état des machines: 27 echo "<script type='text/javascript' src='../includes/prototype.js'></script>\n"; 28 29 // CSS pour mes tableaux: 30 echo "<link type='text/css' rel='stylesheet' href='tftp.css' />\n"; 31 32 if (is_admin("system_is_admin",$login)=="Y") 33 { 34 // Choix des parcs: 35 $parc=isset($_POST['parc']) ? $_POST['parc'] : (isset($_GET['parc']) ? $_GET['parc'] : NULL); 36 // Choix des machines: 37 $id_machine=isset($_POST['id_machine']) ? $_POST['id_machine'] : (isset($_GET['id_machine']) ? $_GET['id_machine'] : NULL); 38 39 $parametrage_action=isset($_POST['parametrage_action']) ? $_POST['parametrage_action'] : (isset($_GET['parametrage_action']) ? $_GET['parametrage_action'] : NULL); 40 41 42 // Création de la table dès que possible: 43 creation_tftp_tables(); 44 45 // Paramètres SliTaz: 46 /* 47 $nom_image=isset($_POST['nom_image']) ? $_POST['nom_image'] : (isset($_GET['nom_image']) ? $_GET['nom_image'] : NULL); 48 $src_part=isset($_POST['src_part']) ? $_POST['src_part'] : (isset($_GET['src_part']) ? $_GET['src_part'] : NULL); 49 $dest_part=isset($_POST['dest_part']) ? $_POST['dest_part'] : (isset($_GET['dest_part']) ? $_GET['dest_part'] : NULL); 50 */ 51 //$auto_reboot=isset($_POST['auto_reboot']) ? $_POST['auto_reboot'] : (isset($_GET['auto_reboot']) ? $_GET['auto_reboot'] : NULL); 52 //$delais_reboot=isset($_POST['delais_reboot']) ? $_POST['delais_reboot'] : (isset($_GET['delais_reboot']) ? $_GET['delais_reboot'] : NULL); 53 54 // Paramètres concernant l'action immédiate sur les machines choisies: 55 $wake=isset($_POST['wake']) ? $_POST['wake'] : (isset($_GET['wake']) ? $_GET['wake'] : "n"); 56 $shutdown_reboot=isset($_POST['shutdown_reboot']) ? $_POST['shutdown_reboot'] : (isset($_GET['shutdown_reboot']) ? $_GET['shutdown_reboot'] : NULL); 57 58 59 echo "<h1>".gettext("Action Unattend XP")."</h1>\n"; 60 61 if(!isset($parc)){ 62 echo "<p>Cette page doit vous permettre de programmer une installation de XP via Unattended sur les machines choisies.</p>\n"; 63 64 echo "<p>Choisissez un ou des parcs:</p>\n"; 65 66 $list_parcs=search_machines("objectclass=groupOfNames","parcs"); 67 if ( count($list_parcs)==0) { 68 echo "<br><br>"; 69 echo gettext("Il n'existe aucun parc. Vous devez d'abord créer un parc"); 70 include ("pdp.inc.php"); 71 exit; 72 } 73 sort($list_parcs); 74 75 echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n"; 76 77 // Affichage des parcs sur 3/4 colonnes 78 $nb_parcs_par_colonne=round(count($list_parcs)/3); 79 echo "<table border='0'>\n"; 80 echo "<tr valign='top'>\n"; 81 echo "<td> </td>\n"; 82 echo "<td align='left'>\n"; 83 for ($loop=0; $loop < count($list_parcs); $loop++) { 84 if(($loop>0)&&(round($loop/$nb_parcs_par_colonne)==$loop/$nb_parcs_par_colonne)){ 85 echo "</td>\n"; 86 echo "<td align='left'>\n"; 87 } 88 89 echo "<label for='parc_$loop'><input type='checkbox' id='parc_$loop' name='parc[]' value=\"".$list_parcs[$loop]["cn"]."\" />".$list_parcs[$loop]["cn"]."</label>\n"; 90 echo "<br />\n"; 91 } 92 93 echo "</td>\n"; 94 echo "</tr>\n"; 95 echo "</table>\n"; 96 97 echo "<p align='center'><input type=\"submit\" name=\"submit\" value=\"Valider\" /></p>\n"; 98 99 echo "</form>\n"; 100 101 echo "<p><a href='index.php'>Retour à l'index</a>.</p>\n"; 102 } 103 else { 104 if(!isset($_POST['parametrage_action'])){ 105 106 echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n"; 107 echo "<input type=\"hidden\" name=\"parametrage_action\" value=\"1\" />\n"; 108 $max_eff_parc=0; 109 for($i=0;$i<count($parc);$i++){ 110 111 echo "<h2>Parc $parc[$i]</h2>\n"; 112 echo "<input type=\"hidden\" name=\"parc[]\" value=\"$parc[$i]\" />\n"; 113 114 $mp=gof_members($parc[$i],"parcs",1); 115 $nombre_machine=count($mp); 116 sort($mp); 117 118 //echo "<table border='1'>\n"; 119 echo "<table class='crob'>\n"; 120 echo "<tr>\n"; 121 122 echo "<th>Nom</th>\n"; 123 echo "<th>Etat</th>\n"; 124 echo "<th>Session</th>\n"; 125 echo "<th>Config DHCP</th>\n"; 126 127 //echo "<th>Sauvegarde</th>\n"; 128 echo "<th>Install XP unattend<br />\n"; 129 echo "<a href='#' onclick='check_machine($i,\"check\");return false'><img src=\"../elements/images/enabled.gif\" border='0' alt=\"Tout cocher\" title=\"Tout cocher\" /></a>\n"; 130 echo " / <a href='#' onclick='check_machine($i,\"uncheck\");return false'><img src=\"../elements/images/disabled.gif\" border='0' alt=\"Tout décocher\" title=\"Tout décocher\" /></a>\n"; 131 echo "</th>\n"; 132 echo "<th>Actions programmées</th>\n"; 133 echo "</tr>\n"; 134 135 for ($loop=0; $loop < count($mp); $loop++) { 136 $mpenc=urlencode($mp[$loop]); 137 138 // Test si on a une imprimante ou une machine 139 $resultat=search_imprimantes("printer-name=$mpenc","printers"); 140 $suisje_printer="non"; 141 for ($loopp=0; $loopp < count($resultat); $loopp++) { 142 if ($mpenc==$resultat[$loopp]['printer-name']) { 143 $suisje_printer="yes"; 144 continue; 145 } 146 } 147 148 if($suisje_printer=="non") { 149 // Réinitialisation: 150 $id_machine=""; 151 152 echo "<tr>\n"; 153 echo "<td width='20%'>".$mp[$loop]."</td>\n"; 154 155 // Etat: allumé ou éteint 156 echo "<td width='20%'>"; 157 $mp_curr=search_machines2("(&(cn=$mpenc)(objectClass=ipHost))","computers"); 158 if ($mp_curr[0]["ipHostNumber"]) { 159 $iphost=$mp_curr[0]["ipHostNumber"]; 160 161 echo "<div id='divip$loop'>Patientez</div>\n"; 162 echo "<script type='text/javascript'> 163 // <![CDATA[ 164 new Ajax.Updater($('divip$loop'),'ajax_lib.php?ip=$iphost&mode=ping_ip',{method: 'get'}); 165 //]]> 166 </script>\n"; 167 } 168 echo "</td>\n"; 169 170 171 // Session: ouverte ou pas... sous quelle identité 172 echo "<td width='20%'>\n"; 173 echo "<div id='divsession$loop'>Patientez</div>\n"; 174 echo "<script type='text/javascript'> 175 // <![CDATA[ 176 new Ajax.Updater($('divsession$loop'),'ajax_lib.php?nom_machine=".$mp[$loop]."&mode=session',{method: 'get'}); 177 //]]> 178 </script>\n"; 179 echo "</td>\n"; 180 181 182 // Etat config DHCP: 183 // Par la suite il ne faudra pas prendre les IP dans l'annuaire, 184 // mais dans la config DHCP parce que ce sont ces IP qui seront attribuées lors du boot PXE 185 echo "<td width='20%'>\n"; 186 //$mp_curr=search_machines("(&(cn=$mpenc)(objectClass=ipHost))","computers"); 187 if ($mp_curr[0]["macAddress"]) { 188 $sql="SELECT * FROM se3_dhcp WHERE mac='".$mp_curr[0]["macAddress"]."';"; 189 // mp_curr[0]["macAddress"] correspond à une adresse mac recherchée dans l'annuaire LDAP. 190 // Si les machines ont été changées et que l'on a ré-attribué le nom, il faut penser à nettoyer l'entrée dans l'annuaire: 191 // source /usr/share/se3/sbin/variables_admin_ldap.sh 192 // ldapdelete -x -D $ROOTDN -w $PASSDN cn=NOM_MACHINE,ou=Computers,$BASEDN 193 // Et se reconnecter une fois sur la machine pour que le connexion.pl renseigne une nouvelle entrée cn=NOM_MACHINE 194 //echo "$sql<br />"; 195 $res=mysql_query($sql); 196 if(mysql_num_rows($res)>0) { 197 $lig=mysql_fetch_object($res); 198 $id_machine=$lig->id; 199 200 //echo $lig->ip; 201 echo "<img src=\"../elements/images/enabled.gif\" border='0' alt=\"$lig->ip\" title=\"$lig->ip\" />"; 202 } 203 else { 204 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'adresse IP attribuée\" title=\"Pas d'adresse IP attribuée\" />"; 205 } 206 } 207 else { 208 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'adresse MAC dans l'annuaire???\" title=\"Pas d'adresse MAC dans l'annuaire???\" />"; 209 } 210 echo "</td>\n"; 211 212 213 // Sélection des machines à sauvegarder: 214 echo "<td width='20%'>\n"; 215 /* 216 foreach($mp_curr[0] as $champ => $valeur) { 217 echo "\$mp_curr[0]['$champ']=$valeur<br />"; 218 } 219 */ 220 if($id_machine!=""){ 221 echo "<input type='checkbox' name='id_machine[]' id='machine_".$i."_".$loop."' value='$id_machine' />\n"; 222 } 223 else { 224 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Il faut commencer par effectuer la configuration DHCP\" title=\"Il faut commencer par effectuer la configuration DHCP\" />"; 225 } 226 echo "</td>\n"; 227 228 229 // Action programmée 230 echo "<td>\n"; 231 if($id_machine!=""){ 232 $sql="SELECT * FROM se3_tftp_action WHERE id='".$id_machine."';"; 233 $res=mysql_query($sql); 234 if(mysql_num_rows($res)>0) { 235 $lig=mysql_fetch_object($res); 236 echo "<a href='visu_action.php?id_machine=$id_machine' target='_blank'>$lig->type programmé(e)</a>"; 237 } 238 else { 239 echo "<img src=\"../elements/images/disabled.gif\" border='0' alt=\"Pas d'action programmée\" title=\"Pas d'action programmée\" />"; 240 } 241 } 242 echo "</td>\n"; 243 244 echo "</tr>\n"; 245 } 246 } 247 echo "</table>\n"; 248 if($max_eff_parc<$loop) {$max_eff_parc=$loop;} 249 } 250 251 echo "<script type='text/javascript'> 252 function check_machine(num_parc,mode) { 253 for(i=0;i<$max_eff_parc;i++){ 254 if(document.getElementById('machine_'+num_parc+'_'+i)){ 255 if(mode=='check'){ 256 document.getElementById('machine_'+num_parc+'_'+i).checked=true; 257 } 258 else{ 259 document.getElementById('machine_'+num_parc+'_'+i).checked=false; 260 } 261 } 262 } 263 } 264 </script>\n"; 265 266 echo "<p align='center'><input type=\"submit\" name=\"submit\" value=\"Valider\" /></p>\n"; 267 echo "</form>\n"; 268 269 270 } 271 else { 272 $validation_parametres=isset($_POST['validation_parametres']) ? $_POST['validation_parametres'] : (isset($_GET['validation_parametres']) ? $_GET['validation_parametres'] : NULL); 273 if(!isset($validation_parametres)) { 274 echo "<h2>Paramétrage du lancement de l'installation</h2>\n"; 275 276 $nombre_machines=count($id_machine); 277 if($nombre_machines==0){ 278 echo "<p>ERREUR: Il faut choisir au moins une machine.</p>\n"; 279 280 echo "<p><a href='#' onclick='history.go(-1);'>Retour au choix des machines sur lesquelles installer XP.</a>.</p>\n"; 281 282 echo "<p><a href='".$_SERVER['PHP_SELF']."'>Retour au choix du/des parc(s)</a>.</p>\n"; 283 include ("pdp.inc.php"); 284 exit(); 285 } 286 287 echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">\n"; 288 echo "<input type=\"hidden\" name=\"parametrage_action\" value=\"1\" />\n"; 289 // Liste des parcs: 290 for($i=0;$i<count($parc);$i++){ 291 echo "<input type=\"hidden\" name=\"parc[]\" value=\"$parc[$i]\" />\n"; 292 } 293 294 // Liste des machines sur lesquelles lancer l'install: 295 $chaine=""; 296 for($i=0;$i<count($id_machine);$i++){ 297 if($i>0) {$chaine.=", ";} 298 $sql="SELECT * FROM se3_dhcp WHERE id='".$id_machine[$i]."';"; 299 //echo "$sql<br />"; 300 $res=mysql_query($sql); 301 if(mysql_num_rows($res)>0) { 302 $lig=mysql_fetch_object($res); 303 $chaine.=$lig->name; 304 echo "<input type=\"hidden\" name=\"id_machine[]\" value=\"$id_machine[$i]\" />\n"; 305 } 306 } 307 if(count($id_machine)>1){$s="s";}else{$s="";} 308 echo "<p>Machine$s concernée$s: $chaine</p>\n"; 309 310 311 // Date pour le nom de l'image à générer: 312 $aujourdhui = getdate(); 313 $mois_se3 = sprintf("%02d",$aujourdhui['mon']); 314 $jour_se3 = sprintf("%02d",$aujourdhui['mday']); 315 $annee_se3 = $aujourdhui['year']; 316 $heure_se3 = sprintf("%02d",$aujourdhui['hours']); 317 $minute_se3 = sprintf("%02d",$aujourdhui['minutes']); 318 $seconde_se3 = sprintf("%02d",$aujourdhui['seconds']); 319 320 $date_se3=$annee_se3.$mois_se3.$jour_se3; 321 322 echo "<p>Choisissez les paramètres pour le lancement de l'installation: <br />\n"; 323 324 echo "<style type='text/css'> 325 table.crob { 326 border-style: solid; 327 border-width: 1px; 328 border-color: black; 329 border-collapse: collapse; 330 } 331 332 .crob th { 333 border-style: solid; 334 border-width: 1px; 335 border-color: black; 336 background-color: khaki; 337 font-weight:bold; 338 text-align:center; 339 vertical-align: middle; 340 } 341 342 .crob td { 343 text-align:center; 344 vertical-align: middle; 345 border-style: solid; 346 border-width: 1px; 347 border-color: black; 348 } 349 350 .crob .lig-1 { 351 background-color: #6699cc; 352 } 353 .crob .lig1 { 354 background-color: #FFFFFF; 355 } 356 </style>\n"; 357 358 echo "<table border='1' class='crob'>\n"; 359 360 //=========================================================== 361 echo "<tr>\n"; 362 echo "<td valign='top'>Partitionnement</td>\n"; 363 echo "<td valign='top'>\n"; 364 echo "<table>\n"; 365 echo "<tr>\n"; 366 367 echo "<td valign='top'>Partitionnement :</td>\n"; 368 echo "<td style='text-align:left;'>\n"; 369 echo "<input type='radio' name='fdisk_cmds' id='fdisk_cmds0' value='0' checked /><label for='fdisk_cmds0'> Supprimer toutes les partitions et créer une unique partition NTFS</label><br />\n"; 370 echo "<input type='radio' name='fdisk_cmds' id='fdisk_cmds1' value='1' /><label for='fdisk_cmds1'> Formater puis installer sur la première partition principale sans toucher à la table de partitions</label><br />\n"; 371 echo "<input type='radio' name='fdisk_cmds' id='fdisk_cmds2' value='2' /><label for='fdisk_cmds2'> Formater puis installer sur la deuxième partition principale sans toucher à la table de partitions</label><br />\n"; 372 echo "</td>\n"; 373 echo "</tr>\n"; 374 375 echo "<tr>\n"; 376 echo "<td valign='top'>Ecraser le MBR :</td>\n"; 377 echo "<td style='text-align:left;'>\n"; 378 echo "<input type='radio' name='replace_mbr' id='replace_mbr1' value='1' checked /><label for='replace_mbr1'> Oui</label><br />\n"; 379 echo "<input type='radio' name='replace_mbr' id='replace_mbr0' value='0' /><label for='replace_mbr0'> Non</label><br />\n"; 380 echo "</td>\n"; 381 echo "</tr>\n"; 382 echo "</table>\n"; 383 384 echo "</td>\n"; 385 echo "</tr>\n"; 386 //=========================================================== 387 echo "<tr>\n"; 388 echo "<td valign='top'>Display</td>\n"; 389 echo "<td align='left'>\n"; 390 echo "<table>\n"; 391 echo "<tr>\n"; 392 393 echo "<td valign='top'>Nombre de couleurs :</td>\n"; 394 echo "<td style='text-align:left;'>\n"; 395 echo "<input type='radio' name='BitsPerPel' id='BitsPerPel0' value='16' checked /><label for='BitsPerPel0'> 16</label><br />\n"; 396 echo "<input type='radio' name='BitsPerPel' id='BitsPerPel1' value='32' /><label for='BitsPerPel1'> 32</label><br />\n"; 397 echo "</td>\n"; 398 echo "</tr>\n"; 399 400 echo "<tr>\n"; 401 echo "<td valign='top'>Résolution :</td>\n"; 402 echo "<td style='text-align:left;'>\n"; 403 echo "<input type='radio' name='Xresolution' id='Xresolution800' value='800' /><label for='Xresolution800'> 800*600</label><br />\n"; 404 echo "<input type='radio' name='Xresolution' id='Xresolution1024' value='1024' checked /><label for='Xresolution1024'> 1024*768</label><br />\n"; 405 echo "<input type='radio' name='Xresolution' id='Xresolution1280' value='1280' /><label for='Xresolution1280'> 1280*800</label><br />\n"; 406 echo "</td>\n"; 407 echo "</tr>\n"; 408 echo "</table>\n"; 409 410 echo "</td>\n"; 411 echo "</tr>\n"; 412 //=========================================================== 413 echo "<tr>\n"; 414 echo "<td valign='top'>Mises à jour</td>\n"; 415 echo "<td align='left'>\n"; 416 echo "<table>\n"; 417 echo "<tr>\n"; 418 /* 419 DisableDynamicUpdates=Yes 420 Si vous mettez la valeur " Yes ", vous obligerez Windows à ne pas se connecter à Windows Update lors de son installation. 421 */ 422 echo "<td valign='top'>Ne pas se connecter à Windows Update lors de l'installation :</td>\n"; 423 echo "<td style='text-align:left;'>\n"; 424 echo "<input type='radio' name='DisableDynamicUpdates' id='DisableDynamicUpdatesYes' value='yes' /><label for='DisableDynamicUpdatesYes'> Oui</label><br />\n"; 425 echo "<input type='radio' name='DisableDynamicUpdates' id='DisableDynamicUpdatesNo' value='no' checked /><label for='DisableDynamicUpdatesNo'> Non</label><br />\n"; 426 echo "</td>\n"; 427 echo "</tr>\n"; 428 429 echo "<tr>\n"; 430 echo "<td valign='top'>Activer les mises à jour automatiques de Windows :</td>\n"; 431 echo "<td style='text-align:left;'>\n"; 432 echo "<input type='radio' name='AutomaticUpdates' id='AutomaticUpdatesYes' value='yes' checked /><label for='AutomaticUpdatesYes'> Oui</label><br />\n"; 433 echo "<input type='radio' name='AutomaticUpdates' id='AutomaticUpdatesNo' value='no' /><label for='AutomaticUpdatesNo'> Non</label><br />\n"; 434 echo "</td>\n"; 435 echo "</tr>\n"; 436 echo "</table>\n"; 437 438 echo "</td>\n"; 439 echo "</tr>\n"; 440 //=========================================================== 441 /* 442 echo "<tr>\n"; 443 echo "<td colspan='2' bgcolor='grey'>\n"; 444 echo " "; 445 echo "</td>\n"; 446 echo "</tr>\n"; 447 */ 448 //=========================================================== 449 echo "<tr>\n"; 450 echo "<td valign='top'><p>Composants Windows XP</p></td>\n"; 451 echo "<td style='text-align:left;'>\n"; 452 453 /* 454 echo "<table>\n"; 455 echo "<tr>\n"; 456 echo "<td></td>\n"; 457 echo "<td>\n"; 458 echo "</td>\n"; 459 echo "</tr>\n"; 460 echo "</table>\n"; 461 */ 462 echo "<a name='win_components'></a>"; 463 echo "<p><a href='#win_components' onclick='display_div_components();'>Sélection des composants à installer</a></p>\n"; 464 465 echo "<div id='div_components'>\n"; 466 echo "<table>\n"; 467 /* 468 echo "<tr> 469 <td width='67%'>Options d'accessibilités</td> 470 <td width='33%' style='text-align:left;'> 471 <select name='accessopt' id='accessopt'> 472 <option value='on' selected='selected'>oui</option> 473 <option value='off'>non</option> 474 </select> 475 </div></td> 476 </tr> 477 <tr> 478 <td style='text-align:left;'>Calculatrice</td> 479 <td style='text-align:center;'> 480 <select name='calc' id='calc'> 481 482 <option value='on' selected='selected'>oui</option> 483 <option value='off'>non</option> 484 </select> 485 </div></td> 486 </tr> 487 <tr> 488 <td style='text-align:left;'>Table des caractères spéciaux </td> 489 490 <td style='text-align:center;'> 491 <select name='charmap' id='charmap'> 492 <option value='on' selected='selected'>oui</option> 493 <option value='off'>non</option> 494 </select> 495 </div></td> 496 </tr> 497 498 <tr> 499 <td style='text-align:left;'>Hyper Terminal</td> 500 501 <td style='text-align:center;'> 502 <select name='hypertrm' id='hypertrm'> 503 <option value='on' selected='selected'>oui</option> 504 <option value='off'>non</option> 505 </select> 506 </div></td> 507 </tr> 508 509 <tr> 510 <td style='text-align:left;'>Chat (rien avoir avec windows messenger; utile pour les popup)</td> 511 <td style='text-align:center;'> 512 <select name='chat' id='chat'> 513 <option value='on' selected='selected'>oui</option> 514 <option value='off'>non</option> 515 </select> 516 </div></td> 517 518 </tr> 519 520 <tr> 521 <td style='text-align:left;'>Fonds d' écran standards de windows </td> 522 <td style='text-align:center;'> 523 <select name='deskpaper' id='deskpaper'> 524 <option value='on'>oui</option> 525 <option value='off' selected='selected'>non</option> 526 527 </select> 528 </div></td> 529 </tr> 530 531 <tr> 532 <td style='text-align:left;'>Utilitaire de Débogage de Microsoft </td> 533 <td style='text-align:center;'> 534 <select name='iisdbg' id='iisdbg'> 535 <option value='on'>oui</option> 536 <option value='off' selected='selected'>non</option> 537 </select> 538 </div></td> 539 </tr> 540 <tr> 541 <td style='text-align:left;'>Service d' indexation des fichiers</td> 542 <td style='text-align:center;'> 543 <select name='indexsrv_system' id='indexsrv_system'> 544 <option value='on'>oui</option> 545 <option value='off' selected='selected'>non</option> 546 547 </select> 548 </div></td> 549 </tr> 550 551 <tr> 552 <td style='text-align:left;'>Fichiers sons supplémentaires </td> 553 <td style='text-align:center;'> 554 <select name='media_clips' id='media_clips'> 555 <option value='on'>oui</option> 556 557 <option value='off' selected='selected'>non</option> 558 </select> 559 </div></td> 560 </tr> 561 <tr> 562 <td style='text-align:left;'>Fichiers sons du modèle Utopia</td> 563 <td style='text-align:center;'> 564 565 <select name='media_utopia' id='media_utopia'> 566 <option value='on'>oui</option> 567 <option value='off' selected='selected'>non</option> 568 </select> 569 </div></td> 570 </tr> 571 <tr> 572 <td style='text-align:left;'>Différents pointeurs de la souris</td> 573 <td style='text-align:center;'> 574 <select name='mousepoint' id='mousepoint'> 575 <option value='on'>oui</option> 576 <option value='off' selected='selected'>non</option> 577 </select> 578 </div></td> 579 </tr> 580 581 <tr> 582 <td style='text-align:left;'>Windows Media Player</td> 583 <td style='text-align:center;'> 584 <select name='mplay' id='mplay'> 585 <option value='on' selected='selected'>oui</option> 586 <option value='off'>non</option> 587 </select> 588 </div></td> 589 </tr> 590 591 <tr> 592 <td style='text-align:left;'>Wordpad</td> 593 <td style='text-align:center;'> 594 <select name='mswordpad' id='mswordpad'> 595 <option value='on' selected='selected'>oui</option> 596 597 <option value='off'>non</option> 598 </select> 599 </div></td> 600 </tr> 601 <tr> 602 <td style='text-align:left;'>Microsoft Paint</td> 603 <td style='text-align:center;'> 604 <select name='paint' id='paint'> 605 <option value='on' selected='selected'>oui</option> 606 <option value='off'>non</option> 607 </select> 608 </div></td> 609 </tr> 610 611 <tr> 612 <td style='text-align:left;'>Magnétophone</td> 613 <td style='text-align:center;'> 614 <select name='rec' id='rec'> 615 <option value='on' selected='selected'>oui</option> 616 <option value='off'>non</option> 617 </select> 618 </div></td> 619 620 </tr> 621 <tr> 622 <td style='text-align:left;'>Utilitaire de réglage du volume du son.</td> 623 <td style='text-align:center;'> 624 625 <select name='vol' id='vol'> 626 <option value='on' selected='selected'>oui</option> 627 <option value='off'>non</option> 628 </select> 629 </div></td> 630 </tr> 631 632 <tr> 633 <td style='text-align:left;'>Différents raccourcis d' Internet exploreur.</td> 634 <td style='text-align:center;'> 635 <select name='IEAccess' id='IEAccess'> 636 <option value='on'>oui</option> 637 <option value='off' selected='selected'>non</option> 638 </select> 639 </div></td> 640 </tr> 641 642 <tr> 643 <td style='text-align:left;'>MSN Explorer 4.7</td> 644 <td style='text-align:center;'> 645 <select name='msnexplr' id='msnexplr'> 646 <option value='on'>oui</option> 647 <option value='off' selected='selected'>non</option> 648 </select> 649 </div></td> 650 </tr> 651 <tr> 652 <td style='text-align:left;'>Installer Messenger 4.6</td> 653 <td style='text-align:center;'> 654 <select name='msmsgs' id='msmsgs'> 655 <option value='on'>oui</option> 656 <option value='off' selected='selected'>non</option> 657 </select> 658 </div></td> 659 </tr> 660 661 <tr><td colspan='2' bgcolor='#6699cc'>Jeux (Soyez sérieux...SVP)</td></tr> 662 <tr> 663 <td style='text-align:left;'>Jeu " Freecel " </td> 664 <td style='text-align:center;'> 665 <select name='freecell' id='freecell'> 666 667 <option value='on'>oui</option> 668 <option value='off' selected='selected'>non</option> 669 </select> 670 </div></td> 671 </tr> 672 <tr> 673 <td style='text-align:left;'>Jeu " le démineur"</td> 674 <td style='text-align:center;'> 675 <select name='minesweeper' id='minesweeper'> 676 <option value='on'>oui</option> 677 <option value='off' selected='selected'>non</option> 678 </select> 679 </div></td> 680 </tr> 681 <tr> 682 <td style='text-align:left;'>Jeu " pinball " </td> 683 684 <td style='text-align:center;'> 685 <select name='pinball' id='pinball'> 686 <option value='on'>oui</option> 687 <option value='off' selected='selected'>non</option> 688 </select> 689 </div></td> 690 </tr> 691 <tr> 692 <td style='text-align:left;'>Jeu " le Solitaire " </td> 693 <td style='text-align:center;'> 694 <select name='solitaire' id='solitaire'> 695 <option value='on'>oui</option> 696 <option value='off' selected='selected'>non</option> 697 </select> 698 </div></td> 699 </tr> <tr> 700 <td style='text-align:left;'>Jeu " Dame de pique " </td> 701 702 <td style='text-align:center;'> 703 <select name='hearts' id='hearts'> 704 <option value='on'>oui</option> 705 <option value='off' selected='selected'>non</option> 706 </select> 707 </div></td> 708 </tr> 709 <tr> 710 <td style='text-align:left;'>Jeu " Spider Solitaire " </td> 711 <td style='text-align:center;'> 712 <select name='spider' id='spider'> 713 714 <option value='on'>oui</option> 715 <option value='off' selected='selected'>non</option> 716 </select> 717 </div></td> 718 </tr> 719 <tr> 720 <td style='text-align:left;'>Jeux sur internet " </td> 721 722 <td style='text-align:center;'> 723 <select name='zonegames' id='zonegames'> 724 <option value='on'>oui</option> 725 <option value='off' selected='selected'>non</option> 726 </select> 727 </div></td> 728 </tr>"; 729 */ 730 echo "<tr> 731 <td style='text-align:left;'>Options d'accessibilités</td> 732 <td style='text-align:center;'> 733 <input type='radio' name='accessopt' id='accessopton' value='on' checked /><label for='accessopton'> oui</label> 734 <br /> 735 <input type='radio' name='accessopt' id='accessoptoff' value='off' /><label for='accessoptoff'> non</label> 736 <br /> 737 </div></td> 738 </tr> 739 <tr> 740 <td style='text-align:left;'>Calculatrice</td> 741 <td style='text-align:center;'> 742 <input type='radio' name='calc' id='calcon' value='on' checked /><label for='calcon'> oui</label> 743 <br /> 744 <input type='radio' name='calc' id='calcoff' value='off' /><label for='calcoff'> non</label> 745 <br /> 746 </div></td> 747 </tr> 748 <tr> 749 <td style='text-align:left;'>Table des caractères spéciaux </td> 750 <td style='text-align:center;'> 751 <input type='radio' name='charmap' id='charmapon' value='on' checked /><label for='charmapon'> oui</label> 752 <br /> 753 <input type='radio' name='charmap' id='charmapoff' value='off' /><label for='charmapoff'> non</label> 754 <br /> 755 </div></td> 756 </tr> 757 <tr> 758 <td style='text-align:left;'>Hyper Terminal</td> 759 <td style='text-align:center;'> 760 <input type='radio' name='hypertrm' id='hypertrmon' value='on' checked /><label for='hypertrmon'> oui</label> 761 <br /> 762 <input type='radio' name='hypertrm' id='hypertrmoff' value='off' /><label for='hypertrmoff'> non</label> 763 <br /> 764 </div></td> 765 </tr> 766 <tr> 767 <td style='text-align:left;'>Chat (rien avoir avec windows messenger; utile pour les popup)</td> 768 <td style='text-align:center;'> 769 <input type='radio' name='chat' id='chaton' value='on' checked /><label for='chaton'> oui</label> 770 <br /> 771 <input type='radio' name='chat' id='chatoff' value='off' /><label for='chatoff'> non</label> 772 <br /> 773 </div></td> 774 </tr> 775 <tr> 776 <td style='text-align:left;'>Fonds d' écran standards de windows </td> 777 <td style='text-align:center;'> 778 <input type='radio' name='deskpaper' id='deskpaperon' value='on' /><label for='deskpaperon'> oui</label> 779 <br /> 780 <input type='radio' name='deskpaper' id='deskpaperoff' value='off' checked /><label for='deskpaperoff'> non</label> 781 <br /> 782 </div></td> 783 </tr> 784 <tr> 785 <td style='text-align:left;'>Utilitaire de Débogage de Microsoft </td> 786 <td style='text-align:center;'> 787 <input type='radio' name='iisdbg' id='iisdbgon' value='on' /><label for='iisdbgon'> oui</label> 788 <br /> 789 <input type='radio' name='iisdbg' id='iisdbgoff' value='off' checked /><label for='iisdbgoff'> non</label> 790 <br /> 791 </div></td> 792 </tr> 793 <tr> 794 <td style='text-align:left;'>Service d' indexation des fichiers</td> 795 <td style='text-align:center;'> 796 <input type='radio' name='indexsrv_system' id='indexsrv_systemon' value='on' /><label for='indexsrv_systemon'> oui</label> 797 <br /> 798 <input type='radio' name='indexsrv_system' id='indexsrv_systemoff' value='off' checked /><label for='indexsrv_systemoff'> non</label> 799 <br /> 800 </div></td> 801 </tr> 802 <tr> 803 <td style='text-align:left;'>Fichiers sons supplémentaires </td> 804 <td style='text-align:center;'> 805 <input type='radio' name='media_clips' id='media_clipson' value='on' /><label for='media_clipson'> oui</label> 806 <br /> 807 <input type='radio' name='media_clips' id='media_clipsoff' value='off' checked /><label for='media_clipsoff'> non</label> 808 <br /> 809 </div></td> 810 </tr> 811 <tr> 812 <td style='text-align:left;'>Fichiers sons du modèle Utopia</td> 813 <td style='text-align:center;'> 814 <input type='radio' name='media_utopia' id='media_utopiaon' value='on' /><label for='media_utopiaon'> oui</label> 815 <br /> 816 <input type='radio' name='media_utopia' id='media_utopiaoff' value='off' checked /><label for='media_utopiaoff'> non</label> 817 <br /> 818 </div></td> 819 </tr> 820 <tr> 821 <td style='text-align:left;'>Différents pointeurs de la souris</td> 822 <td style='text-align:center;'> 823 <input type='radio' name='mousepoint' id='mousepointon' value='on' /><label for='mousepointon'> oui</label> 824 <br /> 825 <input type='radio' name='mousepoint' id='mousepointoff' value='off' checked /><label for='mousepointoff'> non</label> 826 <br /> 827 </div></td> 828 </tr> 829 <tr> 830 <td style='text-align:left;'>Windows Media Player</td> 831 <td style='text-align:center;'> 832 <input type='radio' name='mplay' id='mplayon' value='on' checked /><label for='mplayon'> oui</label> 833 <br /> 834 <input type='radio' name='mplay' id='mplayoff' value='off' /><label for='mplayoff'> non</label> 835 <br /> 836 </div></td> 837 </tr> 838 <tr> 839 <td style='text-align:left;'>Wordpad</td> 840 <td style='text-align:center;'> 841 <input type='radio' name='mswordpad' id='mswordpadon' value='on' checked /><label for='mswordpadon'> oui</label> 842 <br /> 843 <input type='radio' name='mswordpad' id='mswordpadoff' value='off' /><label for='mswordpadoff'> non</label> 844 <br /> 845 </div></td> 846 </tr> 847 <tr> 848 <td style='text-align:left;'>Microsoft Paint</td> 849 <td style='text-align:center;'> 850 <input type='radio' name='paint' id='painton' value='on' checked /><label for='painton'> oui</label> 851 <br /> 852 <input type='radio' name='paint' id='paintoff' value='off' /><label for='paintoff'> non</label> 853 <br /> 854 </div></td> 855 </tr> 856 <tr> 857 <td style='text-align:left;'>Magnétophone</td> 858 <td style='text-align:center;'> 859 <input type='radio' name='rec' id='recon' value='on' checked /><label for='recon'> oui</label> 860 <br /> 861 <input type='radio' name='rec' id='recoff' value='off' /><label for='recoff'> non</label> 862 <br /> 863 </div></td> 864 </tr> 865 <tr> 866 <td style='text-align:left;'>Utilitaire de réglage du volume du son.</td> 867 <td style='text-align:center;'> 868 <input type='radio' name='vol' id='volon' value='on' checked /><label for='volon'> oui</label> 869 <br /> 870 <input type='radio' name='vol' id='voloff' value='off' /><label for='voloff'> non</label> 871 <br /> 872 </div></td> 873 </tr> 874 <tr> 875 <td style='text-align:left;'>Différents raccourcis d' Internet exploreur.</td> 876 <td style='text-align:center;'> 877 <input type='radio' name='IEAccess' id='IEAccesson' value='on' /><label for='IEAccesson'> oui</label> 878 <br /> 879 <input type='radio' name='IEAccess' id='IEAccessoff' value='off' checked /><label for='IEAccessoff'> non</label> 880 <br /> 881 </div></td> 882 </tr> 883 <tr> 884 <td style='text-align:left;'>MSN Explorer 4.7</td> 885 <td style='text-align:center;'> 886 <input type='radio' name='msnexplr' id='msnexplron' value='on' /><label for='msnexplron'> oui</label> 887 <br /> 888 <input type='radio' name='msnexplr' id='msnexplroff' value='off' checked /><label for='msnexplroff'> non</label> 889 <br /> 890 </div></td> 891 </tr> 892 <tr> 893 <td style='text-align:left;'>Installer Messenger 4.6</td> 894 <td style='text-align:center;'> 895 <input type='radio' name='msmsgs' id='msmsgson' value='on' /><label for='msmsgson'> oui</label> 896 <br /> 897 <input type='radio' name='msmsgs' id='msmsgsoff' value='off' checked /><label for='msmsgsoff'> non</label> 898 <br /> 899 </div></td> 900 </tr> 901 <tr><td colspan='2' bgcolor='#6699cc'>Jeux (Soyez sérieux...SVP)</td></tr> 902 <tr> 903 <td style='text-align:left;'>Jeu " Freecel " </td> 904 <td style='text-align:center;'> 905 <input type='radio' name='freecell' id='freecellon' value='on' /><label for='freecellon'> oui</label> 906 <br /> 907 <input type='radio' name='freecell' id='freecelloff' value='off' checked /><label for='freecelloff'> non</label> 908 <br /> 909 </div></td> 910 </tr> 911 <tr> 912 <td style='text-align:left;'>Jeu " le démineur"</td> 913 <td style='text-align:center;'> 914 <input type='radio' name='minesweeper' id='minesweeperon' value='on' /><label for='minesweeperon'> oui</label> 915 <br /> 916 <input type='radio' name='minesweeper' id='minesweeperoff' value='off' checked /><label for='minesweeperoff'> non</label> 917 <br /> 918 </div></td> 919 </tr> 920 <tr> 921 <td style='text-align:left;'>Jeu " pinball " </td> 922 <td style='text-align:center;'> 923 <input type='radio' name='pinball' id='pinballon' value='on' /><label for='pinballon'> oui</label> 924 <br /> 925 <input type='radio' name='pinball' id='pinballoff' value='off' checked /><label for='pinballoff'> non</label> 926 <br /> 927 </div></td> 928 </tr> 929 <tr> 930 <td style='text-align:left;'>Jeu " le Solitaire " </td> 931 <td style='text-align:center;'> 932 <input type='radio' name='solitaire' id='solitaireon' value='on' /><label for='solitaireon'> oui</label> 933 <br /> 934 <input type='radio' name='solitaire' id='solitaireoff' value='off' checked /><label for='solitaireoff'> non</label> 935 <br /> 936 </div></td> 937 </tr> 938 <tr> 939 <td style='text-align:left;'>Jeu " Dame de pique " </td> 940 <td style='text-align:center;'> 941 <input type='radio' name='hearts' id='heartson' value='on' /><label for='heartson'> oui</label> 942 <br /> 943 <input type='radio' name='hearts' id='heartsoff' value='off' checked /><label for='heartsoff'> non</label> 944 <br /> 945 </div></td> 946 </tr> 947 <tr> 948 <td style='text-align:left;'>Jeu " Spider Solitaire " </td> 949 <td style='text-align:center;'> 950 <input type='radio' name='spider' id='spideron' value='on' /><label for='spideron'> oui</label> 951 <br /> 952 <input type='radio' name='spider' id='spideroff' value='off' checked /><label for='spideroff'> non</label> 953 <br /> 954 </div></td> 955 </tr> 956 <tr> 957 <td style='text-align:left;'>Jeux sur internet </td> 958 <td style='text-align:center;'> 959 <input type='radio' name='zonegames' id='zonegameson' value='on' /><label for='zonegameson'> oui</label> 960 <br /> 961 <input type='radio' name='zonegames' id='zonegamesoff' value='off' checked /><label for='zonegamesoff'> non</label> 962 <br /> 963 </div></td> 964 </tr>\n"; 965 966 echo "</table>\n"; 967 echo "</div>\n"; 968 969 echo "<script type='text/javascript'> 970 var alt=1; 971 function display_div_components() { 972 alt=alt*-1; 973 if(alt==1) { 974 document.getElementById('div_components').style.display='block'; 975 } 976 else { 977 document.getElementById('div_components').style.display='none'; 978 } 979 } 980 display_div_components(); 981 </script>\n"; 982 983 //echo "<input type='radio' name='fdisk_cmds' id='fdisk_cmds0' value='0' /><label for='fdisk_cmds0'> détruire la première partition principale</label><br />\n"; 984 //echo "<input type='radio' name='fdisk_cmds' id='fdisk_cmds1' value='1' /><label for='fdisk_cmds1'> installer sur la première partition principale sans toucher à la table de partitions</label><br />\n"; 985 986 echo "</td>\n"; 987 echo "</tr>\n"; 988 //=========================================================== 989 echo "<tr>\n"; 990 echo "<td>Firewall de Windows XP</td>\n"; 991 echo "<td style='text-align:left;'>\n"; 992 /* 993 echo "Désactiver le Firewall intégré à Windows: 994 <select name='firewall' id='firewall'> 995 <option value='1' selected='selected'>oui</option> 996 <option value='0'>non</option> 997 </select>\n"; 998 */ 999 echo "Désactiver le Firewall intégré à Windows: 1000 <input type='radio' id='firewall1' name='firewall' value='1' checked /><label for='firewall1'> Oui </label> 1001 ou <label for='firewall0'> Non </label> 1002 <input type='radio' id='firewall0' name='firewall' value='0' />\n"; 1003 1004 echo "</td>\n"; 1005 echo "</tr>\n"; 1006 //=========================================================== 1007 1008 1009 echo "<tr><td valign='top'>Pour la ou les machines sélectionnées: </td>\n"; 1010 echo "<td>\n"; 1011 echo "<table border='0'>\n"; 1012 echo "<tr><td valign='top'><input type='checkbox' id='wake' name='wake' value='y' checked /> </td><td style='text-align:left;'><label for='wake'>Démarrer les machines par Wake-On-Lan/etherwake<br />si elles sont éteintes.</label></td></tr>\n"; 1013 echo "<tr><td valign='top'><input type='radio' id='shutdown_reboot_wait1' name='shutdown_reboot' value='wait1' /> </td><td style='text-align:left;'><label for='shutdown_reboot_wait1'>Attendre le reboot des machines<br />même si aucune session n'est ouverte,</label></td></tr>\n"; 1014 echo "<tr><td valign='top'><input type='radio' id='shutdown_reboot_wait2' name='shutdown_reboot' value='wait2' checked /> </td><td style='text-align:left;'><label for='shutdown_reboot_wait2'>Redémarrer les machines sans session ouverte<br />et attendre le reboot pour les machines<br />qui ont des sessions ouvertes,</label></td></tr>\n"; 1015 echo "<tr><td valign='top'><input type='radio' id='shutdown_reboot_reboot' name='shutdown_reboot' value='reboot' /> </td><td style='text-align:left;'><label for='shutdown_reboot_reboot'>Redémarrer les machines<br />même si une session est ouverte (<i>pô cool</i>).</label></td></tr>\n"; 1016 echo "</table>\n"; 1017 echo "</td></tr>\n"; 1018 1019 echo "</table>\n"; 1020 1021 echo "<p align='center'><input type=\"submit\" name=\"validation_parametres\" value=\"Valider\" /></p>\n"; 1022 echo "</form>\n"; 1023 1024 1025 echo "<p><i>NOTES:</i></p>\n"; 1026 echo "<ul>\n"; 1027 //echo "<li>Ce choix nécessite une partition de sauvegarde sur la machine.</li>\n"; 1028 /* 1029 echo "<li><b>Attention:</b > Le délai avant reboot ajouté au temps de l'opération lancée doit dépasser la périodicité du script controle_actions_tftp.sh en crontab.<br /> 1030 Ce délai doit aussi permettre de récupérer en http://IP_CLIENT/~hacker/Public/*.txt des informations sur le succès ou l'échec de l'opération.<br /> 1031 Une tâche cron se charge d'effectuer le 'wget' sur les infos, puis le remplissage d'une table MySQL.<br /> 1032 La tâche cron est lancée toutes les 60s.</li>\n"; 1033 */ 1034 echo "<li>Pour que l'opération puisse être entièrement provoquée depuis le serveur, il faut que les postes clients soient configurés pour booter en PXE (<i>ou au moins s'éveiller (wol) en bootant sur le réseau</i>).<br />Dans le cas contraire, vous devrez passer sur les postes et presser F12 pour choisir de booter en PXE.</li>\n"; 1035 echo "</ul>\n"; 1036 1037 } 1038 else { 1039 echo "<h2>Validation des paramètres du lancement de l'installation XP unattended</h2>\n"; 1040 1041 //debug_var(); 1042 //while read A;do B=$(echo "$A"|cut -d"'" -f2);echo "\$$B=isset($A) ? $A : 'on';";done < liste_champs.txt 1043 //while read A;do B=$(echo "$A"|cut -d"'" -f2);echo "$B=\$$B";done < liste_champs.txt 1044 1045 //========================= 1046 // Partitionnement 1047 $fdisk_cmds=isset($_POST['fdisk_cmds']) ? $_POST['fdisk_cmds'] : 0; 1048 $replace_mbr=isset($_POST['replace_mbr']) ? $_POST['replace_mbr'] : 0; 1049 //========================= 1050 1051 //========================= 1052 // Mises à jour 1053 $DisableDynamicUpdates=isset($_POST['DisableDynamicUpdates']) ? $_POST['DisableDynamicUpdates'] : "no"; 1054 $AutomaticUpdates=isset($_POST['AutomaticUpdates']) ? $_POST['AutomaticUpdates'] : 'yes'; 1055 //========================= 1056 1057 //========================= 1058 // Composants W$ 1059 $accessopt=isset($_POST['accessopt']) ? $_POST['accessopt'] : 'on'; 1060 $calc=isset($_POST['calc']) ? $_POST['calc'] : 'on'; 1061 $charmap=isset($_POST['charmap']) ? $_POST['charmap'] : 'on'; 1062 $chat=isset($_POST['chat']) ? $_POST['chat'] : 'on'; 1063 $deskpaper=isset($_POST['deskpaper']) ? $_POST['deskpaper'] : 'off'; 1064 $hypertrm=isset($_POST['hypertrm']) ? $_POST['hypertrm'] : 'on'; 1065 1066 $iisdbg=isset($_POST['iisdbg']) ? $_POST['iisdbg'] : 'off'; 1067 $indexsrv_system=isset($_POST['indexsrv_system']) ? $_POST['indexsrv_system'] : 'off'; 1068 $media_clips=isset($_POST['media_clips']) ? $_POST['media_clips'] : 'off'; 1069 $media_utopia=isset($_POST['media_utopia']) ? $_POST['media_utopia'] : 'off'; 1070 $mousepoint=isset($_POST['mousepoint']) ? $_POST['mousepoint'] : 'off'; 1071 1072 $mplay=isset($_POST['mplay']) ? $_POST['mplay'] : 'off'; 1073 1074 $mswordpad=isset($_POST['mswordpad']) ? $_POST['mswordpad'] : 'on'; 1075 $paint=isset($_POST['paint']) ? $_POST['paint'] : 'on'; 1076 1077 $rec=isset($_POST['rec']) ? $_POST['rec'] : 'on'; 1078 $vol=isset($_POST['vol']) ? $_POST['vol'] : 'on'; 1079 1080 $IEAccess=isset($_POST['IEAccess']) ? $_POST['IEAccess'] : 'on'; 1081 1082 $msnexplr=isset($_POST['msnexplr']) ? $_POST['msnexplr'] : 'off'; 1083 $msmsgs=isset($_POST['msmsgs']) ? $_POST['msmsgs'] : 'off'; 1084 1085 // Jeux 1086 $freecell=isset($_POST['freecell']) ? $_POST['freecell'] : 'off'; 1087 $hearts=isset($_POST['hearts']) ? $_POST['hearts'] : 'off'; 1088 $minesweeper=isset($_POST['minesweeper']) ? $_POST['minesweeper'] : 'off'; 1089 $pinball=isset($_POST['pinball']) ? $_POST['pinball'] : 'off'; 1090 $solitaire=isset($_POST['solitaire']) ? $_POST['solitaire'] : 'off'; 1091 $spider=isset($_POST['spider']) ? $_POST['spider'] : 'off'; 1092 $zonegames=isset($_POST['zonegames']) ? $_POST['zonegames'] : 'off'; 1093 1094 $firewall=isset($_POST['firewall']) ? $_POST['firewall'] : 1; 1095 // Contrôler les valeurs: on/off, 0/1 1096 //========================= 1097 1098 //========================= 1099 // Display: 1100 $BitsPerPel=isset($_POST['BitsPerPel']) ? $_POST['BitsPerPel'] : 16; 1101 if(($BitsPerPel!=16)&&($BitsPerPel!=32)) {$BitsPerPel=16;} 1102 1103 $Xresolution=isset($_POST['Xresolution']) ? $_POST['Xresolution'] : 1024; 1104 if(($Xresolution!=800)&&($Xresolution!=1024)&&($Xresolution!=1280)) {$Xresolution=1024;} 1105 if($Xresolution=800) {$Yresolution=600;} 1106 elseif($Xresolution=1024) {$Yresolution=768;} 1107 elseif($Xresolution=1280) {$Yresolution=800;} 1108 //========================= 1109 1110 //========================= 1111 // Serveur TFTP 1112 $dhcp_tftp_server=$_SERVER["SERVER_ADDR"]; 1113 1114 $sql="SELECT value FROM params WHERE name='dhcp_tftp_server';"; 1115 $res=mysql_query($sql); 1116 if(mysql_num_rows($res)>0) { 1117 $lig=mysql_fetch_object($res); 1118 if($lig->value!="") {$dhcp_tftp_server=$lig->value;} 1119 // Il faudrait contrôler que l'adresse est valide, non? 1120 } 1121 //========================= 1122 1123 //========================= 1124 // Serveur de temps NTP 1125 $dhcp_ntp="91.121.73.63"; 1126 /* 1127 $ host fr.pool.ntp.org 1128 fr.pool.ntp.org has address 91.121.73.63 1129 fr.pool.ntp.org has address 81.25.192.148 1130 fr.pool.ntp.org has address 87.98.146.16 1131 fr.pool.ntp.org has address 88.191.23.205 1132 fr.pool.ntp.org has address 88.178.32.159 1133 */ 1134 $sql="SELECT value FROM params WHERE name='dhcp_ntp';"; 1135 $res=mysql_query($sql); 1136 if(mysql_num_rows($res)>0) { 1137 $lig=mysql_fetch_object($res); 1138 if($lig->value!="") {$dhcp_ntp=$lig->value;} 1139 // Il faudrait contrôler que l'adresse est valide, non? 1140 } 1141 //========================= 1142 1143 //========================= 1144 // M$IE 1145 $Home_Page="http://www.mozilla.com/en-US/"; 1146 $sql="select valeur from corresp where chemin='HKEY_CURRENT_USER\\software\\microsoft\\Internet Explorer\\Main\\Start Page';"; 1147 $res=mysql_query($sql); 1148 if(mysql_num_rows($res)>0) { 1149 $lig=mysql_fetch_object($res); 1150 if($lig->value!="") {$Home_Page=$lig->valeur;} 1151 } 1152 1153 $Help_Page="http://www.mozilla.com/en-US/"; 1154 $Search_Page="http://www.google.fr/firefox"; 1155 //========================= 1156 1157 echo "<p>"; 1158 /* 1159 for ($i=0;$i<count($parc);$i++) { 1160 echo "Génération du fichier /var/se3/unattended/install/site/$parc[$i]/unattend.txt<br />\n"; 1161 1162 $dossier_unattend_txt="/var/se3/unattended/install/site/$parc[$i]"; 1163 if(!file_exists($dossier_unattend_txt)) {mkdir($dossier_unattend_txt);} 1164 $fu=fopen("$dossier_unattend_txt/unattend.txt","w+"); 1165 if(!$fu) { 1166 echo "<p>ERREUR lors de la création de $dossier_unattend_txt/unattend.txt</p>\n"; 1167 include ("pdp.inc.php"); 1168 die(); 1169 } 1170 */ 1171 for($i=0;$i<count($id_machine);$i++) { 1172 $sql="SELECT * FROM se3_dhcp WHERE id='".$id_machine[$i]."';"; 1173 //echo "$sql<br />"; 1174 $res=mysql_query($sql); 1175 if(mysql_num_rows($res)==0) { 1176 echo "<span style='color:red;'>La machine d'identifiant $id_machine[$i] n'existe pas dans 'se3_dhcp'.</span><br />\n"; 1177 } 1178 else { 1179 1180 $lig=mysql_fetch_object($res); 1181 //$mac_machine=$lig->mac; 1182 $nom_machine=$lig->name; 1183 1184 $dossier_unattend_txt="/var/se3/unattended/install/site/"; 1185 if(!file_exists($dossier_unattend_txt)) {mkdir($dossier_unattend_txt);} 1186 $fu=fopen("$dossier_unattend_txt/$nom_machine.txt","w+"); 1187 if(!$fu) { 1188 echo "<p>ERREUR lors de la création de $dossier_unattend_txt/$nom_machine.txt</p>\n"; 1189 include ("pdp.inc.php"); 1190 die(); 1191 } 1192 fwrite($fu,"[GuiUnattended]\r 1193 ; Fichier genere automatiquement par se3 pour $nom_machine \r 1194 ; ne pas modifier \r 1195 ; \r 1196 TimeZone=105\r 1197 OEMSkipRegional=1\r 1198 OemSkipWelcome=1\r 1199 EncryptedAdminPassword=No\r 1200 AutoLogon=Yes\r 1201 \r 1202 [Unattended]\r 1203 UnattendMode=FullUnattended\r 1204 FileSystem=ConvertNTFS\r 1205 ExtendOemPartition=1\r 1206 OemSkipEula=Yes\r 1207 OemPreinstall=Yes\r 1208 AutomaticUpdates=$AutomaticUpdates\r 1209 OemPnpDriversPath=\\D\r 1210 TargetPath=\"\\WINDOWS\"\r 1211 AutoActivate=Yes\r 1212 DisableDynamicUpdates=$DisableDynamicUpdates\r 1213 ; Needed for XP - see <http://support.microsoft.com/?kbid=294801>.\r 1214 UnattendSwitch=Yes\r 1215 DriverSigningPolicy=Ignore\r 1216 Hibernation=No\r 1217 NtUpgrade=No\r 1218 Win9xUpgrade=No\r 1219 \r 1220 [Display]\r 1221 BitsPerPel=$BitsPerPel\r 1222 Xresolution=$Xresolution\r 1223 YResolution=$Yresolution\r 1224 Vrefresh=60\r 1225 \r 1226 [URL]\r 1227 Home_Page=\"$Home_Page\"\r 1228 Help_Page=\"$Help_Page\"\r 1229 Search_Page=\"$Search_Page\"\r 1230 \r 1231 [Proxy]\r 1232 ; le proxy est inactif par defaut : l admin l'active via les clefs si besoin\r 1233 Proxy_Enable=0\r 1234 Use_Same_Proxy=1\r 1235 \r 1236 [Networking]\r 1237 InstallDefaultComponents=Yes\r 1238 \r 1239 [NetOptionalComponents]\r 1240 ; Install Print Services for UNIX\r 1241 LPDSVC=1\r 1242 \r 1243 [_meta]\r 1244 ntinstall_cmd = \"nt5x-install\"\r 1245 fdisk_lba=1\r 1246 fdisk_confirm=0\r 1247 edit_files=0\r 1248 middle=\"\"\r 1249 bottom=\"\"\r 1250 local_admins=\"\"\r\n"); 1251 1252 if($fdisk_cmds==0) { 1253 fwrite($fu,"fdisk_cmds=\"fdisk /clear 1;fdisk /pri:8000;fdisk /activate:1\"\r\n"); 1254 fwrite($fu,"format_cmd=\"format /y /z:seriously /q /u /a /v: c:\"\r\n"); 1255 } 1256 elseif($fdisk_cmds==1) { 1257 fwrite($fu,";fdisk_cmds=\"echo On ne modifie pas les partitions; installation sur la premiere partition principale\"\r\n"); 1258 fwrite($fu,"format_cmd=\"format /y /z:seriously /q /u /a /v: c:\"\r\n"); 1259 } 1260 elseif($fdisk_cmds==2) { 1261 fwrite($fu,";fdisk_cmds=\"echo On ne modifie pas les partitions; installation sur la deuxieme partition principale\"\r\n"); 1262 fwrite($fu,"format_cmd=\"format /y /z:seriously /q /u /a /v: d:\"\r\n"); 1263 } 1264 1265 1266 fwrite($fu,"replace_mbr=$replace_mbr\r 1267 local_admins=\"\"\r 1268 ntp_servers=\"$dhcp_ntp\"\r 1269 z_path=\"\\\\$dhcp_tftp_server\\install\"\r 1270 netlogon_dir=\"\\\\$se3ip\\netlogon\\domscripts\"\r 1271 autolog=\"autolog.pl --logon=1 --user=administrateur --password=wawa\"\r 1272 \r 1273 [RegionalSettings]\r 1274 ; In french in the text\r 1275 LanguageGroup=1\r 1276 SystemLocale=0000040c\r 1277 UserLocale=0000040c\r 1278 InputLocale=040c:0000040c\r 1279 \r 1280 [Branding]\r 1281 BrandIEUsingUnattended=Yes\r 1282 \r 1283 [Components]\r 1284 accessopt=$accessopt\r 1285 calc=$calc\r 1286 charmap=$charmap\r 1287 chat=$chat\r 1288 deskpaper=$deskpaper\r 1289 hypertrm=$hypertrm\r 1290 iisdbg=$iisdbg\r 1291 indexsrv_system=$indexsrv_system\r 1292 media_clips=$media_clips\r 1293 media_utopia=$media_utopia\r 1294 mousepoint=$mousepoint\r 1295 mplay=$mplay\r 1296 mswordpad=$mswordpad\r 1297 paint=$paint\r 1298 rec=$rec\r 1299 vol=$vol\r 1300 ; Jeux\r 1301 freecell=$freecell\r 1302 hearts=$hearts\r 1303 minesweeper=$minesweeper\r 1304 pinball=$pinball\r 1305 solitaire=$solitaire\r 1306 spider=$spider\r 1307 zonegames=$zonegames\r 1308 IEAccess=$IEAccess\r 1309 msnexplr=$msnexplr\r 1310 \r 1311 hearts=off\r 1312 IEAccess=off\r 1313 \r 1314 ; Install IIS by default\r 1315 iis_common=Off\r 1316 iis_inetmgr=Off\r 1317 iis_www=off\r 1318 ; Docs suggest iis_pwmgr only works on Win2k, but include it\r 1319 ; anyway\r 1320 iis_pwmgr=Off\r 1321 ; Include docs\r 1322 iis_doc=Off\r 1323 \r\n"); 1324 if($firewall==1) { 1325 fwrite($fu,"[WindowsFirewall]\r 1326 Profiles=WindowsFirewall.TurnOffFirewall\r 1327 \r 1328 [WindowsFirewall.TurnOffFirewall]\r 1329 Mode=0\r\n"); 1330 } 1331 else { 1332 fwrite($fu,"[WindowsFirewall]\r 1333 Profiles=WindowsFirewall.TurnOnFirewall\r 1334 \r 1335 [WindowsFirewall.TurnOnFirewall]\r 1336 Mode=1\r\n"); 1337 } 1338 fclose($fu); 1339 } 1340 } 1341 1342 echo "<p>Génération des fichiers dans /tftpboot/pxelinux.cfg/ pour l'installation XP unattended.<br />\n"; 1343 1344 // BOUCLE SUR LA LISTE DES $id_machine[$i] 1345 1346 // Numéro de l'opération de remontée de rapport: 1347 $num_op=get_free_se3_action_tftp_num_op(); 1348 for($i=0;$i<count($id_machine);$i++) { 1349 $sql="SELECT * FROM se3_dhcp WHERE id='".$id_machine[$i]."';"; 1350 //echo "$sql<br />"; 1351 $res=mysql_query($sql); 1352 if(mysql_num_rows($res)==0) { 1353 echo "<span style='color:red;'>La machine d'identifiant $id_machine[$i] n'existe pas dans 'se3_dhcp'.</span><br />\n"; 1354 } 1355 else { 1356 $temoin_erreur="n"; 1357 1358 $lig=mysql_fetch_object($res); 1359 $mac_machine=$lig->mac; 1360 $nom_machine=$lig->name; 1361 $ip_machine=$lig->ip; 1362 1363 echo "Génération pour $nom_machine: "; 1364 1365 $corrige_mac=strtolower(strtr($mac_machine,":","-")); 1366 1367 $chemin="/usr/share/se3/scripts"; 1368 $resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'unattend_xp' '$corrige_mac' '$ip_machine' '$nom_machine'", $retour); 1369 // patch devenu inutile car integre a pxe_gen_cfg.sh 1370 // patch pour lancer unattended-generate.sh lorsque l'on personnalise les unattend.txt 1371 //$nomscript=date(Y_m_d_H_i_s"); 1372 //$nomscript="tmp_unattended_$nomscript.sh"; 1373 //system("echo \"#!/bin/bash\n\" > /tmp/$nomscript"); 1374 //chmod ("/tmp/$nomscript",0700); 1375 //system("echo \"sudo /usr/share/se3/scripts/unattended_generate.sh\n\" >> /tmp/$nomscript"); 1376 //system("echo \"rm -f /tmp/$nomscript \n\" >> /tmp/$nomscript"); 1377 //exec("at -f /tmp/$nomscript now + 1 minute"); 1378 // fin du patch pour lancer unattended-generate.sh 1379 1380 if(count($retour)>0){ 1381 //echo "<p>"; 1382 //echo "<span style='color:red;'>Il semble que la génération du fichier ait échoué...</span><br />\n"; 1383 echo "<span style='color:red;'>ECHEC de la génération du fichier</span><br />\n"; 1384 for($j=0;$j<count($retour);$j++){ 1385 echo "$retour[$j]<br />\n"; 1386 } 1387 $temoin_erreur="y"; 1388 //echo "</p>\n"; 1389 } 1390 else { 1391 $sql="DELETE FROM se3_tftp_action WHERE id='$id_machine[$i]';"; 1392 $suppr=mysql_query($sql); 1393 1394 $timestamp=time(); 1395 $sql="INSERT INTO se3_tftp_action SET id='$id_machine[$i]', 1396 mac='$mac_machine', 1397 name='$nom_machine', 1398 date='$timestamp', 1399 type='unattend_xp', 1400 num_op='$num_op', 1401 infos='';"; 1402 $insert=mysql_query($sql); 1403 if(!$insert) { 1404 echo "<span style='color:red;'>ECHEC de l'enregistrement dans 'se3_tftp_action'</span><br />\n"; 1405 $temoin_erreur="y"; 1406 } 1407 1408 /* 1409 // Génération du lanceur de récupération: 1410 //$dossier="/var/se3/tmp/tftp/$id_machine[$i]"; 1411 $dossier="/etc/se3/www-tools/tftp/$id_machine[$i]"; 1412 if(!file_exists($dossier)) { mkdir($dossier,0700);} 1413 $lanceur_recup="$dossier/lanceur_recup_rapport_action_tftp.sh"; 1414 $fich=fopen($lanceur_recup,"w+"); 1415 // On donne 4H pour que la récup soit effectuée: 1416 $timestamp_limit=time()+4*3600; 1417 //fwrite($fich,"/usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'"); 1418 fwrite($fich,"sudo /usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'"); 1419 fclose($fich); 1420 chmod($lanceur_recup,0750); 1421 1422 // Ménage dans les tâches précédentes 1423 @exec("sudo /usr/share/se3/scripts/se3_tftp_menage_atq.sh $id_machine[$i]",$retour); 1424 1425 // Planification de la tâche 1426 //@exec("at -f $lanceur_recup now + 1 minute 2>/dev/null",$retour); 1427 @exec("at -f $lanceur_recup now + 1 minute 2>$dossier/at.txt",$retour); 1428 //passthru("at -f $lanceur_recup now + 1 minute",$retour); 1429 if($retour) { 1430 echo "<span style='color:red;'>ECHEC de la planification de la tâche.</span><br />\n"; 1431 for($j=0;$j<count($retour);$j++){echo "$retour[$j]<br />\n";} 1432 //echo "$retour<br />\n"; 1433 $temoin_erreur="y"; 1434 } 1435 */ 1436 1437 /* 1438 // Avec ça on arrive à récupérer l'info: 1439 // -warning: commands will be executed using /bin/sh - 1440 // -job 1572 at 2008-03-01 15:13 - 1441 // Mais une fois le at repoussé, ce n'est plus www-se3, mais root qui en est proprio... 1442 if(file_exists("$dossier/at.txt")) { 1443 $fp=fopen("$dossier/at.txt","r"); 1444 while(!feof($fp)) { 1445 $ligne=fgets($fp,4096); 1446 echo "<p>-".$ligne."-</p>"; 1447 } 1448 fclose($fp); 1449 } 1450 */ 1451 1452 /* 1453 $fp=popen("at -f $lanceur_recup now + 1 minute","r"); 1454 while(!feof($fp)) { 1455 $ligne=fgets($fp,4096); 1456 echo "<p>-".$ligne."-</p>"; 1457 } 1458 fclose($fp); 1459 */ 1460 1461 if($temoin_erreur=="n") { 1462 //echo "<span style='color:green;'>OK</span><br />\n"; 1463 echo "<span style='color:green;'>OK</span>\n"; 1464 // Application de l'action choisie: 1465 echo " <span id='wake_shutdown_or_reboot_$i'></span>"; 1466 1467 echo "<script type='text/javascript'> 1468 // <![CDATA[ 1469 new Ajax.Updater($('wake_shutdown_or_reboot_$i'),'ajax_lib.php?ip=$ip_machine&nom=$nom_machine&mode=wake_shutdown_or_reboot&wake=$wake&shutdown_reboot=$shutdown_reboot',{method: 'get'}); 1470 //]]> 1471 </script>\n"; 1472 1473 1474 echo "<br />\n"; 1475 } 1476 } 1477 } 1478 } 1479 1480 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 1481 // POUVOIR TAGUER DANS LA TABLE se3_dhcp LES MACHINES QUI PEUVENT BOOTER EN PXE 1482 // Ajouter un champ? 1483 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 1484 1485 1486 // On n'affiche le fichier que pour le dernier (à titre d'info): 1487 if(isset($corrige_mac)) { 1488 //$fich=fopen("/tftpboot/pxelinux.cfg/01-$lig1->mac","r"); 1489 $fich=fopen("/tftpboot/pxelinux.cfg/01-$corrige_mac","r"); 1490 if($fich) { 1491 echo "<p>Pour information, voici le contenu du fichier généré:<br />\n"; 1492 echo "<pre style='border:1px solid black; color:green;'>"; 1493 while(!feof($fich)) { 1494 $ligne=fgets($fich,4096); 1495 echo htmlentities($ligne); 1496 } 1497 echo "</pre>\n"; 1498 fclose($fich); 1499 } 1500 else { 1501 echo "<p style='color:red;'>Il n'a pas été possible d'ouvrir le fichier /tftpboot/pxelinux.cfg/01-$corrige_mac</p>\n"; 1502 } 1503 } 1504 } 1505 } 1506 echo "<p><a href='".$_SERVER['PHP_SELF']."'>Retour au choix du/des parc(s)</a>.</p>\n"; 1507 } 1508 } 1509 else { 1510 print (gettext("Vous n'avez pas les droits nécessaires pour ouvrir cette page...")); 1511 } 1512 1513 // Footer 1514 include ("pdp.inc.php"); 1515 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |