Question
import-csv computer object
- bin
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 15 ans 4 mois #8027
par bin
import-csv computer object a été créé par bin
Bonjour
j'ai un un fichier CSV, avec nom,OU comme entete :
[code:1]nom,OU
Comp1,PARIS
Comp2,PARIS[/code:1]
Avec mon script, j'ai envie de peupler des comptes ordinateurs dans une unité d'organisation PARIS dans Active Directory :
[code:1]$computers = import-csv .\computers.csv
foreach ($comp in $computers){new-adcomputer -name $comp.name -path ou=$comp.ou,dc=corpin,dc=net}[/code:1]
Le probleme est surtout dans la syntaxe du paramètre path, j'ai essayé ou=$comp.OU+\",dc=corpin,dc=net\" mais il n'as pas l'air d'accepter le chemin...le but c'est de lui faire comprendre
ou=PARIS,dc=corpin,dc=net\"
Une idée ?
Merci<br><br>Message édité par: Arnaud, à: 15/11/10 16:03
j'ai un un fichier CSV, avec nom,OU comme entete :
[code:1]nom,OU
Comp1,PARIS
Comp2,PARIS[/code:1]
Avec mon script, j'ai envie de peupler des comptes ordinateurs dans une unité d'organisation PARIS dans Active Directory :
[code:1]$computers = import-csv .\computers.csv
foreach ($comp in $computers){new-adcomputer -name $comp.name -path ou=$comp.ou,dc=corpin,dc=net}[/code:1]
Le probleme est surtout dans la syntaxe du paramètre path, j'ai essayé ou=$comp.OU+\",dc=corpin,dc=net\" mais il n'as pas l'air d'accepter le chemin...le but c'est de lui faire comprendre
ou=PARIS,dc=corpin,dc=net\"
Une idée ?
Merci<br><br>Message édité par: Arnaud, à: 15/11/10 16:03
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 4 mois #8036
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:import-csv computer object
Bonjour,
Tu as deux erreurs dans ton code.
D'abord du utilise l'attribut name, alors que ton entête est nom.
LE deuxième problème vient du fait que le paramètre Path attend une chaîne de caractère et il faut s'avoir que l'accès à un attribut dnas une chaîne de caractère est mal interprété, exemple :
[code:1]
PS > $proc = Get-Process | Select-Object -First 1
PS > Write-Host \"$proc.ProcessName\"
System.Diagnostics.Process (AppleMobileDeviceService).ProcessName
[/code:1]
On remarque qu'on interprete bien la variable $proc mais pas l'attribut de l'objet contenu dans $proc
pour cela, il y a une technique que je montre ci-dessous :
[code:1]
PS > $proc = Get-Process | Select-Object -First 1
PS > Write-Host \"$($proc.ProcessName)\"
AppleMobileDeviceService
[/code:1]
Donc en réutilisant cela voici ton code :
[code:1]
$computers= Import-Csv computers.csv
foreach ($comp in $computers){
New-ADComputer -Name $comp.nom -Path \"ou=$($comp.ou),dc=corpin,dc=net\"
}
[/code:1]
ou bien en plus simplifié :
[code:1]
Import-Csv computers.csv | ForEach-Object {
New-ADComputer -Name $_.nom -Path \"ou=$($_.ou),dc=corpin,dc=net\"
}
[/code:1]
Bien Cordialement,
Richard Lazaro.
Tu as deux erreurs dans ton code.
D'abord du utilise l'attribut name, alors que ton entête est nom.
LE deuxième problème vient du fait que le paramètre Path attend une chaîne de caractère et il faut s'avoir que l'accès à un attribut dnas une chaîne de caractère est mal interprété, exemple :
[code:1]
PS > $proc = Get-Process | Select-Object -First 1
PS > Write-Host \"$proc.ProcessName\"
System.Diagnostics.Process (AppleMobileDeviceService).ProcessName
[/code:1]
On remarque qu'on interprete bien la variable $proc mais pas l'attribut de l'objet contenu dans $proc
pour cela, il y a une technique que je montre ci-dessous :
[code:1]
PS > $proc = Get-Process | Select-Object -First 1
PS > Write-Host \"$($proc.ProcessName)\"
AppleMobileDeviceService
[/code:1]
Donc en réutilisant cela voici ton code :
[code:1]
$computers= Import-Csv computers.csv
foreach ($comp in $computers){
New-ADComputer -Name $comp.nom -Path \"ou=$($comp.ou),dc=corpin,dc=net\"
}
[/code:1]
ou bien en plus simplifié :
[code:1]
Import-Csv computers.csv | ForEach-Object {
New-ADComputer -Name $_.nom -Path \"ou=$($_.ou),dc=corpin,dc=net\"
}
[/code:1]
Bien Cordialement,
Richard Lazaro.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- bin
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 15 ans 4 mois #8050
par bin
Réponse de bin sur le sujet Re:import-csv computer object
merci beaucoup pour l'explication magistrale..
encore merci
encore merci
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 4 mois #8051
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:import-csv computer object
Pas de soucis, à ton service ;]
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- bin
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 27
- Remerciements reçus 0
il y a 15 ans 4 mois #8052
par bin
Réponse de bin sur le sujet Re:import-csv computer object
tu sais j'ai bien essayé la syntaxe, mais j'ai toujours l'erreur, il n'arrive pas à lier la syntaxe au parametre path
+ foreach ($comp in $computers) {new-adcomputer -Name <<<< $comp.nom -Path \"ou
=$($comp.ou),dc=tpmvp,dc=com\"}
+ CategoryInfo : InvalidData: (
[New-ADComputer], ParameterBind
ingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Activ
eDirectory.Management.Commands.NewADComputer
merci
+ foreach ($comp in $computers) {new-adcomputer -Name <<<< $comp.nom -Path \"ou
=$($comp.ou),dc=tpmvp,dc=com\"}
+ CategoryInfo : InvalidData: (
ingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Activ
eDirectory.Management.Commands.NewADComputer
merci
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 4 mois #8062
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:import-csv computer object
hmmm, peut être à cause du Delimiter, essaye cela :
[code:1]
Import-Csv computers.csv -Delimiter \",\" | ForEach-Object {
New-ADComputer -Name $_.nom -Path \"ou=$($_.ou),dc=corpin,dc=net\"
}
[/code:1]
Un fichier xml a un delimiter qui change en fonction de la culture, en France on met une virgule alors qu'en culture US on met un point virgule.
Enfin, tu vas pouvoir spécifier cela seulement si tu es en V2 car en V1 le paramètre Delimiter n'est pas géré.
Cordialement,
Richard Lazaro.
[code:1]
Import-Csv computers.csv -Delimiter \",\" | ForEach-Object {
New-ADComputer -Name $_.nom -Path \"ou=$($_.ou),dc=corpin,dc=net\"
}
[/code:1]
Un fichier xml a un delimiter qui change en fonction de la culture, en France on met une virgule alors qu'en culture US on met un point virgule.
Enfin, tu vas pouvoir spécifier cela seulement si tu es en V2 car en V1 le paramètre Delimiter n'est pas géré.
Cordialement,
Richard Lazaro.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.045 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- import-csv computer object