IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Création de credential avec clé


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Création de credential avec clé
    Bonjour,

    Je script pas mal dans ma boite, mais uniquement à mon usage. j'ai un compte "standard" et un compte "d'administration" avec des droits sur des partages, sur l'Active Directory,... élevés. Donc je lance mes scripts "en tant que" mon compte d'administration. Jusque là pas de problème.
    sauf que je dois maintenant mettre à disposition certains de mes script à l'usage d'utilisateurs qui on eux aussi un compte d'administration, mais avec beaucoup moins de privilèges que moi !
    J'ai vu que l'on pouvait utiliser des credentials avec une clé de cryptage pour cela. Sauf que les différents test que j'ai fait ne fonctionnent pas... L'avez-vous déjà fait, avez-vous une idée ?

    Donc, but:
    pouvoir lancer un script avec des droits élévés.

    Merci !

  2. #2
    Membre habitué
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2015
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2015
    Messages : 66
    Points : 126
    Points
    126
    Par défaut
    Il y a sans doutes plusieurs façons de procéder, en voici une:

    On peut créer un fichier qui contient un mdp chiffré avec la clé de la machine (il ne pourra pas être déchiffré sur une autre machine si déplacé).

    La première étape est de créer le fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function New-PasswordTextFile{
        param([string] $filename)
        read-host -assecurestring | convertfrom-securestring | out-file $filename
    }
    
    New-PasswordTextFile -filename ".\passfile.txt"
    Ensuite on peut régénérer les credentials avec la donnée dans passfile.txt ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        $pass = get-content ".\passfile.txt" | convertto-securestring 
        $Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist "AD\compte",$pass
    Remplacer AD\compte avec le nom du compte à utiliser.

    Ensuite on peut démarrer un script avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Invoke-Command -Credential $Credential -comp localhost -ScriptBlock {get-date}
    
    Thursday, July 30, 2015 9:32:58 AM
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Start-Job -Credential $credential -ScriptBlock { get-date} 
    get-job | Wait-Job
    
    Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                  
    --     ----            -------------   -----         -----------     --------             -------                  
    74     Job74           BackgroundJob   Completed     True            localhost             get-date   
    
    get-job | receive-job
    
    Thursday, July 30, 2015 9:34:43 AM
    *** Attention ***
    Il faut savoir ceci avant de se lancer dans ce type d'approche, si une personne a accès au fichier ou au script, elle peut facilement trouver le mdp en clair depuis $Credential ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $mdp_en_clair = $Credential.GetNetworkCredential().Password
    Et là c'est pas bon du tout. Il vaut mieux créer un compte de service avec les droits spécifiques qui peut être limité (pas de logon interactif, logon seulement à partir d'une machine donnée etc). En tout cas à creuser avant de se lancer et évaluer toutes les possibilités.

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 281
    Points : 520
    Points
    520
    Par défaut
    bonjour dcolleville

    une autre solution pour ne pas donner des scripts sensibles ou de droits ou de mot de passe
    mais qui demande plus de travail de préparation, c'est de passer par un intermédiaire.
    je m'explique :
    - un utilisateur sans droit utilise un script ou autre chose pour faire une action. mais le script ne fait pas l'action, il dépose la demande dans un fichier ou une base de données.
    - un script avec des droits élevés qui tourne en permanence (ou qui s'exécute toutes les secondes par exemple) sur un serveur ou autre, lis les demandes et les exécutes !

    tu ne donne pas de droit ou de mot de passe, mais tu peux gérer les droits dans le script serveur par rapport à l'utilisateur qui fait la demande (s'il fait parti d'un groupe de l'AD par exemple)
    donc tout le monde peut avoir le script pour faire la demande sans problème !!!

    Ca demande un peu de travail par rapport à ton organisation mais ça vaux le coup à l'usage
    j'utilise cette solution via une page web et une base sql et ça me simplifie la vie d'admin !

  4. #4
    Membre éclairé Avatar de suchiwa
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2010
    Messages
    435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2010
    Messages : 435
    Points : 899
    Points
    899
    Par défaut
    Citation Envoyé par dcolleville Voir le message
    Bonjour,

    Je script pas mal dans ma boite, mais uniquement à mon usage. j'ai un compte "standard" et un compte "d'administration" avec des droits sur des partages, sur l'Active Directory,... élevés. Donc je lance mes scripts "en tant que" mon compte d'administration. Jusque là pas de problème.
    sauf que je dois maintenant mettre à disposition certains de mes script à l'usage d'utilisateurs qui on eux aussi un compte d'administration, mais avec beaucoup moins de privilèges que moi !
    J'ai vu que l'on pouvait utiliser des credentials avec une clé de cryptage pour cela. Sauf que les différents test que j'ai fait ne fonctionnent pas... L'avez-vous déjà fait, avez-vous une idée ?

    Donc, but:
    pouvoir lancer un script avec des droits élévés.

    Merci !
    Bonjour decolleville,

    J'arrive après la bataille, mais la question est intéressante, car souvent posée.

    D'après technet, en utilisant start-process
    https://social.technet.microsoft.com...nas-credential

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Start-Process powershell -Credential domain\domainadmin -ArgumentList '-noprofile -command &{Start-Process notepad -verb runas}'
    Si c'est distant, plutôt un invoke-command

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Invoke-Command -ComputerName ADDS01 -Credential domain\admin -ScriptBlock {c:\script.ps1}
    Dans le doute, reboot...

    https://mcp.microsoft.com/authenticate/validatemcp.aspx
    931584 | Micr0s0ft

Discussions similaires

  1. [VB.NET] Création de control avec visual studio
    Par HULK dans le forum Windows Forms
    Réponses: 6
    Dernier message: 01/08/2007, 18h06
  2. [DEBUTANT] Création site marchand avec SGBD
    Par plex dans le forum Débuter
    Réponses: 7
    Dernier message: 10/02/2005, 14h19
  3. [Ant] [Ejb] Probléme de création d'ejb avec Genic
    Par rivierem dans le forum JOnAS
    Réponses: 7
    Dernier message: 25/06/2004, 16h21
  4. Création de table avec index
    Par Seb7 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2003, 16h11
  5. Création d'agrégat avec SQLServer
    Par Testav dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/09/2002, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo