Autoit
22 août 2012
Autoit - Changement d'adresse IP pour les feignants
Par Romain Tiennot le mercredi 22 août 2012, 09:00
29 février 2012
Désactiver votre clavier/souris pour un nettoyage de printemps
Par Romain Tiennot le mercredi 29 février 2012, 08:50
3 janvier 2012
Vérification de nom de poste libre via Active Directory
Par Romain Tiennot le mardi 3 janvier 2012, 08:51
Souvent dans les entreprises, il y a un nommage des postes par bâtiments ou encore agence. J'ai souvent eu a chercher dans l'Active Directory un nom de poste disponible afin de préparer un nouveau. Ce script a pour but de verifier dans l'annuaire de l'AD le prochaine ordinateur de libre.
Dans mon exemple, il y a trois site :
- Site 1
- Site 2
- Site 3
Le site 1 à 5 etage :
- RDC avec nomage "SITE1-000" à "SITE1-099"
- 1er avec nomage "SITE1-100" à "SITE1-199"
- 2eme avec nomage "SITE1-200" à "SITE1-299"
- 3eme avec nomage "SITE1-300" à "SITE1-399"
- 4eme avec nomage "SITE1-400" à "SITE1-499"
Le site 2 à 4 etage :
- RDC avec nomage "SITE2-000" à "SITE2-099"
- 1er avec nomage "SITE2-100" à "SITE2-199"
- 2eme avec nomage "SITE2-200" à "SITE2-299"
- 3eme avec nomage "SITE2-300" à "SITE2-399"
Le site 3 à 3 etage :
- RDC avec nomage "SITE3-000" à "SITE3-099"
- 1er avec nomage "SITE3-100" à "SITE3-199"
- 2eme avec nomage "SITE3-200" à "SITE3-299"
- 3eme avec nomage "SITE3-300" à "SITE3-399"
Par exemple, lorsque l'on aura cliqué sur "Site 3" puis "2eme Etage", il va chercher dans l'active directory si "SITE3-200" est libre. Si c'est le cas, il vous l'affichera et vous pouvez l'utiliser sinon, il incrémentera jusqu’à trouver un poste de libre puis vous l'afficher.
Voici le code :
#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=ordi.ico #AutoIt3Wrapper_UseX64=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <Excel.au3> #include <AD.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <IE.au3> #include <Excel.au3> Global $site1, $site2, $site3, $dDisplay, $nbEnd, $quit, $computer, $i, $nbStart, $suffix, $nbhote GUICreate("Ordinateur de libre", 300, 300, 192, 124) _AD_Open() start() func start() GUICtrlCreateLabel("Veuillez cliquer sur l'un des boutons :", 20, 10, 200, 17) $site1 = GUICtrlCreateButton("Site 1", 10, 40, 140, 50) $site2 = GUICtrlCreateButton("Site 2", 150, 40, 140, 50) $site3 = GUICtrlCreateButton("Site 3", 10, 90, 140, 50) $quit = GUICtrlCreateButton("Quitter", 160,250,120,40) GUISetState(@SW_SHOW) while 1 $nMsg = GUIGetMsg() Switch $nMsg case $site1 clear() site1() case $site2 clear() site2() case $site3 clear() site3() Case $GUI_EVENT_CLOSE _AD_Close() Exit Case $quit _AD_Close() Exit EndSwitch WEnd EndFunc func clear() Global $dDisplay[4] = [$site1, $site2, $site3, $quit] For $i = 0 To UBound($dDisplay) - 1 GUICtrlDelete($dDisplay[$i]) Next EndFunc func site1() GUICtrlCreateGroup("Site N°1", 10, 40, 280, 155) $site10 = GUICtrlCreateButton("Rez-de-chaussé", 35,60,100,40) $site11 = GUICtrlCreateButton("1er Etage", 160,60,100,40) $site12 = GUICtrlCreateButton("2eme Etage", 35,105,100,40) $site13 = GUICtrlCreateButton("3eme Etage", 160,105,100,40) $site14 = GUICtrlCreateButton("4eme Etage", 35,150,100,40) $suffix = "SITE1-" $nbhote = "3" $retour = GUICtrlCreateButton("Retour", 20,250,120,40) $quit = GUICtrlCreateButton("Quitter", 160,250,120,40) while 1 $nMsg = GUIGetMsg() Switch $nMsg case $site10 $nbStart = "000" $nbEnd = "099" verif() case $site11 $nbStart = "100" $nbEnd = "199" verif() case $site12 $nbStart = "200" $nbEnd = "299" verif() case $site13 $nbStart = "300" $nbEnd = "399" verif() case $site14 $nbStart = "400" $nbEnd = "499" verif() Case $GUI_EVENT_CLOSE _AD_Close() Exit Case $quit _AD_Close() Exit Case $retour GUICtrlDelete($site14) GUICtrlDelete($site13) GUICtrlDelete($site12) GUICtrlDelete($site11) GUICtrlDelete($site10) GUICtrlDelete($retour) clear() start() EndSwitch WEnd EndFunc func site2() GUICtrlCreateGroup("Site N°2", 10, 40, 280, 120) $site20 = GUICtrlCreateButton("Rez-de-chaussé", 35,60,100,40) $site21 = GUICtrlCreateButton("1er Etage", 160,60,100,40) $site22 = GUICtrlCreateButton("2eme Etage", 35,105,100,40) $site23 = GUICtrlCreateButton("3eme Etage", 160,105,100,40) $suffix = "site2-" $nbhote = "3" $retour = GUICtrlCreateButton("Retour", 20,250,120,40) $quit = GUICtrlCreateButton("Quitter", 160,250,120,40) while 1 $nMsg = GUIGetMsg() Switch $nMsg case $site20 $nbStart = "000" $nbEnd = "099" verif() case $site21 $nbStart = "100" $nbEnd = "199" verif() case $site22 $nbStart = "200" $nbEnd = "299" verif() case $site23 $nbStart = "300" $nbEnd = "399" verif() Case $GUI_EVENT_CLOSE _AD_Close() Exit Case $quit _AD_Close() Exit Case $retour GUICtrlDelete($site23) GUICtrlDelete($site22) GUICtrlDelete($site21) GUICtrlDelete($site20) GUICtrlDelete($retour) clear() start() EndSwitch WEnd EndFunc func site3() GUICtrlCreateGroup("Site N°3", 10, 40, 280, 110) $site30 = GUICtrlCreateButton("Rez-de-chaussé", 35,60,100,40) $site31 = GUICtrlCreateButton("1er Etage", 160,60,100,40) $site32 = GUICtrlCreateButton("2eme Etage", 35,105,100,40) $suffix = "site3-" $nbhote = "3" $retour = GUICtrlCreateButton("Retour", 20,250,120,40) $quit = GUICtrlCreateButton("Quitter", 160,250,120,40) while 1 $nMsg = GUIGetMsg() Switch $nMsg case $site30 $nbStart = "000" $nbEnd = "099" verif() case $site31 $nbStart = "100" $nbEnd = "199" verif() case $site32 $nbStart = "200" $nbEnd = "299" verif() Case $GUI_EVENT_CLOSE _AD_Close() Exit Case $quit _AD_Close() Exit Case $retour GUICtrlDelete($site32) GUICtrlDelete($site31) GUICtrlDelete($site30) GUICtrlDelete($retour) clear() start() EndSwitch WEnd EndFunc func verif() for $i = $nbStart -1 to $nbEnd - 1 step 1 $computer = $i + 1 if NOT _AD_ObjectExists(_AD_GetObjectAttribute($suffix&StringRight("00"&$computer,$nbhote) & "$", "sAMAccountName"))Then MsgBox(0,"",$suffix&StringRight("00"&$computer,$nbhote)) ExitLoop EndIf Next EndFunc
A bientôt,
Romain
6 octobre 2011
Console - Activation/Désactivation Bureau à Distance distant
Par Romain Tiennot le jeudi 6 octobre 2011, 15:29
J'ai conçu un script permettant d'activer ou non le bureau à distance sur un poste distant.
Il faut être administrateur du domaine pour l'utiliser.
Il suffit d'indiquer le nom du poste en question et de faire son choix en l'activant ou non.
Vous pouvez retrouver le script en Annexe.
A bientôt, Romain
12 septembre 2011
Modification Fichier Host via un fichier Excel
Par Romain Tiennot le lundi 12 septembre 2011, 21:55
J'ai concu un script permetant de modifier le fichier Host de plusieurs Ordinateurs. Le fichier Host sur trouve dans le répertoire suivant :
C:\Windows\System32\drivers\etc
Le fichier Host permet de rediriger une URL vers une IP. Dans mon exemple, je redirige "google.fr" vers une IP d'un serveur OVH. Pratique pour basculer quelques utilisateurs à leur insut vers un serveur Web en test.
Vous trouverez en pièce jointe le script compilé et voici le code source :
#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=favicon256.ico #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <Excel.au3> #include <GuiConstants.au3> #include <GuiIPAddress.au3> #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> HotKeySet("{ENTER}", "_btnSubmit") $fichier = @ScriptDir & "\host.xls" If FileExists($fichier) <> 1 Then msgbox(64,"ERREUR","Le fichier host.xls n'est pas présent dans "&@ScriptDir) ; Si le fichier n'existe pas, ERREUR Exit EndIf ProcessClose("Excel.exe") _ExcelBookOpen($fichier) $oExcel = ObjGet("","Excel.Application") $oExcel.SheetsInNewWorkbook = 1 $oExcel.Visible = 0 $nbnom = 0 $nbpc = 0 while ($oExcel.Activesheet.Cells(2+$nbnom,1).Value) $nbnom = 1+$nbnom WEnd while ($oExcel.Activesheet.Cells(2+$nbpc,2).Value) $nbpc = 1+$nbpc WEnd if $nbnom <> $nbpc Then msgbox(0,"Erreur",'Un champ dans colonne "Utilisateur" ou colonne "PC" n'&"'"&'est pas saisie') Exit elseif $nbnom = 0 or $nbpc = 0 Then msgbox(0,"Erreur","Aucun champs a été renseigné dans la collone Utilisateur ou PC") Exit EndIf $Ipgui=GUICreate("IP", 249, 152) GUICtrlCreateLabel("Veuillez cliquer sur l'un des boutons :", 10, 10, 200, 17) $hIpgui = _GUICtrlIpAddress_Create($Ipgui, 25, 90, 200) $quit = GUICtrlCreateButton("Quitter", 140,120,80,25) $ok = GUICtrlCreateButton("OK", 35,120,80,25) GUISetState(@SW_SHOW) while 1 $nMsg = GUIGetMsg() Switch $nMsg Case $quit Exit Case $ok $IP = _GUICtrlIpAddress_Get($hIPgui) guidelete("IP") ExitLoop Case $GUI_EVENT_CLOSE Exit EndSwitch wend GUICreate("Nom", 249, 152) GUICtrlCreateLabel("Veuillez cliquer sur l'un des boutons :", 10, 10, 200, 17) $Namegui = GUICtrlCreateInput("", 25, 90) $quit = GUICtrlCreateButton("Quitter", 140,120,80,25) $ok = GUICtrlCreateButton("OK", 35,120,80,25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $quit Exit Case $ok $dns = GUICtrlRead($Namegui) guidelete("Nom") ExitLoop Case $GUI_EVENT_CLOSE Exit EndSwitch Wend $response = MsgBox(4, "Modification Host", "Etes-vous sur de vouloir modifier le fichier Host ?") If $response = 7 then Exit EndIf For $i = 1 To $nbnom Step 1 $pc = $oExcel.Activesheet.Cells(1 + $i, 2).Value $file = FileOpen("\\"&$pc&"\c$\WINDOWS\system32\drivers\etc\hosts", 1) If $file = -1 Then MsgBox(0, "Error", "Impossible d'accèder au fichier host de "&$pc&".") EndIf FileWrite($file, @CRLF&$ip&@TAB&$dns) FileClose($file) Next ; Part au debut de la boucle ProcessClose("Excel.exe") MsgBox(0,"Terminé","Les modifications sont terminées") Func _btnSubmit() $nMsg = $ok EndFunc
Je vous laisse regarder la vidéo
A bientôt
« billets précédents - page 1 de 2