Question
Boucle For each qui ne fonctionne pas
- LOCO
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 2 ans 7 mois #31362
par LOCO
Boucle For each qui ne fonctionne pas a été créé par LOCO
Bonjour,
Je debute dans les scripts PS...
J'ai regardé les tutos, et utilisé un exemple pourtant facile mais je n'arrive pas a faire une boucle sur un import csv...
Comme cela ne fonctionait pas, j'ai rajouté les headers et le delimiter...
et j'obtiens l'erreur:
Get-ADUser : La variable : « upn » trouvée dans l’expression : $upn n’est pas définie.
Au caractère \\eu-nas\Info\Projets\Telephonie - Teams\FR-TeamsVoiceLicensing.ps1:12 : 10
+ $u = Get-ADUser -Filter {userprincipalname -eq $upn} -Properties ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : ( [Get-ADUser], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADU
ser
not found
J'ai beau cherché, tous les exemples que je trouve sont identique.
J'ai essayé avec un autre fichier csv, une seule ligne...
Bref, je suis au bout...
Un peu d'aide serait la bienvenue!
Merci d'avance!
Je debute dans les scripts PS...
J'ai regardé les tutos, et utilisé un exemple pourtant facile mais je n'arrive pas a faire une boucle sur un import csv...
Comme cela ne fonctionait pas, j'ai rajouté les headers et le delimiter...
$rows = Import-Csv -Path C:\temp\phone_user_list2.csv –header UPN, OfficePhone –delimiter ; $rows | Format-Table ForEach ($r in $rows) { Write-Host $($r.UPN) Write-Host $($r.OfficePhone) $upn = $r.UPN $u = Get-ADUser -Filter {userprincipalname -eq $upn} -Properties OfficePhone if ($u) { Write-Host $upn $u.OfficePhone $r.Number Set-ADUser -Identity $u.SamAccountName -OfficePhone $r.Number #-WhatIf } else { Write-Host $r.UPN not found } }
et j'obtiens l'erreur:
Get-ADUser : La variable : « upn » trouvée dans l’expression : $upn n’est pas définie.
Au caractère \\eu-nas\Info\Projets\Telephonie - Teams\FR-TeamsVoiceLicensing.ps1:12 : 10
+ $u = Get-ADUser -Filter {userprincipalname -eq $upn} -Properties ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument : ( [Get-ADUser], ArgumentException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Commands.GetADU
ser
not found
J'ai beau cherché, tous les exemples que je trouve sont identique.
J'ai essayé avec un autre fichier csv, une seule ligne...
Bref, je suis au bout...
Un peu d'aide serait la bienvenue!
Merci d'avance!
Pièces jointes :
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 2 ans 7 mois - il y a 2 ans 7 mois #31363
par Philippe
Réponse de Philippe sur le sujet Boucle For each qui ne fonctionne pas
Salut LOCO
regarde aussi dans le fichier CSV si il n'y a pas de ligne vide ou sans UPN
pour gérer ce cas je ferai un filtre des ligne vide
met le délimiteur entre guillemets
pour finir le header est inutile si il ce trouve dans le CSV
bon apprentissage de powershell tu est en bonne voie
regarde aussi dans le fichier CSV si il n'y a pas de ligne vide ou sans UPN
pour gérer ce cas je ferai un filtre des ligne vide
met le délimiteur entre guillemets
pour finir le header est inutile si il ce trouve dans le CSV
$rows = Import-Csv -Path C:\temp\phone_user_list2.csv –delimiter ";"
$rows | where {$_ -ne $null} | ForEach {
$r = $_
Write-Host $($r.UPN)
Write-Host $($r.OfficePhone)
$upn = $r.UPN
$u = Get-ADUser -Filter { userprincipalname -eq $upn } -Properties OfficePhone
if ($u) {
Write-Host $upn $u.OfficePhone $r.Number
Set-ADUser -Identity $u.SamAccountName -OfficePhone $r.Number
#-WhatIf
}
else {
Write-Host $r.UPN not found
}
}
bon apprentissage de powershell tu est en bonne voie
Dernière édition: il y a 2 ans 7 mois par Philippe.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.103 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Boucle For each qui ne fonctionne pas