2015-10-12 1 views
0

J'ai un peu de code PowerShell qui après la création d'un utilisateur, le code affecte les charges de compte d'attributs en utilisant Quest/AD. Tous les attributs sont affectés sauf Mailnickname. Y a-t-il une raison à cela/comment puis-je le réparer? Ci-dessous est mon code:Paramètre Powershell Attribut Mailnickname

get-qaduser $xy | Add-QADProxyAddress -Address ("SMTP:"+$x) -verbose 
get-qaduser $xy | Add-QADProxyAddress -Address ("SMTP:"+$xy+"@domainexample.mail.onmicrosoft.com") -verbose 
get-qaduser $xy | Set-QADUser -ObjectAttributes @{msExchVersion="44210883383015"} -verbose 
Set-QADUser -identity $xy -ObjectAttributes @{mailnickname = $xy} 

Quelqu'un aurait-il des suggestions sur quoi et comment y arriver.

Merci d'avance.

Steve

+0

Id probablement utiliser set-aduser -identity $ xy -replace @ {mailnickname = $ xy}, que se passe-t-il si vous exécutez ce code ou votre propre code en dehors du code que vous avez fourni ci-dessus? L'attribut mailnickname existe-t-il également? –

+0

Il existe sous l'utilisation de noms d'affichage LDAP. quand vous le changez pour utiliser des noms amicaux, il n'apparaît pas dans la quête? Il est souligné si cela fait une différence? Quand j'essaie de faire fonctionner votre code, il est dit que je n'ai pas assez de droit quand j'ai vraiment le droit de changer cela. Si je l'exécute à l'extérieur, ça ne marche toujours pas, exécutez le code de sur-le-dessus, ça marche toujours: | Merci d'avance – user3290171

Répondre

0

Avez-vous besoin d'utiliser Quest? Cela fonctionne en mode natif PS v3:

Get-ADUser $xy | Set-ADUser -Add @{mailNickname=$xy}

Ou:

Get-ADUser $xy | Set-ADUser -Replace @{mailNickname=$xy}

En réponse à votre question ci-dessous:

Je suppose que vous voulez dire v1 PowerShell. Je n'ai pas utilisé PS v1. Commencez-vous votre script avec Import-Module ActiveDirectory? Si non, vous devriez l'afficher en haut de votre ligne. Pour Quest par ici, le script commence toujours par Import-Module ActiveDirectory et la ligne suivante est Add-PSSnapIn Quest.ActiveRoles.ADManagement. Cela fonctionnerait dans PS v2:

Import-Module ActiveDirectory 
Add-PSSnapIn Quest.ActiveRoles.ADManagement 
#This line lets you just type the user you want to modify 
$XY = Read-Host "Input User ID" 
#This is your code you said works 
get-qaduser $xy | Add-QADProxyAddress -Address ("SMTP:"+$x) -verbose 
get-qaduser $xy | Add-QADProxyAddress -Address ("SMTP:"+$xy+"@domainexample.mail.onmicrosoft.com") -verbose 
get-qaduser $xy | Set-QADUser -ObjectAttributes @{msExchVersion="44210883383015"} -verbose 
#This should add the mailNickname property through standard PS 
Get-ADUser $XY | Set-ADUser -Add @{mailNickname = $XY} 

Voyez si cela fait ce que vous avez besoin et revenez à moi. Rappelez-vous: dans cet exemple, vous déclarez la variable $ XY comme étant ce que l'utilisateur a saisi lors de l'exécution du script.

+0

Ou j'imagine que votre code existant de 'Set-QADUser -identity $ xy -ObjectAttributes @ {mailnickname = $ xy}' pourrait simplement être ajusté à 'get-qaduser $ xy | Set-QADUser -ObjectAttributes @ {mailnickname = $ xy} 'mais je n'utilise pas Quest. Vous pouvez également créer une ligne avec 'get-qaduser $ xy | Set-QADUser -ObjectAttributes @ {msExchVersion = "44210883383015"; mailnickname = $ xy} 'Je parie. – Nate

+0

Malheureusement, je ne peux utiliser que PS1, serait-ce la raison pour laquelle je reçois le problème? Y at-il de toute façon autour de lui, j'ai aussi le module Active Directory pour Windows Powershell. Peut-être une meilleure façon d'utiliser cela? Merci – user3290171

+0

J'ai mis à jour ma réponse à vous. Essayez ce script. Il suffit de copier le script et de l'enregistrer en tant que .ps1 et l'exécuter dans PowerShell ISE afin que vous puissiez voir les erreurs. Rapportez-moi les erreurs. – Nate

-1

La raison probable que vous voyez cela est due à la stratégie intégrée de ARS - Stratégie d'alias de messagerie par défaut. Vous pouvez vérifier que c'est le cas en vérifiant l'historique des modifications pour les objets utilisateur que vous essayez de créer/modifier.

L'alias de propriété (mailNickName) 'est supprimé de la demande d'opération car aucune tâche Exchange n'a été demandée. Essayez de définir l'attribut targetAddress en même temps pour éviter d'être supprimé par cette stratégie.

+1

Vous devez vous rappeler que Stack Overflow n'est pas un forum. Avant votre édition, votre "réponse" n'était pas une réponse, c'était une * question *, donc quelqu'un l'a rabaissé. Même maintenant, il est difficile pour moi de dire si la réponse répond réellement à la question posée par l'auteur original - vous feriez mieux de la reformuler pour qu'il soit clair que vous essayez de répondre * à cette question, pas seulement la vôtre. – Ajean

+0

Je suis désolé, je suis un peu nouveau à cela. Je me rends compte que j'aurais dû poster un commentaire et non une réponse. Je vais l'éditer pour rendre ma réponse plus claire. – apocalysque