Ajout à distance d’un administrateur local.

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

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

2 réflexions sur « Ajout à distance d’un administrateur local. »

  1. Kodram

    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 »)

    Répondre
    1. Christophe Bluteau Auteur de l’article

      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

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *