[..] Droits administrateurs sur script

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

[..] Droits administrateurs sur script

#1

Message par jcaspar »

B :D onjour à tous !


Je rencontre un soucis avec un script avec lequel je souhaite copier des
fichiers dans un repertoire mais pour cela il faut que je dispose de droits
administrateurs ... mais apparement je n'ai pas bien codé cette partie ..
pouvez vous svp m'indiquer ce que je dois modifier ?

Merci d'avance pour vos conseils et explications

Jean Marc

Code : Tout sélectionner

; Jeancito;
; Version 1.1
; Date 5 Janvier 2009

; ne pas afficher icone
#NoTrayIcon

;variables login,mot de passe, domaine
Local $sUserName = "administrateur"
Local $sPassword = "xxxxx"
Local $sDomaine = "sd"

; test si administrateur sinon donne droit admin
If Not IsAdmin() Then
    RunAs($sUserName, $sDomaine, $sPassword, 0, @ScriptFullPath, @ScriptDir)
    Exit
EndIf

;copie des fichiers cacert.pem et test.ini
FileCopy("*.*", "C:\Program Files\OCS Inventory Agent")
; test existence fichiers et lecture du fichier test.ini
If FileExists("C:\Program Files\OCS Inventory Agent\test.ini ") Then
    $file = ("C:\Program Files\OCS Inventory Agent\test.ini")
    $array = IniReadSection($file, "Ordinateur")
    ;variable nom ordinateur
    $tring = @ComputerName
    ;variable nom utilisateur
    $utilisateur = @UserName
    ;variables date
    $date = (@MDAY & @MON & @YEAR)
    ;nom des sections
    $name = ("Ordinateur")
    $name1 = ("Utilisateur")
    $name2 = ("Date du jour")
    ;ecriture dans le fichier test.ini

    IniWrite($file, "Nom du PC", $name, $tring);marque dans $file, a la section "Section", a la ligne $name, la valeur $tring.
    IniWrite($file, "Nom utilisateur", $name1, $utilisateur)
    IniWrite($file, "Date de création fichiers", $name2, $date)
    ;affiche message
    MsgBox(64, "MsgBox", "Tout c'est passé correctement.")
    $var = IniReadSection("C:\Program Files\OCS Inventory Agent\test.ini", "Nom utilisateur")
    If @error Then
        MsgBox(48, "Utilisateur ?", "Nom d'utilisateur manquant")
    Else
        For $i = 1 To $var[0][0]
            MsgBox(64, "Ordinateur et utilisateur", "Ordinateur: " & $var[$i][0] & @CRLF & "Utilisateur: " & $var[$i][1])
        Next

    EndIf
Else
    MsgBox(48, "Erreur", "Le fichier test.ini n’existe pas", 10)

EndIf

; test existence cacert.pem
If FileExists("C:\Program Files\OCS Inventory Agent\cacert.pem ") Then
    MsgBox(64, "Certificat copié ", "Le certificat a bien été copié", 10)
    
Else
    ; si cacert.existe affiche message
    MsgBox(48, "Erreur", "Le fichier cacert.pem n’existe pas", 10)
EndIf


 
BeCool
Niveau 5
Niveau 5
Messages : 173
Enregistré le : jeu. 30 oct. 2008 08:48
Status : Hors ligne

Re: [Droits administrateurs sur script]

#2

Message par BeCool »

A mes yeux, la partie administrateur est bonne.

Avez-vous vérifié si vous avez entrer les bonnes informations de : compte / Mot de passe / Domaine ?

P.S: Merci d'éditer votre sujet en renommant le titre " [Droits administrateurs sur script] " par " [..] Droits administrateur sur script. " :wink:
Avatar du membre
NewHere
Niveau 4
Niveau 4
Messages : 83
Enregistré le : dim. 28 déc. 2008 21:29
Status : Hors ligne

Re: [Droits administrateurs sur script]

#3

Message par NewHere »

Rajoute :
► Afficher le texte
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Droits administrateurs sur script

#4

Message par ani »

Comme vous le suggere newhere, indiquer #RequirAdmin au début de votre script dans le cas ou vous etes sous le système d'exploitation VISTA


Bonne continuation ;)
bon codage
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

[ Droits administrateurs sur script]

#5

Message par jcaspar »

Merci beaucoup pour vos réponses !

je viens de mdifier le code en fonction de vos réponses mais je me heurte
toujours au problème à savoir quelorsque je lance le script à partir d'un serveur windows 2003 en utilisant kixtart le script ne parvient pas à écrire dans le dossier
les fichiers ... Le script s'execute bien mais il ne donne pas les droits en ecriture sur
le dossier...pourtant avec des droits administrateurs ...Mmm :o
Merci d'avance pour vos nouvelles sugestions

Jean Marc

Code : Tout sélectionner

; 
 Version 1.1
; Date 14 Janvier 2009

; ne pas afficher icone
#NoTrayIcon
#RequireAdmin
;variables login,mot de passe, domaine
Local $sUserName = "admin"
Local $sPassword = "xxxxxx"
Local $sDomaine = "sd"

; test si administrateur sinon donne droit admin
If Not IsAdmin() Then
    RunAs($sUserName, $sDomaine, $sPassword, 0, @ScriptFullPath, @ScriptDir)
    Exit
EndIf

;copie des fichiers cacert.pem et test.ini
FileCopy("*.*", "C:\Program Files\OCS Inventory Agent")
; test existence fichiers et lecture du fichier test.ini
If FileExists("C:\Program Files\OCS Inventory Agent\test.ini ") Then
    $file = ("C:\Program Files\OCS Inventory Agent\test.ini")
    $array = IniReadSection($file, "Ordinateur")
    ;variable nom ordinateur
    $tring = @ComputerName
    ;variable nom utilisateur
    $utilisateur = @UserName
    ;variables date
    $date = (@MDAY & @MON & @YEAR)
    ;nom des sections
    $name = ("Ordinateur")
    $name1 = ("Utilisateur")
    $name2 = ("Date du jour")
    ;ecriture dans le fichier test.ini

    IniWrite($file, "Nom du PC", $name, $tring);marque dans $file, a la section "Section", a la ligne $name, la valeur $tring.
    IniWrite($file, "Nom utilisateur", $name1, $utilisateur)
    IniWrite($file, "Date de création fichiers", $name2, $date)
    ;affiche message
    MsgBox(64, "MsgBox", "Tout c'est passé correctement.")
    $var = IniReadSection("C:\Program Files\OCS Inventory Agent\test.ini", "Nom utilisateur")
    If @error Then
        MsgBox(48, "Utilisateur ?", "Nom d'utilisateur manquant")
    Else
        For $i = 1 To $var[0][0]
            MsgBox(64, "Ordinateur et utilisateur", "Ordinateur: " & $var[$i][0] & @CRLF & "Utilisateur: " & $var[$i][1])
        Next

    EndIf
Else
    MsgBox(48, "Erreur", "Le fichier test.ini n’existe pas", 10)

EndIf

; test existence cacert.pem
If FileExists("C:\Program Files\OCS Inventory Agent\cacert.pem ") Then
    MsgBox(64, "Certificat copié ", "Le certificat a bien été copié", 10)
    
Else
    ; si cacert.existe affiche message
    MsgBox(48, "Erreur", "Le fichier cacert.pem n’existe pas", 10)
EndIf
 
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Droits administrateurs sur script

#6

Message par ani »

D'accord,
Si vous etes sous win2003 le requiradmin vous pouvez le retirer.

plusieur question

1.Les fichiers dont vous copiez dans le répertoire se copi t'il ?
2. Les fichiers se trouve ou exactement ?

AU niveau de vos variables $date,$name,$name1,$name2 retirer les parenthèses
exemple
$date = (@MDAY & @MON & @YEAR)
deviend
$date = @MDAY & @MON & @YEAR


Ensuite si le bout de code ne se trouve pas dans une fonction, il vous faut remplacer les mots LOCAL par Global.
jcaspar
Niveau 7
Niveau 7
Messages : 449
Enregistré le : mar. 23 sept. 2008 17:58
Status : Hors ligne

Re: [..] Droits administrateurs sur script

#7

Message par jcaspar »

Merci de votre réponse !

Les fichiers à copier je les ai posés dans le repertoire depot partagé utiliser par les logins scripts. Les fichiers ne se copient pas sur les machines localement bien
que le script s'execute..

Merci d'avance pour vos nouvelles suggestions

Jean Marc
Répondre