Page 1 sur 1

[..] Droits administrateurs sur script

Posté : lun. 12 janv. 2009 11:25
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


 

Re: [Droits administrateurs sur script]

Posté : lun. 12 janv. 2009 11:42
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:

Re: [Droits administrateurs sur script]

Posté : lun. 12 janv. 2009 12:31
par NewHere
Rajoute :
► Afficher le texte

Re: [..] Droits administrateurs sur script

Posté : lun. 12 janv. 2009 12:56
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

[ Droits administrateurs sur script]

Posté : mer. 14 janv. 2009 14:26
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
 

Re: [..] Droits administrateurs sur script

Posté : mer. 14 janv. 2009 14:42
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.

Re: [..] Droits administrateurs sur script

Posté : mer. 14 janv. 2009 15:16
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