Accueil > Windows > Ajout à distance d’un administrateur local.

Ajout à distance d’un administrateur local.

Ajouter à distance d’un compte du domaine dans le groupe « Administrators » d’un ordinateur ou serveur.

?View Code POWERSHELL
 $computer  = Read-Host "Enter computer name" 
 $user = Read-Host "Enter user name" 
 $domain = ([ADSI]"").name 
 ([ADSI]"WinNT://$computer/Administrators,group").Add("WinNT://$domain/$user")

Vous avez aimé cet article ? Alors partagez-le en cliquant sur les boutons ci-dessous :


Twitter Facebook Google Plus Linkedin

Article rédigé par Christophe Bluteau.

  1. Kodram
    05/09/2013 à 08:46 | #1

    Bonjour, 

    Votre script est super, mais je voulais le modifier pour que des fenêtres permettant la saisie des informations sur le pc et le nom de l’utilisateur apparaissent.

    Mais un message d’erreur apparait:
    ——————————————————————————————————————–

    L’exception suivante s’est produite lors de la récupération du membre « Add » : « Unknown error (0x80005000) »
    Au caractère C:\Users\nhouy\Desktop\Script\add local admin_fenetre saisie.ps1:106 : 2
    + ([ADSI] »WinNT://$computer/Administrateurs,group »).Add(« WinNT://$domain/$user »)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], ExtendedTypeSystemException
    + FullyQualifiedErrorId : CatchFromBaseGetMember

    ——————————————————————————————————————–

    Voici le code modifié:

    [void] [System.Reflection.Assembly]::LoadWithPartialName(« System.Drawing »)
    [void] [System.Reflection.Assembly]::LoadWithPartialName(« System.Windows.Forms »)

    #fonction pour l’affichage d’une textbox pour la saisie de l’utilisateur

    function textbox-user {

    [String]$titre = « Quel est l’utilisateur ? »
    [String]$contenu = « Entrez le nom de l’utilisateur: »

    $objForm = New-Object System.Windows.Forms.Form
    $objForm.Text = $titre
    $objForm.Size = New-Object System.Drawing.Size(300,200)
    $objForm.StartPosition = « CenterScreen »

    $objForm.KeyPreview = $True
    $objForm.Add_KeyDown({if ($_.KeyCode -eq « Enter »)
    {$x=$objTextBox.Text;$objForm.Close()}})
    $objForm.Add_KeyDown({if ($_.KeyCode -eq « Escape »)
    {$objForm.Close()}})

    $OKButton = New-Object System.Windows.Forms.Button
    $OKButton.Location = New-Object System.Drawing.Size(75,120)
    $OKButton.Size = New-Object System.Drawing.Size(75,23)
    $OKButton.Text = « OK »
    $OKButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()})
    $objForm.Controls.Add($OKButton)

    $CancelButton = New-Object System.Windows.Forms.Button
    $CancelButton.Location = New-Object System.Drawing.Size(150,120)
    $CancelButton.Size = New-Object System.Drawing.Size(75,23)
    $CancelButton.Text = « Cancel »
    $CancelButton.Add_Click({$objForm.Close()})
    $objForm.Controls.Add($CancelButton)

    $objLabel = New-Object System.Windows.Forms.Label
    $objLabel.Location = New-Object System.Drawing.Size(10,20)
    $objLabel.Size = New-Object System.Drawing.Size(280,20)
    $objLabel.Text = $contenu
    $objForm.Controls.Add($objLabel)

    $objTextBox = New-Object System.Windows.Forms.TextBox
    $objTextBox.Location = New-Object System.Drawing.Size(10,40)
    $objTextBox.Size = New-Object System.Drawing.Size(260,20)
    $objForm.Controls.Add($objTextBox)

    $objForm.Topmost = $True

    $objForm.Add_Shown({$objForm.Activate()})
    [void] $objForm.ShowDialog()

    $x
    }

    #fonction pour l’affichage d’une textbox pour la saisie du nom de l’ordinateur

    function textbox-computer {

    [String]$titre = « Quel est l’ordinateur? »
    [String]$contenu = « Entrez le nom de l’ordinateur: »

    $objForm = New-Object System.Windows.Forms.Form
    $objForm.Text = $titre
    $objForm.Size = New-Object System.Drawing.Size(300,200)
    $objForm.StartPosition = « CenterScreen »

    $objForm.KeyPreview = $True
    $objForm.Add_KeyDown({if ($_.KeyCode -eq « Enter »)
    {$x=$objTextBox.Text;$objForm.Close()}})
    $objForm.Add_KeyDown({if ($_.KeyCode -eq « Escape »)
    {$objForm.Close()}})

    $OKButton = New-Object System.Windows.Forms.Button
    $OKButton.Location = New-Object System.Drawing.Size(75,120)
    $OKButton.Size = New-Object System.Drawing.Size(75,23)
    $OKButton.Text = « OK »
    $OKButton.Add_Click({$x=$objTextBox.Text;$objForm.Close()})
    $objForm.Controls.Add($OKButton)

    $CancelButton = New-Object System.Windows.Forms.Button
    $CancelButton.Location = New-Object System.Drawing.Size(150,120)
    $CancelButton.Size = New-Object System.Drawing.Size(75,23)
    $CancelButton.Text = « Cancel »
    $CancelButton.Add_Click({$objForm.Close()})
    $objForm.Controls.Add($CancelButton)

    $objLabel = New-Object System.Windows.Forms.Label
    $objLabel.Location = New-Object System.Drawing.Size(10,20)
    $objLabel.Size = New-Object System.Drawing.Size(280,20)
    $objLabel.Text = $contenu
    $objForm.Controls.Add($objLabel)

    $objTextBox = New-Object System.Windows.Forms.TextBox
    $objTextBox.Location = New-Object System.Drawing.Size(10,40)
    $objTextBox.Size = New-Object System.Drawing.Size(260,20)
    $objForm.Controls.Add($objTextBox)

    $objForm.Topmost = $True

    $objForm.Add_Shown({$objForm.Activate()})
    [void] $objForm.ShowDialog()

    $x
    }

    #ajout de l’administrateur local

    $computer = textbox-computer
    $user = textbox-user
    $domain = ([ADSI] » »).name
    ([ADSI] »WinNT://$computer/Administrateurs,group »).Add(« WinNT://$domain/$user »)

    • 12/09/2013 à 18:58 | #2

      Bonjour,

      As-tu vérifier les valeurs $compteur et $user?
      J’ai pas testé mais « $computer = textbox-computer » et « $user = textbox-user » me semblent bizarres.

      A+

      Christophe

  1. Pas encore de trackbacks