"; if ($parc) { echo "
$parc  \"".gettext("Changer
\n"; } else{ echo "
".gettext("Choisir un parc")."
\n"; echo "
    \n"; $list_parcs=search_machines("objectclass=groupOfNames","parcs"); if ( count($list_parcs)>0) { for ($loop=0; $loop < count($list_parcs); $loop++) { if ($acces_restreint) { if ((!this_parc_delegate($login,$list_parcs[$loop]["cn"],"manage")) and (!this_parc_delegate($login,$list_parcs[$loop]["cn"],"view"))) { continue; } } if ($list_parcs[$loop]["cn"]<>$parc) { echo"
  • ".$list_parcs[$loop]["cn"]."
  • \n";} } } echo "
\n"; } $testniveau=getintlevel(); if (($parc) and ($testniveau>3)) { echo "
".gettext("Installations clientes")."
"; } //else { echo"
Installations clientes
";} // else { // echo "
Gérer les applications
";} // */ if ($parc) { echo "
Etat du parc
\n"; } // else { echo "
Etat du parc
";} echo "
"; } /** * Fonctions d'affichage des appli * @Parametres * @Return */ function affiche_appli() { echo "
\n"; } /** * retourne l'ID de $nom_machine ou 0 a partir de la table hardware * @Parametres * @Return */ function avoir_systemid($nom_machine) { // retourne l'ID de $nom_machine ou 0 a partir de la table hardware if ( ! file_exists("/var/www/se3/includes/dbconfig.inc.php")) return 0; session_start(); $_SESSION["loggeduser"]="$login"; include "dbconfig.inc.php"; $dbnameinvent="ocsweb"; $authlink_invent=@mysql_connect($_SESSION["SERVEUR_SQL"],$_SESSION["COMPTE_BASE"],$_SESSION["PSWD_BASE"]); @mysql_select_db($dbnameinvent) or die("Impossible de se connecter à la base $dbnameinvent."); $query="select ID from hardware where NAME='$nom_machine'"; $result = mysql_query($query,$authlink_invent); if ($result) { $ligne=mysql_num_rows($result); if ($ligne > 0) { while ($res = mysql_fetch_array($result)) { $retour=$res["ID"]; } } else { $retour=0; } return $retour; } else { // Pas d'inventaire a ce nom return 0; } } /** * test si une machine cliente repond au ping * @Parametres $ip adresse a pinguer * @Return */ function fping($ip) { // return exec("ping ".$ip." -c 1 -w 1 | grep received | awk '{print $4}'"); // system("ping ".$ip." -c 1 -w 1 > /dev/null", $ret); exec("/usr/share/se3/sbin/tcpcheck 1 $ip:445 | grep alive",$arrval,$ret); if ( $ret != "1" ) { return 1; } else { return 0; } } /** * test la connexion ssh sur une machine cliente * @Parametres $ip adresse a tester * @Return */ function ssh($ip) { $fp=@fsockopen($ip,22,$errno,$errstr,5); if (!$fp) { return 0; } else { return 1; } } /** * test si une machine cliente repond sur le port 3389 * @Parametres $ip adresse a tester * @Return construit un fichier ts dans /tmp pour cette machine si c'est le cas */ function ts($ip) { $fp=@fsockopen($ip,3389,$errno,$errstr,5); if (!$fp) { return 0; } else { $ligne="screen mode id:i:2 desktopwidth:i:1400 desktopheight:i:1050 session bpp:i:16 winposstr:s:0,1,23,0,1379,619 full address:s:$ip compression:i:1 keyboardhook:i:2 audiomode:i:0 redirectdrives:i:0 redirectprinters:i:1 redirectcomports:i:0 redirectsmartcards:i:1 displayconnectionbar:i:1 autoreconnection enabled:i:1 username:s: domain:s: alternate shell:s: shell working directory:s: disable wallpaper:i:1 disable full window drag:i:1 disable menu anims:i:1 disable themes:i:0 disable cursor setting:i:0 bitmapcachepersistenable:i:1"; $content_dir = '/tmp/'; $fichier_rdp = $content_dir . "$ip.rdp"; if (file_exists($fichier_rdp)) unlink($fichier_rdp); $get= fopen ($fichier_rdp, "w+"); fputs($get,$ligne); fclose($get); $ts= "\"\"\n"; return $ts; } } /** * test si une machine cliente repond sur le port 5900 vnc * @Parametres $ip adresse a tester * @Return construit un fichier vnc dans /tmp pour cette machine si c'est le cas */ function vnc($ip) { $fp=@fsockopen($ip,5900,$errno,$errstr,5); if (!$fp) { // echo "$errstr ($errno)
\n"; return 0; } else { $ligne="[connection] host=$ip port=5900 proxyhost= proxyport=5900 password= [options] use_encoding_0=1 use_encoding_1=1 use_encoding_2=1 use_encoding_3=0 use_encoding_4=1 use_encoding_5=1 use_encoding_6=1 use_encoding_7=1 use_encoding_8=1 use_encoding_9=1 use_encoding_10=0 use_encoding_11=0 use_encoding_12=0 use_encoding_13=0 use_encoding_14=0 use_encoding_15=0 use_encoding_16=1 preferred_encoding=5 restricted=0 viewonly=0 nostatus=0 nohotkeys=0 showtoolbar=1 AutoScaling=0 fullscreen=0 autoDetect=1 8bit=0 shared=1 swapmouse=0 belldeiconify=0 emulate3=1 emulate3timeout=100 emulate3fuzz=4 disableclipboard=0 localcursor=1 Scaling=0 scale_num=100 scale_den=100 cursorshape=1 noremotecursor=0 compresslevel=6 quality=6 ServerScale=1 EnableCache=0 QuickOption=1 UseDSMPlugin=0 UseProxy=0 DSMPlugin="; $content_dir = '/tmp/'; $fichier_vnc = $content_dir . "$ip.vnc"; if (file_exists($fichier_vnc)) unlink($fichier_vnc); $get= fopen ($fichier_vnc, "w+"); fputs($get,$ligne); fclose($get); $vnc= "\"\"\n"; return $vnc; } } /** * pour l'affichage des heures dans le menu planification des allumage/extinction postes * @Parametres * @Return retourne un */ function heure_deroulante($parcf,$jourf,$type_actionf) { global $authlink; if ($parcf) { $resultf=mysql_query("select heure from actionse3 where action='$type_actionf' and parc='$parcf' and jour='$jourf';", $authlink) or die("Impossible d'effectuer la requete"); if ($resultf) { $rowf=mysql_fetch_row($resultf); $heuref=$rowf[0]; } } $timef=explode(":",$heuref); //$heure_act=date("H"); //$minute_act=date("m"); for ($if=0;$if<24;$if++) { $selectedf=""; for ($jf=0;$jf<4;$jf++) { $mf=$jf*15; $selectedf=""; if (($if==$timef[0]) and ($mf==$timef[1])) { $selectedf="SELECTED"; } //elseif ($heure_act==$i-1) { $selected="SELECTED"; } if ($mf<10) { echo "\n"; } else { echo "\n"; } $selectedf=""; } } } // test si une action d'allumage extinction est prevu sur un parc donne // un jour donne ( retourne checked pour un select) function jour_check($parcf,$jourf,$type_actionf) { global $authlink; if ($parcf) { $resultf=mysql_query("select heure from actionse3 where parc='$parcf' and jour='$jourf' and action='$type_actionf';", $authlink) or die("Impossible d'effectuer la requete"); if ($resultf) { if (mysql_num_rows($resultf)>0) { return "checked"; } } } } /** * affiche le tableau detaillant l'allumage des machines et la prise de controle * @Parametres * @Return */ function detail_parc($parc) { require_once ("printers.inc.php"); global $smbversion; echo "\n
\n
\n"; echo "\n\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $mp_all=gof_members($parc,"parcs",1); // Filtrage selon critere if ("$filtrecomp"=="") $mp=$mp_all; else { $lmloop=0; $mpcount=count($mp_all); for ($loop=0; $loop < count($mp_all); $loop++) { $mach=$mp_all[$loop]; if (preg_match("/$filtrecomp/",$mach)) $mp[$lmloop++]=$mach; } } if ( count($mp)>0) { sort($mp); for ($loop=0; $loop < count($mp); $loop++) { $mpenc=urlencode($mp[$loop]); $mp_en_cours=urldecode($mpenc); $mp_curr=search_machines("(&(cn=$mp_en_cours)(objectClass=ipHost))","computers"); if (isset($mp_curr[0]["ipHostNumber"])) { $iphost=$mp_curr[0]["ipHostNumber"]; } // Test si on a une imprimante ou une machine $resultat=search_imprimantes("printer-name=$mp_en_cours","printers"); $suisje_printer="0"; for ($loopp=0; $loopp < count($resultat); $loopp++) { if ($mp_en_cours==$resultat[$loopp]['printer-name']) { $suisje_printer="1"; continue; } } // On teste si la machine a des connexions actives // en fonction de la version de samba // On ne rentre dedans que si on est pas une imprimante if ($suisje_printer!="1") { $login=exec ("smbstatus -b | grep $iphost |gawk -F' ' '{print $2}' |head -n1"); if ($login=="") { $etat_session="\n"; } else { $etat_session="\n"; } if (isset($mp_curr[0]["ipHostNumber"])) { $iphost=$mp_curr[0]["ipHostNumber"]; $ping=fping($iphost); // On teste si la machine est en marche ou pas if ($ping) { $etat=aide(gettext("La machine est actuellement allumée, cliquez pour l eteindre"),"\n"); } else { $etat=aide(gettext("La machine est actuellement éteinte, cliquez pour l allumer"),"\n"); } if (file_exists ("/var/www/se3/includes/dbconfig.inc.php")) { // Inventaire $sessid=session_id(); $systemid=avoir_systemid($mpenc); // Affichage du tableau echo ""; // Affichage de l'icone informatique // Type d'icone en fonction de l'OS require_once("fonc_outils.inc.php"); $retourOs = type_os($mpenc); if($retourOs == "0") { $icone="computer.png"; } elseif($retourOs == "Linux") { $icone="linux.png"; } elseif($retourOs == "XP") { $icone="winxp.png"; } elseif($retourOs == "98") { $icone="win.png"; } echo ""; } else { echo ""; } echo "\n\n\n"; echo "\n"; } } } } echo "
\n"; echo "\"Station\"
\"Station\"$mp_en_cours$etat$etat_session "; if ($ping) { $ts=ts($iphost); $vnc=vnc($iphost); if ($ts) { echo $ts; } if ($vnc) { echo $vnc; } if ((!$ts) and (!$vnc)) { echo "\n"; } } else { echo "\n"; } echo "
\n"; echo "
\n"; } /** * Affiche un tableau des imprimantes dans un parc * @Parametres $parc le nom du parc a tester * @Return */ function detail_parc_printer($parc) { // include "printers.inc.php"; $mp_all=gof_members($parc,"parcs",1); // Filtrage selon critere if ("$filtrecomp"=="") $mp=$mp_all; else { $lmloop=0; $mpcount=count($mp_all); for ($loop=0; $loop < count($mp_all); $loop++) { $mach=$mp_all[$loop]; if (preg_match("/$filtrecomp/",$mach)) $mp[$lmloop++]=$mach; } } if ( count($mp)>0) { sort($mp); $tableau_printer = "\n
\n
\n"; $tableau_printer .= "\n\n"; $tableau_printer .= "\n"; $tableau_printer .= "\n"; $tableau_printer .= "\n"; $tableau_printer .= "\n"; $tableau_printer .= "\n"; $suisje_printer="0"; for ($loop=0; $loop < count($mp); $loop++) { $mpenc=urlencode($mp[$loop]); $mp_en_cours=urldecode($mpenc); $mp_curr=search_machines("(&(cn=$mp_en_cours)(objectClass=ipHost))","computers"); // Test si on a une imprimante ou une machine $resultat=search_imprimantes("printer-name=$mp_en_cours","printers"); for ($loopp=0; $loopp < count($resultat); $loopp++) { if ($mp_en_cours==$resultat[$loopp]['printer-name']) { $suisje_printer="1"; $tableau_printer .= ""; $tableau_printer .= ""; $tableau_printer .= "\n"; $printer = $mp_en_cours; $sys= exec("/usr/bin/lpstat -p $printer | grep enabled"); $sys2= exec("/usr/bin/lpstat -a $printer | grep not"); if (($sys != "") and ($sys2 == "")) { $tableau_printer .= "\n"; // Travaux d'impression $sys= exec("/usr/bin/lpstat -o $printer"); if ($sys != "") { $tableau_printer .= "\n"; continue; } } } $tableau_printer .= "
\"Imprimante\"$mp_en_cours\n"; } else { if ($sys2 == "") { $tableau_printer .= "\n"; } else { $tableau_printer .= "\n"; } } $tableau_printer .= "\n"; } else { $tableau_printer .= "\n"; } $tableau_printer .= "
"; if ($suisje_printer=="1") { echo $tableau_printer; echo "
"; } } } /** * Cette machine a-t-elle ete validee pour la liaison ssh? * @Parametres $mpenc le nom de la machine a tester * @Return */ function deja_valid($mpenc) { $fichier_valid="/var/se3/unattended/install/computers/$mpenc.tmp"; if(!(file_exists($fichier_valid) and (filesize($fichier_valid) > 2) )) { return aide(gettext("Cette machine n a jamais été validée complètement"),"\"".gettext("Machine"); } else { return aide(gettext("Pour supprimer ce poste de la liste des clients validés, nécéssaire si "),"\"Supprimer"); } } /** * Supprime l'anti slash * @Parametres $string la chaine a traiter * @Return */ function enleveantislash($string) { $temp=rawurlencode($string); $temp1=preg_replace("/%5C%27/","%27",$temp); $temp2=preg_replace("/%5C%22/","%22",$temp1); $final=rawurldecode($temp2); return $final; } /** * Supprime la double barre * @Parametres $string la chaine a traiter * @Return */ function enlevedoublebarre($string) { $temp=rawurlencode($string); $temp1=preg_replace("/%5C%5C/","%5C",$temp); $final=rawurldecode($temp1); return $final; } /** * Test reponse d'une url * @Parametres $string la chaine a traiter * @Return */ function filemtime_remote($uri) { $uri = parse_url($uri); $handle = @fsockopen($uri['host'],80); if(!$handle) return 0; fputs($handle,"GET $uri[path] HTTP/1.1\r\nHost: $uri[host]\r\n\r\n"); $result = 0; while(!feof($handle)) { $line = fgets($handle,1024); if(!trim($line)) break; $col = strpos($line,':'); if($col !== false) { $header = trim(substr($line,0,$col)); $value = trim(substr($line,$col+1)); if(strtolower($header) == 'last-modified') { $result = strtotime($value); break; } } } fclose($handle); return $result; } /** * Selectionne des scripts * @Parametres * @Return */ function list_alpha() { global $authlink; $query="Select nom,script,valide from appli_se3 order by nom asc;"; $resultat = mysql_query($query) or die ( "Probleme d'accès à la base" ); $query_nom="Select nom from appli_se3 order by nom asc;"; $resultat_nom = mysql_query($query_nom) or die ( "Probleme d'accès à la base" ); //echo "
\"\" Retour vers liste par catégories
"; echo "\n\n\n\n\n\n
\n"; echo "\n\n"; while ($row_nom=mysql_fetch_row($resultat_nom)) { $chaine = strtoupper(substr("$row_nom[0]", 0,1)); if ($test_alpha<>$chaine) { echo "\n"; $test_alpha=$chaine; } } echo "
$chaine
\n\n"; while ($row=mysql_fetch_row($resultat)) { $chaine = strtoupper(substr("$row[0]", 0,1)); if ($test_alpha<>$chaine) { echo "\n"; $test_alpha=$chaine; } if ((!$row[2]) or (!file_exists('/var/se3/unattended/install/scripts/'.$row[1]))) { $alert=aide(gettext("Une application n est pas validée si lors de la création ou de la modification de de cette application, les executables demandés dans le script ne sont pas trouvés à l endroit indiqué. A vous de les placer au bon endroit (X:\\unattended\\install\\packages) puis Editer l application, puis cliquer sur Enregistrer mes modifications, si les executables sont trouvés, votre application sera automatiquement validée."),"\"Application"); } else { $alert=aide(gettext("Cette application a été validée, cela signifie que les executables ont été trouvés. Cela ne signifie pas que le script associé à l application est correct. Seul les scripts importés du serveur central ont été testés par l equipe de sambaedu."),"\"Application"); } echo "\n\n\n\n"; } echo "
".$row[0]."".$row[1]."$alert\"\"
\n"; } /** * Test la presence d'un fichier de log pour une machine * @Parametres $machine la machine a tester * @Return */ function test_log($machine) { $fichier_log="/var/se3/unattended/install/computers/$machine.log"; if(!(file_exists($fichier_log) and (filesize($fichier_valid) > 2) )) { // $fp = @fopen($fichier_log, "r"); $tab = file($fichier_log); $inverse_tab=array_reverse($tab); if (preg_match("/A)bort/i",$inverse_tab[0])) { return true; } else { return false; } } } /** * Ajoute une machine dans un parc * @Parametres $name : nom de la machine - $parc : Parc dans lequel on veut ajouter la machine * @Return Affichage HTML d'un message d'ajout */ function add_machine_parc($name,$parc) { include("config.inc.php"); $ret .= "Ajout de l'ordinateur $name au parc $parc
"; $cDn = "cn=".$name.",".$computersRdn.",".$ldap_base_dn; $pDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; exec ("/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\""); // #NJ 10-2004 reconstruction des partages imprimantes par parc exec ("/usr/share/se3/sbin/printers_group.pl"); update_wpkg(); return $ret; } /** * vire une machine d'un parc, Supprime le parc si la machine est la derniere dedans * @Parametres Nom du parc et de la machine * @Return */ function supprime_machine_parc($mpenc,$parc) { include "config.inc.php"; require_once ("ihm.inc.php"); require_once("ldap.inc.php"); require_once("printers.inc.php"); // On compte si la demande ne porte pas sur toutes les machines $mp_all=gof_members($parc,"parcs",1); $mpcount=count($mp_all); // Si la demande porte sur la derniere machine du parc // On vire le parc if ($mpcount == "1") { $cDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; exec ("/usr/share/se3/sbin/entryDel.pl \"$cDn\""); } if ($mpcount > "1") { $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; } } $pDn = "cn=".$parc.",".$parcsRdn.",".$ldap_base_dn; if ($suisje_printer=="yes") { // je suis une imprimante $cDn = "cn=".$mpenc.",".$printersRdn.",".$ldap_base_dn; } else { // je suis un ordinateur $cDn = "cn=".$mpenc.",".$computersRdn.",".$ldap_base_dn; } // on supprime exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); } update_wpkg(); // Modif pour italc exec ("/usr/bin/sudo /usr/share/se3/scripts/italc_generate.sh"); } /** * renomme une machine dans tous ses parcs * @Parametres $oldname $name * @Return affichage html */ function renomme_machine_parcs($oldname,$name) { require_once ("ihm.inc.php"); require_once ("ldap.inc.php"); if ("$name"=="$oldname") { $ret="rien a faire
"; } else { $ret="renommage de $oldname en $name dans :
"; $parc=search_parcs($oldname); if (isset($parc)) { foreach($parc as $key=>$value) { $ret .= add_machine_parc($name,$parc[$key]['cn']); supprime_machine_parc($oldname,$parc[$key]['cn']); } } } return $ret; } /** * Test si un parc exist * @Parametres Nom du parc * @Return yes ou no */ function parc_exist($parc) { include "config.inc.php"; $list_parcs=search_machines("objectclass=groupOfNames","parcs"); if ( count($list_parcs)>0) { for ($loop=0; $loop < count($list_parcs); $loop++) { if ($parc==$list_parcs[$loop]["cn"]) { return yes; } } } return no; } /** * Fonction permettant de nettoyer la table delegation en fonction des parcs existants * @Parametres * @Return */ function nettoie_delegation() { include "config.inc.php"; $query="select parc from delegation GROUP BY parc"; $result= mysql_query($query); if ($result) { $ligne= mysql_num_rows($result); if ($ligne>0) { while ($row = mysql_fetch_row($result)) { $exist_parc=parc_exist($row[0]); if ($exist_parc=="no") { $query_del="delete from delegation where parc='$row[0]'"; mysql_query($query_del); echo "
Suppression de la délégation pour le parc $row[0]"; echo "
"; } else { continue; } } } } } /** * Mises a jour des fichiers xml de wpkg * @Parametres * @Return */ function update_wpkg() { global $computersRdn, $parcsRdn, $ldap_base_dn; // Met a jour les fichiers : // /var/se3/unattended/install/wpkg/hosts.xml // /var/se3/unattended/install/wpkg/profiles.xml $wpkgUpdateHostsProfiles="/usr/share/se3/scripts/update_hosts_profiles_xml.sh"; if (file_exists($wpkgUpdateHostsProfiles)) exec ("$wpkgUpdateHostsProfiles '$computersRdn' '$parcsRdn' '$ldap_base_dn'"); // Met a jour le fichier /var/se3/unattended/install/wpkg/droits.xml $wpkgUpdateDroit="/usr/share/se3/scripts/update_droits_xml.sh"; if (file_exists($wpkgUpdateDroit)) exec ("$wpkgUpdateDroit"); } /** * Supprime une machine de l'inventaire * @Parametres $name : Nom de la machine * @Return Message d'erreur SQL en cas de non suppression */ function suppr_inventaire($name) { $id=avoir_systemid($name); if($id!=0) { $exec = mysql_query("SHOW TABLES FROM `ocsweb`"); include "dbconfig.inc.php"; $dbnameinvent="ocsweb"; $authlink_invent=@mysql_connect($_SESSION["SERVEUR_SQL"],$_SESSION["COMPTE_BASE"],$_SESSION["PSWD_BASE"]); @mysql_select_db($dbnameinvent) or die("Impossible de se connecter à la base $dbnameinvent."); while($row = mysql_fetch_row($exec)) { if($row[0]=="hardware") { mysql_query("DELETE from `hardware` where `ID`='$id'",$authlink_invent); } else { mysql_query("DELETE from `$row[0]` where `HARDWARE_ID`='$id'",$authlink_invent); } } } } /* * fonction generant un tableau global a partir de smbstatus * on cache le resultat 2 minutes afin de reduire la charge * @Parametres : aucun * @ smb_status["machine"]["login"] * ["ip"] */ function smbstatus() { static $smb_login; static $timestamp; if ((time() > ($timestamp + 120)) || !(isset($smb_login))) { $timestamp = time(); unset($smb_login); require_once ("ldap.inc.php"); exec("sudo smbstatus -b 2>/dev/null", $resultat); foreach ($resultat as $ligne) { $table = preg_split("/[\s]+/", $ligne); if ((count($table) == 5) && ($table[1] != root) && ($table[1] != nobody) && (preg_match("/(.+)\\$/", $table[1]) === 0)) { $mp_curr=search_machines("(&(ipHostNumber=$table[3])(objectClass=ipHost))","computers"); if (isset($mp_curr[0]["cn"])) { $hostname=$mp_curr[0]["cn"]; $smb_login[$hostname]["login"] = $table[1]; $smb_login[$hostname]["ip"] = preg_replace("/[\(\)]/", "", $table[3]); } else { $mp_curr=search_machines("(&(cn=$table[3])(objectClass=ipHost))","computers"); if (isset($mp_curr[0]["cn"])) { $hostname=$mp_curr[0]["cn"]; $smb_login[$hostname]["login"] = $table[1]; $smb_login[$hostname]["ip"] = preg_replace("/\(ipv4:(.+):(.+)\)/", "\${1}", $table[4]); } } } } } return($smb_login); } /* * fonction destinee a supprimer completement une machine * @Parametres $computer : Nom de la machine */ //function suppression_computer($computer, $tab_options=array('all')) { function suppression_computer($computer) { global $computersRdn, $parcsRdn, $printersRdn, $ldap_base_dn; $retour=""; $resultat=search_imprimantes("printer-name=$computer","printers"); $suisje_printer="non"; for ($loopp=0; $loopp < count($resultat); $loopp++) { if ($computer==$resultat[$loopp]['printer-name']) { $suisje_printer="yes"; $retour="$computer est une imprimante. Suppression non effectuee.
\n"; break; } } if($suisje_printer=="non") { $tab_parcs=search_machines("(&(member=cn=$computer,$computersRdn,$ldap_base_dn)(objectClass=groupOfNames))","parcs"); for ($loop=0;$loop\n"; } else { $texte = $login . $action_parc['msgUserLogged']; $etat_session.=""; } return array(login => $login, html => $etat_session); } /* * fonction destinee rebooter une machine * @Parametres $ip : adresse ip * $nom : nom machnie * $wake : action * $shutdownreboot */ function wake_shutdown_or_reboot($ip, $nom, $wake, $shutdown_reboot) { global $restriction_parcs, $tab_delegated_parcs; if($restriction_parcs=='y') { $temoin_erreur="y"; for($loop=0;$loopLa machine $nom n'est pas dans un de vos parcs delegues.

\n"; die(); } } if (fping($ip)) { $smb_login = smbstatus(); if ($shutdown_reboot == "wait1") { echo $action_parc['msgNoSignal']; } elseif ($shutdown_reboot == "wait2") { $login = $smb_login[$nom]['login']; if (!($login)) { @start_poste("shutdown", $nom); echo $action_parc['cmdSendReboot']; } else { echo $login . $action_parc['msgUserIsLogged']; } } elseif ($shutdown_reboot == "reboot") { @start_poste("reboot", $nom); echo $action_parc['msgSendReboot']; } } else { if ("$wake" == "y") { @start_poste("wol", $nom); echo $action_parc['msgSendWakeup']; } } } ?>