2017-06-12 1 views
0

J'ai réussi à créer un rendez-vous sur un compte d'emprunt d'identité avec des lignes de commande EWS. Mais je veux inclure une pièce (Exchange Mailbox) comme ressource/emplacement.Exchange Web Services (EWS) - Ressources de rendez-vous

Dans mon scénario, je l'ai ajouté les deux lignes de commande ci-dessous:

  • $NewAppointment.Location($RoomName)
  • $NewAppointment.Resources.Add($RoomMail)

$RoomName et $RoomMail sont trouvés par la commande Get-MailBox -lines:

  • $Room = Get-MailBox $CSV.Room
  • $RoomName = $Room.DisplayName
  • $RoomMail = $Room.UserPrincipalName or $Room.PrimarySmtpAddress

Edit:

J'ai ajouté le bloc de code suivant:

$NewGuid = newGuid 
$LocationURIGuid = $NewGuid.Guid 
$LocationURI = New-Object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition($LocationURIGuid, "LocationUri", [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String) 
$NewAppointment.SetExtendedProperty($LocationURI,$RoomMail) 

$NewGuid = newGuid 
$LocationSourceGuid = $NewGuid.Guid 
$LocationSource = New-Object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition($LocationSourceGuid, "LocationSource", [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::Integer) 
$NewAppointment.SetExtendedProperty($LocationSource,5) 

$NewGuid = newGuid 
$LocationDisplayNameGuid = $NewGuid.Guid 
$LocationDisplayName = New-Object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition($LocationSourceGuid, "LocationDisplayName", [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::Integer) 
$NewAppointment.SetExtendedProperty($LocationDisplayName,$Room) 

NewGuid est une fonction:

function newGuid() { return [guid]::NewGuid() } 

L'erreur est:

multiples ambiguës trouvées pour surcharge "ExtendedPropertyDefinition" et le nombre d'arguments: "3".

Répondre

0

Vous avez juste besoin d'utiliser Load() pour recharger le rendez-vous une fois que vous avez créé et vous devriez voir ces propriétés remplies out.That informations sont popualted lorsque la nomination est créé et non retournés dans l'opération de CreateItem si n'apparaîtra pas tant que vous n'aurez pas fait une autre demande GetItem.

Modifier

Vous devez ajouter ces informations en utilisant les propriétés étendues qu'EWS ne le fera pas pour vous, par exemple

 Guid PropGuid = Guid.Parse("{A719E259-2A9A-4FB8-BAB3-3A9F02970E4B}"); 
     ExtendedPropertyDefinition LocationURI = new ExtendedPropertyDefinition(PropGuid, "LocationUri", MapiPropertyType.String); 
     ExtendedPropertyDefinition LocationSource = new ExtendedPropertyDefinition(PropGuid, "LocationSource", MapiPropertyType.Integer); 
     ExtendedPropertyDefinition LocationDisplayName = new ExtendedPropertyDefinition(PropGuid, "LocationDisplayName", MapiPropertyType.String); 
     newapt.SetExtendedProperty(LocationURI, "[email protected]"); 
     newapt.SetExtendedProperty(LocationSource, 5); 
     newapt.SetExtendedProperty(LocationDisplayName, "Somewhere"); 

Edit 2 Code powershell

$PropGuid = [Guid]::Parse("{A719E259-2A9A-4FB8-BAB3-3A9F02970E4B}") 
    $LocationURI = New-Object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition($PropGuid, "LocationUri", [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::String) 
    $NewAppointment.SetExtendedProperty($LocationURI,$RoomMail) 

    $LocationSource = New-Object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition($PropGuid, "LocationSource", [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::Integer) 
    $NewAppointment.SetExtendedProperty($LocationSource,5) 

    $LocationDisplayName = New-Object Microsoft.Exchange.WebServices.Data.ExtendedPropertyDefinition($PropGuid, "LocationDisplayName", 

    [Microsoft.Exchange.WebServices.Data.MapiPropertyType]::Integer) 
    $NewAppointment.SetExtendedProperty($LocationDisplayName,$Room) 
+0

Merci pour votre réponse . Le fait est Load() ou non la pièce que j'ai ajoutée n'est pas vue comme une pièce. En ligne de commande ou dans une application Web, l'emplacement est toujours indiqué en tant qu'adresse. – NivekLR

+0

Pouvez-vous ajouter quelques précisions dans votre question car vous ne donnez pas assez de détails ou de code pour que quelqu'un puisse répondre –

+0

OK. Désolé :) Lorsque je souhaite créer une réunion/un rendez-vous sur un compte d'emprunt d'identité avec de la place en tant que ressource/emplacement, j'utilise la ligne de commande $ NewAppointment.Resources.Add ($ Room). Cette commande ajoute une ressource mais celle-ci n'est pas montrée comme une vraie pièce. Le résultat sur Outlook OWA est que l'entrée Emplacement est affichée comme un lieu classique (recherche Bing) et non comme une pièce. – NivekLR