Essayer de trouver un moyen d’ajouter des utilisateurs avec send en tant que droit à une boîte aux lettres et de les ajouter également avec des droits de contrôle complets sur un groupe de sécurité. Pour le moment, je le fais avec la commande ci-dessous ...
$User = "UserEmail"
$Mailbox = "MailboxEmail"
$MailboxAccess = "SecurityGroup"
Add-RecipientPermission -Identity $Mailbox -AccessRights SendAs -Trustee $User -Confirm:$false
Add-DistributionGroupMember -Identity $MailboxAccess -Member $User -Confirm:$false -BypassSecurityGroupManagerCheck
Mais sachez que ce n'est pas le moyen le plus rapide, car je dois rechercher manuellement les adresses de messagerie de O365 Admin Portal. A essayé quelque chose comme le ci-dessous ...
$User = "UserEmail"
$Mailbox = Get-Mailbox -RecipientTypeDetails SharedMailbox -Anr *MailboxName* | Select-Object PrimarySmtpAddress
$MailboxAccess = Get-Group -Anr *SecurityGroupName* | Select-Object WindowsEmailAddress
Add-RecipientPermission -Identity $Mailbox -AccessRights SendAs -Trustee $User -Confirm:$True
Add-DistributionGroupMember -Identity $MailboxAccess -Member $User -Confirm:$True -BypassSecurityGroupManagerCheck
Mais cela échoue car les applets de commande ne prennent pas en charge la tuyauterie. Jolie nouvelle à Powershell, toute aide / conseil serait donc très apprécié.
modifier
Le message d'erreur reçu lors de l'exécution est ...
PS C:\WINDOWS\System32\WindowsPowerShell\v1.0> Add-RecipientPermission -Identity
$Mailbox -AccessRights SendAs -Trustee $User -Confirm:$True
Cannot process argument transformation on parameter 'Identity'. Cannot convert
value "@{PrimarySmtpAddress=*EmailAddress*}" to type
"Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter". Error: "Cannot
convert hashtable to an object of the following type:
Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter.
Hashtable-to-Object conversion is not supported in restricted language mode or
a Data section."
+ CategoryInfo : InvalidData: (:) [Add-RecipientPermission], Para
meterBindin...mationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Add-Recipie
ntPermission
+ PSComputerName : outlook.office365.com
Nous avons également essayé de l'exécuter sans les objets de sélection supplémentaires à la fin et d'obtenir toujours le même résultat ...
PS C:\WINDOWS\System32\WindowsPowerShell\v1.0> Add-RecipientPermission -Identity
$Mailbox -AccessRights SendAs -Trustee $User -Confirm:$True
Cannot process argument transformation on parameter 'Identity'. Cannot convert
value "*EmailDisplayName*" to type
"Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter". Error: "Cannot
convert hashtable to an object of the following type:
Microsoft.Exchange.Configuration.Tasks.RecipientIdParameter.
Hashtable-to-Object conversion is not supported in restricted language mode or
a Data section."
+ CategoryInfo : InvalidData: (:) [Add-RecipientPermission], Para
meterBindin...mationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Add-Recipie
ntPermission
+ PSComputerName : outlook.office365.com
la source
Réponses:
En regardant l'exemple présenté dans la page TechNet
Add-RecipientPermission
, il apparaît que vous pouvez fournir une valeur de chaîne simple pour le-Identity
paramètre. il n'a pas besoin d'un objet de fantaisie. L'article indique également (dans la table des paramètres) que vous pouvez utiliser n'importe quel nom identifiant de manière unique le principal, même le nom d'affichage. La même chose vaut pourAdd-DistributionGroupMember
.Par conséquent, vous n'avez pas à utiliser
Get-Mailbox
ouGet-Group
à rechercher l'adresse de messagerie du destinataire; vous pouvez simplement utiliser votre premier script et fournir le nom lisible par l'homme.Toutefois, si vous souhaitez utiliser ces cmdlets, vous devez extraire l'adresse de messagerie simple de l'objet à une propriété renvoyé par
select
. Par exemple, vous fourniriez$MailboxAccess.WindowsEmailAddress
au lieu de simplement$MailboxAccess
. Vous devrez peut-être même faire appelToString()
à cette valeur s'il s'agit encore d'un autre objet .NET qui ne se convertit pas automatiquement en un objet utilisable.la source