Question
Script qui renomme lesPCs à partir d'une liste CSV
- Jarno Pietercil
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 13 ans 5 mois #12878
par Jarno Pietercil
Bonjour la communauté 
Petit nouveau et sur le site, et en tant qu'administrateur...
J'ai atterri dans une petite entreprise (120 PC) qui est un peu rétro
On a migré vers 2003 --> 2008 R2 et XP --> Win7, Maintenant, je m'aventure dans une convention de nom...
Mais, comme vous vous en doutez, je n'ai pas envie de renommer PC par PC.
J'ai trouvé un script assez simple mais qui mérite d'être peaufiné.
- Ce qu'il fait:
A partir d'un CSV, il va chercher l'ancien nom de pc pour le renommer avec un nouveau
OldName,NewName
DSPLS001,test001
Le problème de ce script c'est que si j'ajoute des PC dans le CVS, il refait ceux déjà modifiés...
- Ce qu'il faudrait:
Qu'il check d'abord, dans le CSV, $oldName et regarde dans l'AD s'il existe.
S'il n'existe pas, on go to exit
S'il existe, alors on renomme $oldName par $newName
je me permets de vous demander de l'aide car je suis ultra débutant en PS et que je n'ai malheureusement pas assez de temps pour ce projet-ci.
Merci pour votre aide
Jarno<br><br>Message édité par: Jarnax, à: 9/10/12 16:11
Petit nouveau et sur le site, et en tant qu'administrateur...
J'ai atterri dans une petite entreprise (120 PC) qui est un peu rétro
On a migré vers 2003 --> 2008 R2 et XP --> Win7, Maintenant, je m'aventure dans une convention de nom...
Mais, comme vous vous en doutez, je n'ai pas envie de renommer PC par PC.
J'ai trouvé un script assez simple mais qui mérite d'être peaufiné.
- Ce qu'il fait:
A partir d'un CSV, il va chercher l'ancien nom de pc pour le renommer avec un nouveau
OldName,NewName
DSPLS001,test001
Le problème de ce script c'est que si j'ajoute des PC dans le CVS, il refait ceux déjà modifiés...
Set-executionpolicy remotesigned
$csvfile = \"C:\rename\rename.csv\"
Import-Csv $csvfile | foreach {
$oldName = $_.OldName;
$newName = $_.NewName;
Write-Host \"Renaming computer from: $oldName to: $newName\"
netdom renamecomputer $oldName /newName:$newName /uD:ELDW-DOM\jpi /passwordD:\"gianna&007\" /force
}
- Ce qu'il faudrait:
Qu'il check d'abord, dans le CSV, $oldName et regarde dans l'AD s'il existe.
S'il n'existe pas, on go to exit
S'il existe, alors on renomme $oldName par $newName
je me permets de vous demander de l'aide car je suis ultra débutant en PS et que je n'ai malheureusement pas assez de temps pour ce projet-ci.
Merci pour votre aide
Jarno<br><br>Message édité par: Jarnax, à: 9/10/12 16:11
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 13 ans 5 mois #12879
par SiSMik
Réponse de SiSMik sur le sujet Re:Script qui renomme lesPCs à partir d'une liste CSV
Salut,
Bienvenu sur le forum
Quelque points à éclaircir avant d'aller bosser dans le vent...
WinRM est-il activé sur le postes client de ton réseau ?
Tu lances les scripts à partir d'un serveur 2008R2 ?
Et enfin, tu souhaites juste renommer les postes dans l'AD ?
Merci pour les réponses...
Bienvenu sur le forum
Quelque points à éclaircir avant d'aller bosser dans le vent...
WinRM est-il activé sur le postes client de ton réseau ?
Tu lances les scripts à partir d'un serveur 2008R2 ?
Et enfin, tu souhaites juste renommer les postes dans l'AD ?
Merci pour les réponses...
Connexion ou Créer un compte pour participer à la conversation.
- Jarno Pietercil
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 13 ans 5 mois #12880
par Jarno Pietercil
Réponse de Jarno Pietercil sur le sujet Re:Script qui renomme lesPCs à partir d'une liste CSV
Quelqu'un m'a aidé sur le site technet:
voici la solution:
[code:1]
function ComputerExists ($sam) { [bool]([adsisearcher]\"(sAMAccountName=$sam$)\"«»).FindOne() }
$csvfile = \"C:\rename\rename.csv\"
$csv = Import-Csv $csvfile
foreach ($c in $csv) {
$oldName = $c.oldName
$newName = $c.newName
if (-not(ComputerExists $newName)) {
Write-Host \"Renaming computer from: $oldName to: $newName\"
netdom renamecomputer $oldName /newName:$newName /uD:«»DOMAIN\*** /passwordD:\"*******\" /force
}
else { Write-Host \"$newName already exists\" }
}
[/code:1]
Pour répondre à ta question,
- Winrm ne doit pas être activé sur Win7 (il est déjà si pas de GPo qui désactive) par contre, faut le faire sur WinXP
- Le script tourne sur mon PC (Windows 7 Ultimate)
- Je voulais renommer le PC et qu'il le fasse dans l'AD aussi
merci
voici la solution:
[code:1]
function ComputerExists ($sam) { [bool]([adsisearcher]\"(sAMAccountName=$sam$)\"«»).FindOne() }
$csvfile = \"C:\rename\rename.csv\"
$csv = Import-Csv $csvfile
foreach ($c in $csv) {
$oldName = $c.oldName
$newName = $c.newName
if (-not(ComputerExists $newName)) {
Write-Host \"Renaming computer from: $oldName to: $newName\"
netdom renamecomputer $oldName /newName:$newName /uD:«»DOMAIN\*** /passwordD:\"*******\" /force
}
else { Write-Host \"$newName already exists\" }
}
[/code:1]
Pour répondre à ta question,
- Winrm ne doit pas être activé sur Win7 (il est déjà si pas de GPo qui désactive) par contre, faut le faire sur WinXP
- Le script tourne sur mon PC (Windows 7 Ultimate)
- Je voulais renommer le PC et qu'il le fasse dans l'AD aussi
merci
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.048 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Script qui renomme lesPCs à partir d'une liste CSV