\n"; // CSS pour mes tableaux: echo "\n"; if (is_admin("system_is_admin",$login)=="Y") { // Choix des parcs: $parc=isset($_POST['parc']) ? $_POST['parc'] : (isset($_GET['parc']) ? $_GET['parc'] : NULL); // Choix des machines: $id_machine=isset($_POST['id_machine']) ? $_POST['id_machine'] : (isset($_GET['id_machine']) ? $_GET['id_machine'] : NULL); $parametrage_action=isset($_POST['parametrage_action']) ? $_POST['parametrage_action'] : (isset($_GET['parametrage_action']) ? $_GET['parametrage_action'] : NULL); // Création de la table dès que possible: creation_tftp_tables(); // Paramètres SliTaz: /* $nom_image=isset($_POST['nom_image']) ? $_POST['nom_image'] : (isset($_GET['nom_image']) ? $_GET['nom_image'] : NULL); $src_part=isset($_POST['src_part']) ? $_POST['src_part'] : (isset($_GET['src_part']) ? $_GET['src_part'] : NULL); $dest_part=isset($_POST['dest_part']) ? $_POST['dest_part'] : (isset($_GET['dest_part']) ? $_GET['dest_part'] : NULL); */ //$auto_reboot=isset($_POST['auto_reboot']) ? $_POST['auto_reboot'] : (isset($_GET['auto_reboot']) ? $_GET['auto_reboot'] : NULL); //$delais_reboot=isset($_POST['delais_reboot']) ? $_POST['delais_reboot'] : (isset($_GET['delais_reboot']) ? $_GET['delais_reboot'] : NULL); // Paramètres concernant l'action immédiate sur les machines choisies: $wake=isset($_POST['wake']) ? $_POST['wake'] : (isset($_GET['wake']) ? $_GET['wake'] : "n"); $shutdown_reboot=isset($_POST['shutdown_reboot']) ? $_POST['shutdown_reboot'] : (isset($_GET['shutdown_reboot']) ? $_GET['shutdown_reboot'] : NULL); echo "

".gettext("Action Unattend XP")."

\n"; if(!isset($parc)){ echo "

Cette page doit vous permettre de programmer une installation de XP via Unattended sur les machines choisies.

\n"; echo "

Choisissez un ou des parcs:

\n"; $list_parcs=search_machines("objectclass=groupOfNames","parcs"); if ( count($list_parcs)==0) { echo "

"; echo gettext("Il n'existe aucun parc. Vous devez d'abord créer un parc"); include ("pdp.inc.php"); exit; } sort($list_parcs); echo "
\n"; // Affichage des parcs sur 3/4 colonnes $nb_parcs_par_colonne=round(count($list_parcs)/3); echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
     \n"; for ($loop=0; $loop < count($list_parcs); $loop++) { if(($loop>0)&&(round($loop/$nb_parcs_par_colonne)==$loop/$nb_parcs_par_colonne)){ echo "\n"; } echo "\n"; echo "
\n"; } echo "
\n"; echo "

\n"; echo "
\n"; echo "

Retour à l'index.

\n"; } else { if(!isset($_POST['parametrage_action'])){ echo "
\n"; echo "\n"; $max_eff_parc=0; for($i=0;$iParc $parc[$i]\n"; echo "\n"; $mp=gof_members($parc[$i],"parcs",1); $nombre_machine=count($mp); sort($mp); //echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; //echo "\n"; echo "\n"; echo "\n"; echo "\n"; for ($loop=0; $loop < count($mp); $loop++) { $mpenc=urlencode($mp[$loop]); // Test si on a une imprimante ou une machine $resultat=search_imprimantes("printer-name=$mpenc","printers"); $suisje_printer="non"; for ($loopp=0; $loopp < count($resultat); $loopp++) { if ($mpenc==$resultat[$loopp]['printer-name']) { $suisje_printer="yes"; continue; } } if($suisje_printer=="non") { // Réinitialisation: $id_machine=""; echo "\n"; echo "\n"; // Etat: allumé ou éteint echo "\n"; // Session: ouverte ou pas... sous quelle identité echo "\n"; // Etat config DHCP: // Par la suite il ne faudra pas prendre les IP dans l'annuaire, // mais dans la config DHCP parce que ce sont ces IP qui seront attribuées lors du boot PXE echo "\n"; // Sélection des machines à sauvegarder: echo "\n"; // Action programmée echo "\n"; echo "\n"; } } echo "
NomEtatSessionConfig DHCPSauvegardeInstall XP unattend
\n"; echo "\"Tout\n"; echo " / \"Tout\n"; echo "
Actions programmées
".$mp[$loop].""; $mp_curr=search_machines2("(&(cn=$mpenc)(objectClass=ipHost))","computers"); if ($mp_curr[0]["ipHostNumber"]) { $iphost=$mp_curr[0]["ipHostNumber"]; echo "
Patientez
\n"; echo "\n"; } echo "
\n"; echo "
Patientez
\n"; echo "\n"; echo "
\n"; //$mp_curr=search_machines("(&(cn=$mpenc)(objectClass=ipHost))","computers"); if ($mp_curr[0]["macAddress"]) { $sql="SELECT * FROM se3_dhcp WHERE mac='".$mp_curr[0]["macAddress"]."';"; // mp_curr[0]["macAddress"] correspond à une adresse mac recherchée dans l'annuaire LDAP. // 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: // source /usr/share/se3/sbin/variables_admin_ldap.sh // ldapdelete -x -D $ROOTDN -w $PASSDN cn=NOM_MACHINE,ou=Computers,$BASEDN // Et se reconnecter une fois sur la machine pour que le connexion.pl renseigne une nouvelle entrée cn=NOM_MACHINE //echo "$sql
"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); $id_machine=$lig->id; //echo $lig->ip; echo "\"$lig-ip\" title=\"$lig->ip\" />"; } else { echo "\"Pas"; } } else { echo "\"Pas"; } echo "
\n"; /* foreach($mp_curr[0] as $champ => $valeur) { echo "\$mp_curr[0]['$champ']=$valeur
"; } */ if($id_machine!=""){ echo "\n"; } else { echo "\"Il"; } echo "
\n"; if($id_machine!=""){ $sql="SELECT * FROM se3_tftp_action WHERE id='".$id_machine."';"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); echo "$lig->type programmé(e)"; } else { echo "\"Pas"; } } echo "
\n"; if($max_eff_parc<$loop) {$max_eff_parc=$loop;} } echo "\n"; echo "

\n"; echo "\n"; } else { $validation_parametres=isset($_POST['validation_parametres']) ? $_POST['validation_parametres'] : (isset($_GET['validation_parametres']) ? $_GET['validation_parametres'] : NULL); if(!isset($validation_parametres)) { echo "

Paramétrage du lancement de l'installation

\n"; $nombre_machines=count($id_machine); if($nombre_machines==0){ echo "

ERREUR: Il faut choisir au moins une machine.

\n"; echo "

Retour au choix des machines sur lesquelles installer XP..

\n"; echo "

Retour au choix du/des parc(s).

\n"; include ("pdp.inc.php"); exit(); } echo "
\n"; echo "\n"; // Liste des parcs: for($i=0;$i\n"; } // Liste des machines sur lesquelles lancer l'install: $chaine=""; for($i=0;$i0) {$chaine.=", ";} $sql="SELECT * FROM se3_dhcp WHERE id='".$id_machine[$i]."';"; //echo "$sql
"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); $chaine.=$lig->name; echo "\n"; } } if(count($id_machine)>1){$s="s";}else{$s="";} echo "

Machine$s concernée$s: $chaine

\n"; // Date pour le nom de l'image à générer: $aujourdhui = getdate(); $mois_se3 = sprintf("%02d",$aujourdhui['mon']); $jour_se3 = sprintf("%02d",$aujourdhui['mday']); $annee_se3 = $aujourdhui['year']; $heure_se3 = sprintf("%02d",$aujourdhui['hours']); $minute_se3 = sprintf("%02d",$aujourdhui['minutes']); $seconde_se3 = sprintf("%02d",$aujourdhui['seconds']); $date_se3=$annee_se3.$mois_se3.$jour_se3; echo "

Choisissez les paramètres pour le lancement de l'installation:
\n"; echo "\n"; echo "\n"; //=========================================================== echo "\n"; echo "\n"; echo "\n"; echo "\n"; //=========================================================== echo "\n"; echo "\n"; echo "\n"; echo "\n"; //=========================================================== echo "\n"; echo "\n"; echo "\n"; echo "\n"; //=========================================================== /* echo "\n"; echo "\n"; echo "\n"; */ //=========================================================== echo "\n"; echo "\n"; echo "\n"; echo "\n"; //=========================================================== echo "\n"; echo "\n"; echo "\n"; echo "\n"; //=========================================================== echo "\n"; echo "\n"; echo "
Partitionnement\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Partitionnement :\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
Ecraser le MBR :\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
Display\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Nombre de couleurs :\n"; echo "
\n"; echo "
\n"; echo "
Résolution :\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
Mises à jour\n"; echo "\n"; echo "\n"; /* DisableDynamicUpdates=Yes Si vous mettez la valeur " Yes ", vous obligerez Windows à ne pas se connecter à Windows Update lors de son installation. */ echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Ne pas se connecter à Windows Update lors de l'installation :\n"; echo "
\n"; echo "
\n"; echo "
Activer les mises à jour automatiques de Windows :\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo " "; echo "

Composants Windows XP

\n"; /* echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "
\n"; */ echo ""; echo "

Sélection des composants à installer

\n"; echo "
\n"; echo "\n"; /* echo ""; */ echo "\n"; echo "
Options d'accessibilités
Calculatrice
Table des caractères spéciaux
Hyper Terminal
Chat (rien avoir avec windows messenger; utile pour les popup)
Fonds d' écran standards de windows
Utilitaire de Débogage de Microsoft
Service d' indexation des fichiers
Fichiers sons supplémentaires
Fichiers sons du modèle Utopia
Différents pointeurs de la souris
Windows Media Player
Wordpad
Microsoft Paint
Magnétophone
Utilitaire de réglage du volume du son.
Différents raccourcis d' Internet exploreur.
MSN Explorer 4.7
Installer Messenger 4.6
Jeux (Soyez sérieux...SVP)
Jeu " Freecel "
Jeu " le démineur"
Jeu " pinball "
Jeu " le Solitaire "
Jeu " Dame de pique "
Jeu " Spider Solitaire "
Jeux sur internet "
Options d'accessibilités

Calculatrice

Table des caractères spéciaux

Hyper Terminal

Chat (rien avoir avec windows messenger; utile pour les popup)

Fonds d' écran standards de windows

Utilitaire de Débogage de Microsoft

Service d' indexation des fichiers

Fichiers sons supplémentaires

Fichiers sons du modèle Utopia

Différents pointeurs de la souris

Windows Media Player

Wordpad

Microsoft Paint

Magnétophone

Utilitaire de réglage du volume du son.

Différents raccourcis d' Internet exploreur.

MSN Explorer 4.7

Installer Messenger 4.6

Jeux (Soyez sérieux...SVP)
Jeu " Freecel "

Jeu " le démineur"

Jeu " pinball "

Jeu " le Solitaire "

Jeu " Dame de pique "

Jeu " Spider Solitaire "

Jeux sur internet

\n"; echo "
\n"; echo "\n"; //echo "
\n"; //echo "
\n"; echo "
Firewall de Windows XP\n"; /* echo "Désactiver le Firewall intégré à Windows: \n"; */ echo "Désactiver le Firewall intégré à Windows: ou \n"; echo "
Pour la ou les machines sélectionnées: \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "
\n"; echo "

\n"; echo "\n"; echo "

NOTES:

\n"; echo "
    \n"; //echo "
  • Ce choix nécessite une partition de sauvegarde sur la machine.
  • \n"; /* echo "
  • Attention: 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.
    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.
    Une tâche cron se charge d'effectuer le 'wget' sur les infos, puis le remplissage d'une table MySQL.
    La tâche cron est lancée toutes les 60s.
  • \n"; */ echo "
  • 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 (ou au moins s'éveiller (wol) en bootant sur le réseau).
    Dans le cas contraire, vous devrez passer sur les postes et presser F12 pour choisir de booter en PXE.
  • \n"; echo "
\n"; } else { echo "

Validation des paramètres du lancement de l'installation XP unattended

\n"; //debug_var(); //while read A;do B=$(echo "$A"|cut -d"'" -f2);echo "\$$B=isset($A) ? $A : 'on';";done < liste_champs.txt //while read A;do B=$(echo "$A"|cut -d"'" -f2);echo "$B=\$$B";done < liste_champs.txt //========================= // Partitionnement $fdisk_cmds=isset($_POST['fdisk_cmds']) ? $_POST['fdisk_cmds'] : 0; $replace_mbr=isset($_POST['replace_mbr']) ? $_POST['replace_mbr'] : 0; //========================= //========================= // Mises à jour $DisableDynamicUpdates=isset($_POST['DisableDynamicUpdates']) ? $_POST['DisableDynamicUpdates'] : "no"; $AutomaticUpdates=isset($_POST['AutomaticUpdates']) ? $_POST['AutomaticUpdates'] : 'yes'; //========================= //========================= // Composants W$ $accessopt=isset($_POST['accessopt']) ? $_POST['accessopt'] : 'on'; $calc=isset($_POST['calc']) ? $_POST['calc'] : 'on'; $charmap=isset($_POST['charmap']) ? $_POST['charmap'] : 'on'; $chat=isset($_POST['chat']) ? $_POST['chat'] : 'on'; $deskpaper=isset($_POST['deskpaper']) ? $_POST['deskpaper'] : 'off'; $hypertrm=isset($_POST['hypertrm']) ? $_POST['hypertrm'] : 'on'; $iisdbg=isset($_POST['iisdbg']) ? $_POST['iisdbg'] : 'off'; $indexsrv_system=isset($_POST['indexsrv_system']) ? $_POST['indexsrv_system'] : 'off'; $media_clips=isset($_POST['media_clips']) ? $_POST['media_clips'] : 'off'; $media_utopia=isset($_POST['media_utopia']) ? $_POST['media_utopia'] : 'off'; $mousepoint=isset($_POST['mousepoint']) ? $_POST['mousepoint'] : 'off'; $mplay=isset($_POST['mplay']) ? $_POST['mplay'] : 'off'; $mswordpad=isset($_POST['mswordpad']) ? $_POST['mswordpad'] : 'on'; $paint=isset($_POST['paint']) ? $_POST['paint'] : 'on'; $rec=isset($_POST['rec']) ? $_POST['rec'] : 'on'; $vol=isset($_POST['vol']) ? $_POST['vol'] : 'on'; $IEAccess=isset($_POST['IEAccess']) ? $_POST['IEAccess'] : 'on'; $msnexplr=isset($_POST['msnexplr']) ? $_POST['msnexplr'] : 'off'; $msmsgs=isset($_POST['msmsgs']) ? $_POST['msmsgs'] : 'off'; // Jeux $freecell=isset($_POST['freecell']) ? $_POST['freecell'] : 'off'; $hearts=isset($_POST['hearts']) ? $_POST['hearts'] : 'off'; $minesweeper=isset($_POST['minesweeper']) ? $_POST['minesweeper'] : 'off'; $pinball=isset($_POST['pinball']) ? $_POST['pinball'] : 'off'; $solitaire=isset($_POST['solitaire']) ? $_POST['solitaire'] : 'off'; $spider=isset($_POST['spider']) ? $_POST['spider'] : 'off'; $zonegames=isset($_POST['zonegames']) ? $_POST['zonegames'] : 'off'; $firewall=isset($_POST['firewall']) ? $_POST['firewall'] : 1; // Contrôler les valeurs: on/off, 0/1 //========================= //========================= // Display: $BitsPerPel=isset($_POST['BitsPerPel']) ? $_POST['BitsPerPel'] : 16; if(($BitsPerPel!=16)&&($BitsPerPel!=32)) {$BitsPerPel=16;} $Xresolution=isset($_POST['Xresolution']) ? $_POST['Xresolution'] : 1024; if(($Xresolution!=800)&&($Xresolution!=1024)&&($Xresolution!=1280)) {$Xresolution=1024;} if($Xresolution=800) {$Yresolution=600;} elseif($Xresolution=1024) {$Yresolution=768;} elseif($Xresolution=1280) {$Yresolution=800;} //========================= //========================= // Serveur TFTP $dhcp_tftp_server=$_SERVER["SERVER_ADDR"]; $sql="SELECT value FROM params WHERE name='dhcp_tftp_server';"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); if($lig->value!="") {$dhcp_tftp_server=$lig->value;} // Il faudrait contrôler que l'adresse est valide, non? } //========================= //========================= // Serveur de temps NTP $dhcp_ntp="91.121.73.63"; /* $ host fr.pool.ntp.org fr.pool.ntp.org has address 91.121.73.63 fr.pool.ntp.org has address 81.25.192.148 fr.pool.ntp.org has address 87.98.146.16 fr.pool.ntp.org has address 88.191.23.205 fr.pool.ntp.org has address 88.178.32.159 */ $sql="SELECT value FROM params WHERE name='dhcp_ntp';"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); if($lig->value!="") {$dhcp_ntp=$lig->value;} // Il faudrait contrôler que l'adresse est valide, non? } //========================= //========================= // M$IE $Home_Page="http://www.mozilla.com/en-US/"; $sql="select valeur from corresp where chemin='HKEY_CURRENT_USER\\software\\microsoft\\Internet Explorer\\Main\\Start Page';"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); if($lig->value!="") {$Home_Page=$lig->valeur;} } $Help_Page="http://www.mozilla.com/en-US/"; $Search_Page="http://www.google.fr/firefox"; //========================= echo "

"; /* for ($i=0;$i\n"; $dossier_unattend_txt="/var/se3/unattended/install/site/$parc[$i]"; if(!file_exists($dossier_unattend_txt)) {mkdir($dossier_unattend_txt);} $fu=fopen("$dossier_unattend_txt/unattend.txt","w+"); if(!$fu) { echo "

ERREUR lors de la création de $dossier_unattend_txt/unattend.txt

\n"; include ("pdp.inc.php"); die(); } */ for($i=0;$i"; $res=mysql_query($sql); if(mysql_num_rows($res)==0) { echo "La machine d'identifiant $id_machine[$i] n'existe pas dans 'se3_dhcp'.
\n"; } else { $lig=mysql_fetch_object($res); //$mac_machine=$lig->mac; $nom_machine=$lig->name; $dossier_unattend_txt="/var/se3/unattended/install/site/"; if(!file_exists($dossier_unattend_txt)) {mkdir($dossier_unattend_txt);} $fu=fopen("$dossier_unattend_txt/$nom_machine.txt","w+"); if(!$fu) { echo "

ERREUR lors de la création de $dossier_unattend_txt/$nom_machine.txt

\n"; include ("pdp.inc.php"); die(); } fwrite($fu,"[GuiUnattended]\r ; Fichier genere automatiquement par se3 pour $nom_machine \r ; ne pas modifier \r ; \r TimeZone=105\r OEMSkipRegional=1\r OemSkipWelcome=1\r EncryptedAdminPassword=No\r AutoLogon=Yes\r \r [Unattended]\r UnattendMode=FullUnattended\r FileSystem=ConvertNTFS\r ExtendOemPartition=1\r OemSkipEula=Yes\r OemPreinstall=Yes\r AutomaticUpdates=$AutomaticUpdates\r OemPnpDriversPath=\\D\r TargetPath=\"\\WINDOWS\"\r AutoActivate=Yes\r DisableDynamicUpdates=$DisableDynamicUpdates\r ; Needed for XP - see .\r UnattendSwitch=Yes\r DriverSigningPolicy=Ignore\r Hibernation=No\r NtUpgrade=No\r Win9xUpgrade=No\r \r [Display]\r BitsPerPel=$BitsPerPel\r Xresolution=$Xresolution\r YResolution=$Yresolution\r Vrefresh=60\r \r [URL]\r Home_Page=\"$Home_Page\"\r Help_Page=\"$Help_Page\"\r Search_Page=\"$Search_Page\"\r \r [Proxy]\r ; le proxy est inactif par defaut : l admin l'active via les clefs si besoin\r Proxy_Enable=0\r Use_Same_Proxy=1\r \r [Networking]\r InstallDefaultComponents=Yes\r \r [NetOptionalComponents]\r ; Install Print Services for UNIX\r LPDSVC=1\r \r [_meta]\r ntinstall_cmd = \"nt5x-install\"\r fdisk_lba=1\r fdisk_confirm=0\r edit_files=0\r middle=\"\"\r bottom=\"\"\r local_admins=\"\"\r\n"); if($fdisk_cmds==0) { fwrite($fu,"fdisk_cmds=\"fdisk /clear 1;fdisk /pri:8000;fdisk /activate:1\"\r\n"); fwrite($fu,"format_cmd=\"format /y /z:seriously /q /u /a /v: c:\"\r\n"); } elseif($fdisk_cmds==1) { fwrite($fu,";fdisk_cmds=\"echo On ne modifie pas les partitions; installation sur la premiere partition principale\"\r\n"); fwrite($fu,"format_cmd=\"format /y /z:seriously /q /u /a /v: c:\"\r\n"); } elseif($fdisk_cmds==2) { fwrite($fu,";fdisk_cmds=\"echo On ne modifie pas les partitions; installation sur la deuxieme partition principale\"\r\n"); fwrite($fu,"format_cmd=\"format /y /z:seriously /q /u /a /v: d:\"\r\n"); } fwrite($fu,"replace_mbr=$replace_mbr\r local_admins=\"\"\r ntp_servers=\"$dhcp_ntp\"\r z_path=\"\\\\$dhcp_tftp_server\\install\"\r netlogon_dir=\"\\\\$se3ip\\netlogon\\domscripts\"\r autolog=\"autolog.pl --logon=1 --user=administrateur --password=wawa\"\r \r [RegionalSettings]\r ; In french in the text\r LanguageGroup=1\r SystemLocale=0000040c\r UserLocale=0000040c\r InputLocale=040c:0000040c\r \r [Branding]\r BrandIEUsingUnattended=Yes\r \r [Components]\r accessopt=$accessopt\r calc=$calc\r charmap=$charmap\r chat=$chat\r deskpaper=$deskpaper\r hypertrm=$hypertrm\r iisdbg=$iisdbg\r indexsrv_system=$indexsrv_system\r media_clips=$media_clips\r media_utopia=$media_utopia\r mousepoint=$mousepoint\r mplay=$mplay\r mswordpad=$mswordpad\r paint=$paint\r rec=$rec\r vol=$vol\r ; Jeux\r freecell=$freecell\r hearts=$hearts\r minesweeper=$minesweeper\r pinball=$pinball\r solitaire=$solitaire\r spider=$spider\r zonegames=$zonegames\r IEAccess=$IEAccess\r msnexplr=$msnexplr\r \r hearts=off\r IEAccess=off\r \r ; Install IIS by default\r iis_common=Off\r iis_inetmgr=Off\r iis_www=off\r ; Docs suggest iis_pwmgr only works on Win2k, but include it\r ; anyway\r iis_pwmgr=Off\r ; Include docs\r iis_doc=Off\r \r\n"); if($firewall==1) { fwrite($fu,"[WindowsFirewall]\r Profiles=WindowsFirewall.TurnOffFirewall\r \r [WindowsFirewall.TurnOffFirewall]\r Mode=0\r\n"); } else { fwrite($fu,"[WindowsFirewall]\r Profiles=WindowsFirewall.TurnOnFirewall\r \r [WindowsFirewall.TurnOnFirewall]\r Mode=1\r\n"); } fclose($fu); } } echo "

Génération des fichiers dans /tftpboot/pxelinux.cfg/ pour l'installation XP unattended.
\n"; // BOUCLE SUR LA LISTE DES $id_machine[$i] // Numéro de l'opération de remontée de rapport: $num_op=get_free_se3_action_tftp_num_op(); for($i=0;$i"; $res=mysql_query($sql); if(mysql_num_rows($res)==0) { echo "La machine d'identifiant $id_machine[$i] n'existe pas dans 'se3_dhcp'.
\n"; } else { $temoin_erreur="n"; $lig=mysql_fetch_object($res); $mac_machine=$lig->mac; $nom_machine=$lig->name; $ip_machine=$lig->ip; echo "Génération pour $nom_machine: "; $corrige_mac=strtolower(strtr($mac_machine,":","-")); $chemin="/usr/share/se3/scripts"; $resultat=exec("/usr/bin/sudo $chemin/pxe_gen_cfg.sh 'unattend_xp' '$corrige_mac' '$ip_machine' '$nom_machine'", $retour); // patch devenu inutile car integre a pxe_gen_cfg.sh // patch pour lancer unattended-generate.sh lorsque l'on personnalise les unattend.txt //$nomscript=date(Y_m_d_H_i_s"); //$nomscript="tmp_unattended_$nomscript.sh"; //system("echo \"#!/bin/bash\n\" > /tmp/$nomscript"); //chmod ("/tmp/$nomscript",0700); //system("echo \"sudo /usr/share/se3/scripts/unattended_generate.sh\n\" >> /tmp/$nomscript"); //system("echo \"rm -f /tmp/$nomscript \n\" >> /tmp/$nomscript"); //exec("at -f /tmp/$nomscript now + 1 minute"); // fin du patch pour lancer unattended-generate.sh if(count($retour)>0){ //echo "

"; //echo "Il semble que la génération du fichier ait échoué...
\n"; echo "ECHEC de la génération du fichier
\n"; for($j=0;$j\n"; } $temoin_erreur="y"; //echo "

\n"; } else { $sql="DELETE FROM se3_tftp_action WHERE id='$id_machine[$i]';"; $suppr=mysql_query($sql); $timestamp=time(); $sql="INSERT INTO se3_tftp_action SET id='$id_machine[$i]', mac='$mac_machine', name='$nom_machine', date='$timestamp', type='unattend_xp', num_op='$num_op', infos='';"; $insert=mysql_query($sql); if(!$insert) { echo "ECHEC de l'enregistrement dans 'se3_tftp_action'
\n"; $temoin_erreur="y"; } /* // Génération du lanceur de récupération: //$dossier="/var/se3/tmp/tftp/$id_machine[$i]"; $dossier="/etc/se3/www-tools/tftp/$id_machine[$i]"; if(!file_exists($dossier)) { mkdir($dossier,0700);} $lanceur_recup="$dossier/lanceur_recup_rapport_action_tftp.sh"; $fich=fopen($lanceur_recup,"w+"); // On donne 4H pour que la récup soit effectuée: $timestamp_limit=time()+4*3600; //fwrite($fich,"/usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'"); fwrite($fich,"sudo /usr/share/se3/scripts/recup_rapport.php '$id_machine[$i]' '$ip_machine' 'rapport' '$timestamp_limit'"); fclose($fich); chmod($lanceur_recup,0750); // Ménage dans les tâches précédentes @exec("sudo /usr/share/se3/scripts/se3_tftp_menage_atq.sh $id_machine[$i]",$retour); // Planification de la tâche //@exec("at -f $lanceur_recup now + 1 minute 2>/dev/null",$retour); @exec("at -f $lanceur_recup now + 1 minute 2>$dossier/at.txt",$retour); //passthru("at -f $lanceur_recup now + 1 minute",$retour); if($retour) { echo "ECHEC de la planification de la tâche.
\n"; for($j=0;$j\n";} //echo "$retour
\n"; $temoin_erreur="y"; } */ /* // Avec ça on arrive à récupérer l'info: // -warning: commands will be executed using /bin/sh - // -job 1572 at 2008-03-01 15:13 - // Mais une fois le at repoussé, ce n'est plus www-se3, mais root qui en est proprio... if(file_exists("$dossier/at.txt")) { $fp=fopen("$dossier/at.txt","r"); while(!feof($fp)) { $ligne=fgets($fp,4096); echo "

-".$ligne."-

"; } fclose($fp); } */ /* $fp=popen("at -f $lanceur_recup now + 1 minute","r"); while(!feof($fp)) { $ligne=fgets($fp,4096); echo "

-".$ligne."-

"; } fclose($fp); */ if($temoin_erreur=="n") { //echo "OK
\n"; echo "OK\n"; // Application de l'action choisie: echo " "; echo "\n"; echo "
\n"; } } } } // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- // POUVOIR TAGUER DANS LA TABLE se3_dhcp LES MACHINES QUI PEUVENT BOOTER EN PXE // Ajouter un champ? // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- // On n'affiche le fichier que pour le dernier (à titre d'info): if(isset($corrige_mac)) { //$fich=fopen("/tftpboot/pxelinux.cfg/01-$lig1->mac","r"); $fich=fopen("/tftpboot/pxelinux.cfg/01-$corrige_mac","r"); if($fich) { echo "

Pour information, voici le contenu du fichier généré:
\n"; echo "

";
						while(!feof($fich)) {
							$ligne=fgets($fich,4096);
							echo htmlentities($ligne);
						}
						echo "
\n"; fclose($fich); } else { echo "

Il n'a pas été possible d'ouvrir le fichier /tftpboot/pxelinux.cfg/01-$corrige_mac

\n"; } } } } echo "

Retour au choix du/des parc(s).

\n"; } } else { print (gettext("Vous n'avez pas les droits nécessaires pour ouvrir cette page...")); } // Footer include ("pdp.inc.php"); ?>