Powershell pour manipuler le fichier host
Je suis en train de regarder pour voir si je peux créer un script powershell pour mettre à jour le contenu dans le fichier hôte.
Ce que quelqu'un sait si il y a des exemples de manipuler le fichier hôte à l'aide de powershell ou tout autre script lanaguages?
Grâce.
- juste en ajoutant dans le fichier (écrit-il, c'est que vous avez les autorisations suffisantes) devrait faire l'affaire.
Vous devez vous connecter pour publier un commentaire.
D'abord, si vous êtes sur Windows Vista ou Windows 7 assurez-vous que vous exécutez ces commandes à partir d'une élévation de l'invite:
Compte tenu de cela, je pense que vous pouvez voir comment utiliser une regex pour manipuler les entrées nécessaires.
'^\s*([^#].+?\d{1,3}.*?localhost.*)'
$hosts
variable n'est pas mise à jour aprèsforeach
et simplement pipeline toutes les données de sortie après le foreach pour le fichier:$hosts | foreach { ... } | Out-File $hostsPath -enc ascii
et il fonctionne.$hosts
variable n'est pas reasigned 😉La De carbone de module a un Set-HostsEntry fonction de réglage hôtes entrée:
Si quelqu'un est à la recherche d'un exemple plus complexe, j'ai toujours été particulièrement friands de ce principe: https://gist.github.com/markembling/173887
De départ avec Kevin Remisoski excellente réponse ci-dessus, je suis venu avec ce qui me permet d'ajouter/mettre à jour plusieurs entrées à la fois. J'ai aussi changé la regex dans la division de regarder pour tout espace blanc, pas seulement onglet.
J'ai écrit un code pour supprimer des entrées de l'hôte. Vous pouvez facilement changer le code pour ajouter des entrées à partir du code.
Pour plus d'informations, voir
http://nisanthkv.blog.com/2012/06/13/remove-host-entries-using-powershell/
Toutes ces réponses sont assez élaborées. C'est tout ce que vous devez ajouter un fichier hosts entrée:
Adresse IP et le nom d'hôte sont séparés par `t qui est le powershell notation pour un caractère de tabulation.
Pour moi la plus grande douleur dans le traitement avec le fichier hosts est de se rappeler où il est. J'ai mis une variable qui pointe vers mon fichier hosts dans mon PowerShell profil, ce qui rend plus facile à modifier dans un éditeur de texte.
Dans PowerShell, tapez la commande suivante pour ouvrir votre profil:
Ajouter ceci:
Enregistrer le fichier, puis fermez et ré-ouvrez PowerShell, cours d'exécution en tant qu'administrateur. Vous ne pouvez pas modifier le fichier hosts sans autorisations élevées.
Maintenant, vous pouvez modifier votre fichier hosts de la même façon, vous devez modifier votre profil:
J'ai envoyé un petit script qui crée une interface utilisateur graphique simple pour ajouter de nouveaux enregistrements dans le fichier HOSTS. Il va ouvrir une fenêtre, demander le nom d'hôte et IP, puis ajouter votre entrée dans le fichier HOSTS.
Je suis sûr que ça pourrait être simplifié et regarder plus propre... mais qui fonctionne bien pour mon cas d'utilisation.
Profitez-en!