Auteur de questions
Importation de données avec Powershell

Question
-
Bonjour à tous,
J'ai besoin d'intégrer des données dans la catégorie "Company" des comptes sur un O365 d'entreprise.
En me documentant un peu , il apparait qu'il faut utiliser la commande Set-ADUser pour intégrer ces données.
J'ai alors construis un fichier CSV avec 2 colonnes (UserPrincipalName et Company)
Mon script se compose ainsi:
#Script de connexion automatique PowerShell pour modifier des données
#Identifiants Admin 365
$user = "XXXXXX@XXXXXX"
#Afficher les fenêtres pop d'authentification
$cred = Get-Credential -Credential $user
#Ouverture de la session Powershell pour Office 365
Connect-MsolService -Credential $cred
#Établir session PowerShell à distance à Office 365 Exchange :
$msoExchangeURL = “https://outlook.office365.com/powershell-liveid/”
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $msoExchangeURL -Credential $cred -Authentication Basic -AllowRedirection
#Créer accès distant importation PowerShell cmdlets Exchange en ligne
Import-PSSession $session
Import-CSV 'XXXXXX\Scripts_Powershell\Ajout_Company\liste.csv' | ForEach-Object {Set-ADUser -UserPrincipalName $_.UserPrincipalName -Company $_.Company}J'ai ce message:
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.0 tmp_ixbjotj3.viy {Add-AvailabilityAddressSpace, Add-DistributionGroupMember, Add-MailboxFolderPermission, Add-Mail...
applet de commande Set-ADUser à la position 1 du pipeline de la commande
Fournissez des valeurs pour les paramètres suivants :
Identity :Je débute en Powershell et je pense qu'il y a un problème de connexion pour exploiter la commande Set-ADUser.
J'ai utilisé auparavant ce script pour intégrer des numéros de téléphones dans chaque compte d'0365 et je n'ai pas eu de soucis. Ici la donnée "Company" semble remonter de l'AD.
Auriez-vous une idée s'il vous plait pour me dépanner?
Merci
Toutes les réponses
-
Bonjour,
la commande set-ADUser, comme le nom l'indique est prévue pour modifier AD à partir du PowerShell Shell spécifique d'administration AD.
Donc, si les comptes à modifier sont bien synchronisés à partir de l'AD par ADCONNECT, tu peux utiliser la commande SET-ADUSER directement sur un serveur de l'AD (sans Remote PowerShell ou Session MSOL).
Sinon, pour les comptes non synchronisés, il faut plutôt utiliser la commande "set-msoluser"
A+
Thierry DEMAN. Exchange MVP. MCSE:Messaging 2013,MCSE:Server Infrastructure 2012(83 MCPs). MCSA Office 365 https://mvp.microsoft.com/en-us/mvp/Thierry%20Deman-7660 http://base.faqexchange.info
-
Bonjour
La commande nécessite l'argument identity
https://docs.microsoft.com/en-us/powershell/module/addsadministration/set-aduser?view=win10-ps
C'est donc normal d'avoir une erreur si vous ne la spécifiez pas.
Merci de marquer comme reponses les interventions qui vous ont ete utile.
-
-
Bonjour,
Suivez le lien fourni par matteu31400 :
My technical blog on SharePoint || My contributions on the TechNet Gallery
-
-
Bonjour,
Ok mais je vais utiliser un fichier CSV contenant les adresses mail
Bonjour,
Est-ce que l'UserPrincipalName équivaut à vos e-mails ?
Si c'est le cas voici un bout de script qui peut vous permettre de réaliser ce que vous souhaitez :
#CSV : #UserPrincipalName,Company #monuser@domain.com,company $CSV = Import-CSV "c:\users.csv" foreach ($item in $CSV) { $User = Get-ADUser -filter {UserPrincpalName -eq $item.UserPrincipalName} $Sam = $User.SamAccountName Set-ADUser -Identity $Sam -Company "$($item.Company)" Write-Host "Modification de $sam - company : $($item.company)" }
Si le UserPrincipalName n’équivaut pas à vos e-mails, prenez le champ qui correspond.
Le but est juste de prendre un attribut pour avoir le samaccountname afin de pouvoir modifier l'utilisateur.
Cdt
-
-
Cela ne marche pas pour le moment.
Voici mon script:
#Identifiants Admin 365
$user = "XXXXXXXXXX@XXXXXXXXXXX"
#Afficher les fenêtres pop d'authentification
$cred = Get-Credential -Credential $user
#Ouverture de la session Powershell pour Office 365
Connect-MsolService -Credential $cred
#Établir session PowerShell à distance à Office 365 Exchange :
$msoExchangeURL = “https://outlook.office365.com/powershell-liveid/”
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri $msoExchangeURL -Credential $cred -Authentication Basic -AllowRedirection
#Créer accès distant importation PowerShell cmdlets Exchange en ligne
Import-PSSession $session
$CSV=Import-CSV 'C:\Users\xxxxxxx\OneDrive - IPH\Scripts_Powershell\Ajout_Company\liste.csv'
foreach ($item in $CSV) {
$User = Get-ADUser -filter {UserPrincpalName -eq $item.UserPrincipalName}
$Sam = $User.SamAccountName
Set-ADUser -Identity $Sam -Company "$($item.Company)"
Write-Host "Modification de $sam - company : $($item.company)"
}et voici le message d'erreur:
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.0 tmp_cirpqo0o.gik {Add-AvailabilityAddressSpace, Add-DistributionGroupMember, Add-MailboxFolderPermission, Add-MailboxLocation...}
Get-ADUser : Impossible de trouver un serveur par défaut avec les services Web Active Directory en cours d’exécution.
Au caractère C:\Users\xxxxxxxxx\OneDrive - IPH\Scripts_Powershell\Ajout_Company\Ajout company.ps1:21 : 13
+ $User = Get-ADUser -filter {UserPrincpalName -eq $item.UserPrinci ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (:) [Get-ADUser], ADServerDownException
+ FullyQualifiedErrorId : ActiveDirectoryServer:1355,Microsoft.ActiveDirectory.Management.Commands.GetADUser
Set-ADUser : Impossible de valider l'argument sur le paramètre « Identity ». L’argument est Null. Spécifiez une valeur valide pour l’argument, puis réessayez.
Au caractère C:\Users\xxxxxxx\OneDrive - IPH\Scripts_Powershell\Ajout_Company\Ajout company.ps1:23 : 26
+ Set-ADUser -Identity $Sam -Company "$($item.Company)"
+ ~~~~
+ CategoryInfo : InvalidData : (:) [Set-ADUser], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADUser
Modification de - company : xxxxxxxx -
Bonjour
il semble qu'aucun contrôleur de domaine ne soit accessible par PowerShell avec les services nécessaires.
- Soit les contrôleurs de domaine sont en version trop anciennes
- Soit les services "Services Web Active Directory" ne sont pas activés sur ces serveurs...
A bientôt
Thierry DEMAN. Exchange MVP. MCSE:Messaging 2013,MCSE:Server Infrastructure 2012(83 MCPs). MCSA Office 365 https://mvp.microsoft.com/en-us/mvp/Thierry%20Deman-7660 http://base.faqexchange.info
-
-
Bonjour,
Le module AD pour Powershell se charge automatiquement si nécessaire. S'il ne se charge pas, la commande serait marquée comme "Inconnue".
Donc, le problème n'est pas là. Pour le moment, get-ADuser cherche à accéder à un contrôleur de domaine en mode Web, et il n'en trouve pas.
A+
Thierry DEMAN. Exchange MVP. MCSE:Messaging 2013,MCSE:Server Infrastructure 2012(83 MCPs). MCSA Office 365 https://mvp.microsoft.com/en-us/mvp/Thierry%20Deman-7660 http://base.faqexchange.info