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 :

Ajouter des entrées dns dans un fichier hosts [PowerShell]


Sujet :

Scripts/Batch

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2018
    Messages : 7
    Par défaut Ajouter des entrées dns dans un fichier hosts
    Salut à tous,
    J'ai besoin de faire un script powershell qui:
    1°) ajoute des entrée DNS au fichier C:\Windows\System32\drivers\etc\hosts à l'aide d'un fichier csv
    2°) encadre ces entrées dns entre 2 chaînes de caractères qui annonce le "début des entrées dns" et la "fin des entrées dns".
    3°) n'écrase pas les entrée dns déjà présentent dans le fichier hosts.

    J'ai fait un script mais il y a des erreurs quand je le joue et je ne vois pas du tout ce qui cloche.

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    $file = "C:\Windows\System32\drivers\etc\hosts"
    $data = Import-Csv D:\hosts_modify\liste_des_entrees_dns_hosts.csv -Delimiter ";"
    function add-host([string]$filename, [string]$ip, [string]$hostname) {
        remove-host $filename $hostname
        $ip + "`t`t" + $hostname | Out-File -encoding ASCII -append $filename
    }
    function remove-host([string]$filename, [string]$hostname) {
        $c = Get-Content $filename
        $newLines = @()
        foreach ($line in $c) {
            $bits = [regex]::Split($line, "\t+")
            if ($bits.count -eq 2) {
                if ($bits[1] -ne $hostname) {
                    $newLines += $line
                }
            } else {
                $newLines += $line
            }
     
        # Write file
        Clear-Content $filename
        foreach ($line in $newLines) {
            $line | Out-File -encoding ASCII -append $filename
        }
    }
    function print-hosts([string]$filename) {
        $c = Get-Content $filename
        foreach ($line in $c) {
            $bits = [regex]::Split($line, "\t+")
            if ($bits.count -eq 2) {
                Write-Host $bits[0] `t`t $bits[1]
            }
        }
    }
    try {
        if ($args[0] -eq "add") {
    	Add-Content $file "`n*****Ajout CSI*****"	
                 foreach ($item in $data) {
                $filename = $($item.filename)
                $iP  = $($item.ip)
                $hostname  = $($item.hostname)
                printf  $filename $ip, $hostname
                add-host $filename $ip, $hostname
                }   
    	Add-Content $file "`*****Fin Ajout CSI*****"
            }
        } elseif ($args[0] -eq "remove") {
            if ($args.count -lt 2) {
                throw "Not enough arguments for remove."
            } else {
                remove-host $file $args[1]
            }
        } elseif ($args[0] -eq "show") {
            print-hosts $file
        } else {
            throw "Invalid operation '" + $args[0] + "' - must be one of 'add', 'remove', 'show'."
        }
    } catch  {
        Write-Host $error[0]
        Write-Host "`nUsage: hosts add <ip> <hostname>`n       hosts remove <hostname>`n       hosts show"
    }
    function printf($a) {
        foreach ($i in $a) {
            Write-Host $i
        }
     }

    Voici les erreurs que j'ai :

    Nom : 2019-08-13 17_12_36-Windows PowerShell.png
Affichages : 812
Taille : 19,0 Ko

    Merci pour votre aide...
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 28/03/2019, 14h46
  2. Réponses: 0
    Dernier message: 17/05/2013, 11h06
  3. Réponses: 2
    Dernier message: 22/09/2010, 10h01
  4. [XML] [Débutant]Comment ajouter des balise html dans un fichier XML
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/09/2010, 14h36
  5. [JList] Lecture des données sauvegardées dans un fichier
    Par Myogtha dans le forum Composants
    Réponses: 7
    Dernier message: 10/06/2004, 21h05

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