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