Question Renommage PC de l'AD

Plus d'informations
il y a 13 ans 1 mois #14383 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]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
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 B) :woohoo:
c'est tout pour aujourd'hui ;)

sinon a tu un message d'erreur ? :blink:<br><br>Message édité par: 6ratgus, à: 22/03/13 17:33

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 1 mois #14428 par Phil&#039;z Edward
Réponse de Phil&#039;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]\&quot;(sAMAccountName=$sam$)\&quot;«»).FindOne() }


$file = Import-Csv -Path \&quot;C:\temp\testnew.csv\&quot; -Delimiter \&quot;;\&quot;

$result = @()
foreach($line in $file) {
$oldName = $line.OldName;
$newName = $line.NewName;
if (-not(ComputerExists $newName)) {
Write-Host \&quot;Renaming computer from: $oldName to: $newName\&quot;
netdom renamecomputer $oldName /newname:$newName /uD:**** /passwordD:***** /force /reboot
$LASTEXITCODE
if ($LASTEXITCODE -ne 0)
{
write-host \&quot;Erreur $LASTEXITCODE!\&quot;;
$out = new-object psobject
$out | Add-Member noteproperty OldName $oldName
$out | add-member noteproperty Erreur $LASTEXITCODE
}
else {
write-host \&quot;Pas d'erreur\&quot;
}
}
else { Write-Host \&quot;$newName already exists\&quot; }

$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
Propulsé par Kunena