Question
Renommage PC de l'AD
- Phil'z Edward
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 45
- Remerciements reçus 0
il y a 13 ans 1 mois #14383
par Phil'z Edward
Renommage PC de l'AD a été créé par Phil'z Edward
Bonjour, j'ai écrit ce petit script pour renommer les pc de mon AD, et en cas d'erreur, de mettre dans mon fichier csv les pc dont le renommage ne c'est pas fait.
Il renomme bien les pc, mais le problème c'est qu'il ne renvoie pas dans mon fichier csv, les pc dont le renommage à raté
[code:1]
function ComputerExists ($sam) { [bool]([adsisearcher]\"(sAMAccountName=$sam$)\"«»).FindOne() }
$file = Import-Csv -Path \"C:\temp\rename.csv\" -Delimiter \";\" | foreach {
$oldName = $_.oldName;
$newName = $_.newName;
if (-not(ComputerExists $newName)) {
Write-Host \"Renaming computer from: $oldName to: $newName\"
netdom renamecomputer $oldName /newname:$newName /uD:administrateur /passwordD:Achanger1 /force /reboot
$LASTEXITCODE
if ($LASTEXITCODE -ne 0)
{
write-host \"Erreur $LASTEXITCODE!\";
New-Object 'PSObject' -Property @{'Old.Name' = $oldName; 'Erreur' = $LASTEXITCODE}
}
else {
write-host \"Pas d'erreur\"
}
}
else { Write-Host \"$newName already exists\" }
} | Select-Object -Property Old.Name, Erreur | Sort-Object Erreur | Export-Csv C:\temp\erreur.csv -NoTypeInformation
[/code:1]
Il renomme bien les pc, mais le problème c'est qu'il ne renvoie pas dans mon fichier csv, les pc dont le renommage à raté
[code:1]
function ComputerExists ($sam) { [bool]([adsisearcher]\"(sAMAccountName=$sam$)\"«»).FindOne() }
$file = Import-Csv -Path \"C:\temp\rename.csv\" -Delimiter \";\" | foreach {
$oldName = $_.oldName;
$newName = $_.newName;
if (-not(ComputerExists $newName)) {
Write-Host \"Renaming computer from: $oldName to: $newName\"
netdom renamecomputer $oldName /newname:$newName /uD:administrateur /passwordD:Achanger1 /force /reboot
$LASTEXITCODE
if ($LASTEXITCODE -ne 0)
{
write-host \"Erreur $LASTEXITCODE!\";
New-Object 'PSObject' -Property @{'Old.Name' = $oldName; 'Erreur' = $LASTEXITCODE}
}
else {
write-host \"Pas d'erreur\"
}
}
else { Write-Host \"$newName already exists\" }
} | Select-Object -Property Old.Name, Erreur | Sort-Object Erreur | Export-Csv C:\temp\erreur.csv -NoTypeInformation
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 13 ans 1 mois #14393
par Philippe
Réponse de Philippe sur le sujet Re:Renommage PC de l'AD
salut PE2012
ton script ma l'air bon
cette partie est inutile
[code:1] | Select-Object -Property Old.Name, Erreur [/code:1]
sinon ton fichier \"rename.csv\" a bien le point-virgule comme delimiteur de champs. j'ai reutilisé ton script du suject \"export to CSV\" et il ma manqué \"-Delimiter \";\"\" dans l'export
ton script ma l'air bon
cette partie est inutile
[code:1] | Select-Object -Property Old.Name, Erreur [/code:1]
sinon ton fichier \"rename.csv\" a bien le point-virgule comme delimiteur de champs. j'ai reutilisé ton script du suject \"export to CSV\" et il ma manqué \"-Delimiter \";\"\" dans l'export
Connexion ou Créer un compte pour participer à la conversation.
- Phil'z Edward
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 45
- Remerciements reçus 0
il y a 13 ans 1 mois #14394
par Phil'z Edward
Réponse de Phil'z Edward sur le sujet Re:Renommage PC de l'AD
Oui, il a bien les points virgules mon rename.csv
J'ai mis le
[code:1]
| Select-Object -Property Old.Name, Erreur
[/code:1]
Car je voulais ressortir les erreurs dans un fichier CSV.
Donc si je comprends bien, je n'ai pas besoin de mettre cela pour lister les erreurs?
Merci
J'ai mis le
[code:1]
| Select-Object -Property Old.Name, Erreur
[/code:1]
Car je voulais ressortir les erreurs dans un fichier CSV.
Donc si je comprends bien, je n'ai pas besoin de mettre cela pour lister les erreurs?
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 13 ans 1 mois #14418
par Philippe
Réponse de Philippe sur le sujet Re:Renommage PC de l'AD
non pas besoin
select-object sert quand tu doit reduiré/selectionné/filtré les proprietes que tu veux faire resortir sur un ensemble de propriétés plus importante.
dans ton script il n'y a que old.name et erreur. donc pas de filtrage a faire.
autre chose aussi, par la même occasion; ne met pas de point dans les noms de propriete. tu aurra des problemes si tu a une aboresence object.
ex. : $domaine.serveur.service.nomservice
si je met \"nom.service\" au lieu de \"nomservice\" il va cherche la propriete \"service\" de \"nom\" plutot que la propriete \"nom.serverce\". te comprend la difference ? sinon si tu n'est pas familliarisé avec cette langue, on t'indiquera quelques tuto simple pour mieu comprendre.
mais la je part en vacances

c'est tout pour aujourd'hui
sinon a tu un message d'erreur ?
<br><br>Message édité par: 6ratgus, à: 22/03/13 17:33
select-object sert quand tu doit reduiré/selectionné/filtré les proprietes que tu veux faire resortir sur un ensemble de propriétés plus importante.
dans ton script il n'y a que old.name et erreur. donc pas de filtrage a faire.
autre chose aussi, par la même occasion; ne met pas de point dans les noms de propriete. tu aurra des problemes si tu a une aboresence object.
ex. : $domaine.serveur.service.nomservice
si je met \"nom.service\" au lieu de \"nomservice\" il va cherche la propriete \"service\" de \"nom\" plutot que la propriete \"nom.serverce\". te comprend la difference ? sinon si tu n'est pas familliarisé avec cette langue, on t'indiquera quelques tuto simple pour mieu comprendre.
mais la je part en vacances
c'est tout pour aujourd'hui
sinon a tu un message d'erreur ?
Connexion ou Créer un compte pour participer à la conversation.
- Phil'z Edward
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 45
- Remerciements reçus 0
il y a 13 ans 1 mois #14428
par Phil'z Edward
Réponse de Phil'z Edward sur le sujet Re:Renommage PC de l'AD
Non merci, tout est ok, je suis passé d'une autre manière!!! j'ai viré les pipes et ça me donne ça :
[code:1]
function ComputerExists ($sam) { [bool]([adsisearcher]\"(sAMAccountName=$sam$)\"«»).FindOne() }
$file = Import-Csv -Path \"C:\temp\testnew.csv\" -Delimiter \";\"
$result = @()
foreach($line in $file) {
$oldName = $line.OldName;
$newName = $line.NewName;
if (-not(ComputerExists $newName)) {
Write-Host \"Renaming computer from: $oldName to: $newName\"
netdom renamecomputer $oldName /newname:$newName /uD:**** /passwordD:***** /force /reboot
$LASTEXITCODE
if ($LASTEXITCODE -ne 0)
{
write-host \"Erreur $LASTEXITCODE!\";
$out = new-object psobject
$out | Add-Member noteproperty OldName $oldName
$out | add-member noteproperty Erreur $LASTEXITCODE
}
else {
write-host \"Pas d'erreur\"
}
}
else { Write-Host \"$newName already exists\" }
$result += $out
}
$result | Export-Csv C:\temp\***.csv -NoTypeInformation
[/code:1]
Merci pour votre aide
[code:1]
function ComputerExists ($sam) { [bool]([adsisearcher]\"(sAMAccountName=$sam$)\"«»).FindOne() }
$file = Import-Csv -Path \"C:\temp\testnew.csv\" -Delimiter \";\"
$result = @()
foreach($line in $file) {
$oldName = $line.OldName;
$newName = $line.NewName;
if (-not(ComputerExists $newName)) {
Write-Host \"Renaming computer from: $oldName to: $newName\"
netdom renamecomputer $oldName /newname:$newName /uD:**** /passwordD:***** /force /reboot
$LASTEXITCODE
if ($LASTEXITCODE -ne 0)
{
write-host \"Erreur $LASTEXITCODE!\";
$out = new-object psobject
$out | Add-Member noteproperty OldName $oldName
$out | add-member noteproperty Erreur $LASTEXITCODE
}
else {
write-host \"Pas d'erreur\"
}
}
else { Write-Host \"$newName already exists\" }
$result += $out
}
$result | Export-Csv C:\temp\***.csv -NoTypeInformation
[/code:1]
Merci pour votre aide
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.039 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Renommage PC de l'AD