none
Script PS Creation Compte Admin Local avec Pwd Crypté RRS feed

  • Question

  • Bonjour a tous,

    J'aurai besoin de votre aide pour creer un compte admin local sur W10 de maniere a pouvoir deployer ce script sur des PC

    J'ai deja mon script pr une installation manuelle mais il faut rentrer a chaque fois l'id et le Pwd du compte Admin Local via l'apparition d'un popup et aujourd'hui je souhaiterais que ces informations soient enregistres a l'interieur de mon script sans que je n'ai a les saisir

    Une idée ? 

    ------------------------------------

    Voici mon script de depart ci dessous

    ----------------------------------

    #requires -runasadministrator 
     
    function Create-NewLocalAdmin {
        [CmdletBinding()]
        param (
            [string] $NewLocalAdmin,
            [securestring] $Password

        )    
        begin {
        }    
        process {
            New-LocalUser "$NewLocalAdmin" -Password $Password -FullName "$NewLocalAdmin" -Description "Temporary local admin"
            Set-LocalUser -Name "$NewLocalAdmin" –PasswordNeverExpires $True
            Write-Verbose "$NewLocalAdmin local user created"
            Add-LocalGroupMember -Group "Administrateurs" -Member "$NewLocalAdmin"
            Write-Verbose "$NewLocalAdmin added to the local administrator group"
        }    
        end {
        }
    }
    $NewLocalAdmin = Read-Host "New local admin username:"
    $Password = Read-Host -AsSecureString "Create a password for $NewLocalAdmin"
    Create-NewLocalAdmin -NewLocalAdmin $NewLocalAdmin -Password $Password -Verbose

    lundi 30 septembre 2019 12:56

Toutes les réponses

  • Bonjour, 

    Vous pouvez créer un  fichier dont vous stocker les mot de passes cryptés:

    (get-credential).password | ConvertFrom-SecureString | set-content "C:\Passwords\password.txt"

    et les utiliser dans le script:

    $password = Get-Content "C:\Passwords\password.txt" | ConvertTo-SecureString $credential = New-Object System.Management.Automation.PsCredential("User",$password)


    "Vote or mark as answer if you think useful" "Marquer comme réponse les réponses qui ont résolu votre problème"


    • Modifié F.ABASSI lundi 30 septembre 2019 13:59
    lundi 30 septembre 2019 13:59
  • Bonjour,

    autre moyen, si les logins sont différents par exemple, stocker le couple login/password dans un .xml de manière secure.

    # Définir les variables
    $Directory = "C:\temp"
    $PasswordFile = Join-Path -Path $Directory -ChildPath "AllCredentials.xml" 
    # Définir une HashTable qui contient de multiples credentials
    $Hash = @{
        Computer1 = Get-Credential -Message "Saisir les credentials pour le compte sur computer1 - forme : Domain\Account or IP\Account or Machine\Account"
        Computer2 = Get-Credential -Message "Saisir les credentials pour le compte sur computer1 - forme : Domain\Account or IP\Account or Machine\Account"
        Computer3 = Get-Credential -Message "Saisir les credentials pour le compte sur computer1 - forme : Domain\Account or IP\Account or Machine\Account"
    }
    
    
    # La variable $hash contient tous les credentials, export dans un .xml
    $Hash | Export-Clixml -Path $PasswordFile
    
    # Ultérieurement on peut toujours ajouter une valeur dans la hash table en utilisant la méthode ADD (key, value). Ex.  : 
    $hash.add("Compiuter4" , (Get-Credential -Message "Saisir les credentials pour le compte compturer4- forme : Domain\Account or IP\Account or Machine\Account"))
    
    # Et maintenant, on peut utiliser le fichier de credentials .xml en l'important au besoin.  
    $Credentials = Import-Clixml -Path $PasswordFile
    # exemple d'usage 
    Invoke-Command -ComputerName Computer1 -Credential $Credentials.Computer1 -ScriptBlock { MyCommand }
    

    L'intéret est qu'on a un fichier lisible mais dans lequel les mots de passe sont sont cryptés. Tout comme la méthode précédente, le compte qui encrypte/decrypte et la machine doivent être les mêmes (on peut cependant faire sauter cette limitation en générant le hash en faisant un runas avec "CompteQuiLanceLeScript" ou "CompterQuiLanceTachePlanifiée"

    Oliv

    mardi 1 octobre 2019 06:18
  • Bonjour,

    Question bête : vous employez le terme "déployer" ce qui sous-entend qu'il y a peut être un Active Directory.

    Pourquoi ne pas exécuter ce script via le GPO au niveau machine, ce qui permettrait de faire tout ça sans devoir gérer de compte administrateur local?


    Cordialement,

    Sylvain (MCP, MCTS Windows Server 2008 R2 Server Virtualization, MCTS Exchange 2010)

    WWW : http://snsv.consulting | Blog : http://sylvaincoudeville.fr

    "Aléatoire" et "Mystérieux" sont des qualificatifs inventés par l'Homme pour éviter de dire qu'il n'a pas trouvé la root cause du problème...

    mardi 1 octobre 2019 06:22
  • Bonjour,

    Si vous êtes dans un domaine AD, vous pouvez aussi utiliser la solution LACP qui est faite exactement pour la gestion des comptes administrateurs locaux.

    https://blogs.technet.microsoft.com/arnaud/2015/11/25/local-admin-password-solution-laps/


    Merci de marquer comme reponses les interventions qui vous ont ete utile.

    mardi 1 octobre 2019 06:35