none
Importation de données avec Powershell RRS feed

  • 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

    jeudi 11 octobre 2018 13:03

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"

    https://docs.microsoft.com/en-us/office365/enterprise/powershell/configure-user-account-properties-with-office-365-powershell

    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

    jeudi 11 octobre 2018 17:09
  • 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.

    samedi 13 octobre 2018 15:31
  • Bonjour,

    Merci à vous  pour vos réponses.

    A quoi correspond en fait l'agument "Identity"?

    vendredi 19 octobre 2018 08:02
  • Bonjour,

    Suivez le lien fourni par matteu31400 :


    My technical blog on SharePoint || My contributions on the TechNet Gallery

    lundi 22 octobre 2018 09:51
  • Bonjour,

    Ok mais je vais utiliser un fichier CSV contenant les adresses mail

    lundi 22 octobre 2018 14:48
  • 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

    lundi 29 octobre 2018 10:37
  • Bonjour,

    Merci bien.

    Je vais essayer d'adapter ma demande avec ce script.

    mardi 30 octobre 2018 08:21
  • 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

    mardi 30 octobre 2018 08:46
  • 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

    mardi 30 octobre 2018 11:59
  • J'utilise l'application "Windows Powershell ISE" .

    Dois-je utiliser l'application "Module Active Directory pour Windows Powershell"?

    mardi 30 octobre 2018 12:52
  • 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

    mardi 30 octobre 2018 15:12