Page 1 sur 2

[R] Ajout droit admin

Posté : jeu. 25 févr. 2010 17:31
par africanism
Bonjour a tous
voila je voudrais crée un script pour ajoute le user dans le localgroup admin en fonction de si sont pc et sont user sont référence dans un fichier excel.
du genre
si le nom du pc et le user sont référence dans un fichier ca exécute le script
dans le cas contraire ca lui met un message comme quoi il n'est pas référence dans le fichier droit admin.

Pouvez vous m'éclairé sur la marche a suivre.

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 10:23
par africanism
Bonjour
personne n'a une petite idee ou voir meme un exemple ou un debut de script.
ou meme deja la commande quand je tape un user il va verifier s'il existe dans un fichier excel.

merci a tous

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 10:56
par africanism
Alors voici ce que j'ai commence

Code : Tout sélectionner

#include <GUIConstants.au3>
$filename = FileOpen("admin.xls", 0)
$user = InputBox('Utilisateur', "Login ex:DOMAIN\User1")
RunAs(administrator, @ComputerName, password, 0, @ComSpec, @SystemDir)
RunWait(@ComSpec & ' /c net localgroup Administrators /add ' & FileReadLine($filename, 1), @SystemDir, @SW_HIDE)
Dans ce code je voudrais que
quand le user renseigne $user que le script verifi dans le fichier excel si le @ComputerName et si le $user sont bien dans le fichier excel si oui il exécute le script en ajoutant le $user en question dans le localgroup admin
sinon mettre un message comme quoi il n'est pas autorise et ferme le script.

Cdt

si join le fichier excel en question

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 12:20
par Tlem
Déjà, il vous faut récupérer les informations du fichier .xls.
Pour cela vous devrez utiliser un UDF que vous trouverez sur le site Anglais (ExcelUDF) ou alors trouver une solution pour avoir ce fichier au format .cvs (l'idéal étant d'avoir le fichier dans ce format directement ...).

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 12:49
par africanism
bonjour merci pour votre reponse
j'ai telecharger excelusf
mais je ne vois pas comment m'en servir.

merci

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 13:37
par Narmeke
Lis bien l'UDF tous est expliqué a l'intérieur !

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 13:57
par africanism
je sais que je doit vous gonfler
mais quand je vois le fichier je suis perdu
une petite aide serait le bien venu si ce ne vous dérange pas

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 14:44
par Tlem
L'enregistrement du fichier au format .csv pose t-il un si gros problème que ca ?
Car cela simplifierait votre code de manière importante.

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 15:20
par africanism
le truc c'est que je voudrais verrouiller en ecriture les fichier et je pense pas pouvoir le faire en csv

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 16:30
par Tlem
Vous aurez sans doute le même avec le fichier Excel.

Qui génère le fichier Excel ?

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 16:52
par africanism
moi
je cree le fichier excel
en renseignant au fur et a mesure les personnes qui demande des droit admin
mais je ne veut pas que quelqu'un puisse le modifier a part moi.

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 16:59
par Serge63
tu le protèges par un mot de passe ?

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 17:57
par africanism
oui juste en ecriture

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 18:04
par Tlem
Donc il vous faut utiliser un des UDFs ExcelCom ...

Re: [..] Ajout droit admin

Posté : ven. 26 févr. 2010 18:06
par africanism
voila j'ai commancer a faire ca

Code : Tout sélectionner

#include <GUIConstants.au3>
$filename = FileOpen("c:\admin.xls", 0)
$user = InputBox('Utilisateur', "Login ex:domain\*****")
$oExcel = _ExcelBookAttach("c:\admin.xls", "admin"); attach excel
If $oExcel = -1 Then
    MsgBox(16, "Error", "Cant open admin.xls")
EndIf

For $i = 1 To 10
    $user = _ExcelReadCell($oExcel, $i, 2);$oExcel = Instance, $i = row, 2 is column.
    RunAs("imperium", @ComputerName, "123456", 0, @ComSpec, @SystemDir)
    RunWait(@ComSpec & ' /c net localgroup Administrators /add ' & $user, @SystemDir, @SW_HIDE)
Next

Re: [..] Ajout droit admin

Posté : lun. 01 mars 2010 11:41
par africanism
une petite aide Svp.

Re: [..] Ajout droit admin

Posté : lun. 01 mars 2010 14:42
par africanism
Bon je me suis un peu debrouiller comme je pouvais.
voici le script

Code : Tout sélectionner

#include <Excel.au3>
#include <GUIConstants.au3>
;Popup User
$user = InputBox('Utilisateur', "Login ex:DOMAIN\*****")
RunAs("administrator", @ComputerName, "123456", 0, @ComSpec, @SystemDir)
ProgressOn("LocalGroup_Admin_Install", "Progression", "0 %")
For $i = 0 To 100 Step 100
    Sleep(500)
    ProgressSet($i, $i & " %")


    $sFilePath1 = "c:\admin.xls"
    Local $oExcel = _ExcelBookOpen($sFilePath1)

    ; Recherche
    Local $search_keyword = @ComputerName & "\" & $user
    Local $search_cell = $oExcel.Columns("A" ).Find($search_keyword)
    If (IsObj($search_cell) = 1) Then ; Si la recherche à abouti
        MsgBox(0, "Find success", "La recherche de " & Chr(34) & $search_keyword & Chr(34) & " dans la plage donne la cellule (" & $search_cell.Row & ";" & $search_cell.Column & ")")
        Run(@ComSpec & ' /c net localgroup Administrateurs /add ' & $user, @SystemDir, @SW_HIDE)
    Else
        MsgBox(0, "Find failed", "La recherche de " & Chr(34) & $search_keyword & Chr(34) & " dans la plage n'a rien donné")
    EndIf

Next
ProgressSet(100, "Fini", "Complet")
Sleep(500)
ProgressOff()


FileClose($sFilePath1)
si joint le fichier excel.

2 petite question ?
j'ai une fenetre dos qui s'ouvre et je sais pas pourquoi
est il possible de verifier dans le fichier excel sans l'ouvrir.
si ce n'ai pas possible comment fermer le fichier excel avec verification des info dedans.

Cdt

Re: [..] Ajout droit admin

Posté : mar. 02 mars 2010 16:07
par softwater
Bonjour,

J'utilise un autre système pour la distribution de programmes aussi basé sur un fichier annexe. En clair j'autorise via un simple fichier texte les PC sur lesquels l'installation de tel ou tel programme peut se faire.
J'ai déposé mon fichier texte sur mon serveur dans un répertoire partagé masqué en ayant juste autorisé la lecture du fichier -> donc pas de modif possible pour l'utilisateur d'autant qu'ils ne voient même pas le share.

Ensuite dans mon installeur je vais lire ce fichier et si le nom de la machine est listé le programme s'installe.

A mon avis c'est plus simple (?) que de s'embêter avec un format excel qui plus est protégé par mot de passe.

Re: [..] Ajout droit admin

Posté : mar. 02 mars 2010 20:49
par Serge63
surtout qu'une petite recherche sur Internet permet de trouver facilement un moyen de faire sauter la protection d'un fichier Excel...

Re: [..] Ajout droit admin

Posté : mer. 03 mars 2010 09:49
par africanism
salut a tous
voila j'ai quasiment fini mon script qui fonctionne
mais j'ai un pb quand je clic sur la croix ou sur cancel ca deroule quand meme le script avez vous une idee voici le script.

Code : Tout sélectionner

;Popup User
$user = InputBox('Utilisateur', "Login ex:Domain\*****", "domain\")
ProgressOn("LocalGroup_Admin_Install", "Progression", "0 %")
For $i = 0 To 100 Step 100
    Sleep(500)
    ProgressSet($i, $i & " %")


    $sFilePath1 = "\\server1\dossier1\dossier2\Droit_admin\admin.xls"
    Local $oExcel = _ExcelBookOpen($sFilePath1, 0)

    ; Recherche
    Local $search_keyword = @ComputerName & "\" & $user
    Local $search_cell = $oExcel.Columns("A" ).Find($search_keyword)


    If (IsObj($search_cell) = 1) Then ; Si la recherche à abouti
        MsgBox(0, "Find success", "La recherche de " & Chr(34) & $search_keyword & Chr(34) & " dans le fichier de derogation est ok")
        RunAsWait("administrator", @ComputerName, "123456", 0, @ComSpec & ' /c net localgroup Administrators /add ' & $user, @SystemDir, @SW_HIDE)
    Else
        Exit
    EndIf

Next
ProgressSet(100, "Fini", "Complet")
Sleep(500)
ProgressOff()


FileClose($sFilePath1)
Cdt