Question
Importer un fichier .ics avec Powershell
- Jean Jacques
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 6 mois 1 semaine #34329
par Jean Jacques
Importer un fichier .ics avec Powershell a été créé par Jean Jacques
Bonjour
J'ai besoin d'ajouter plusieurs calendriers partagés (ics) pour une trentaine de personnes.
Le calendrier provient d'une entreprise A, partagé avec l'entreprise B.
Je souhaite ajouter ce calendrier (.ics) automatiquement pour tous les utilisateurs en powershell (qu'un dossier soit créé également dans leur calendrier pour chaque ics afin de ne pas mélanger tous les ics)
Microsoft m'a déjà aidé en me donnant ce script :
[/code]
Cependant la commande "n'est plus valide avec la version que j'utilise.
Pourriez-vous m'aider ?
Merci d'avance
J'ai besoin d'ajouter plusieurs calendriers partagés (ics) pour une trentaine de personnes.
Le calendrier provient d'une entreprise A, partagé avec l'entreprise B.
Je souhaite ajouter ce calendrier (.ics) automatiquement pour tous les utilisateurs en powershell (qu'un dossier soit créé également dans leur calendrier pour chaque ics afin de ne pas mélanger tous les ics)
Microsoft m'a déjà aidé en me donnant ce script :
[code]# Install the Exchange Online module if not already installed
Install-Module -Name ExchangeOnlineManagement
# Import the necessary modules
Import-Module ExchangeOnlineManagement
# connect to Exchange Online
Connect-ExchangeOnline
# Path to the .ics file
$icsFilePath = "C:\path\to\shared_calendar.ics"
# List of user email addresses
$userEmails = @(
"email address removed for privacy reasons",
"email address removed for privacy reasons",
"email address removed for privacy reasons"
)
# Loop through each user and add the .ics calendar
foreach ($userEmail in $userEmails) {
try {
# Access the user's mailbox
$mailbox = Get-Mailbox -Identity $userEmail
if ($mailbox) {
# Load the .ics file
$icsContent = Get-Content -Path $icsFilePath -Raw
# Add the .ics calendar to the user's mailbox
Add-MailboxCalendarFolder -Identity $mailbox -Name "Shared Calendar" -Calendar $icsContent
Write-Output "Successfully added calendar to $userEmail"
} else {
Write-Output "Mailbox not found for $userEmail"
}
} catch {
Write-Output "Error adding calendar to $userEmail: $_"
}
}
# Disconnect from Exchange Online
Disconnect-ExchangeOnline -Confirm:$false
Cependant la commande "
Add-MailboxCalendarFolder"
Pourriez-vous m'aider ?
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 6 mois 1 semaine #34339
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Importer un fichier .ics avec Powershell
Bonjour Jean-Jacques,
Tout d'abord soit le bienvenu dans le forum. Je te remercie d'avance de bien vouloir te présenter car c'est toujours agréable de connaître un peu plus les membres que juste par des questions.
Je ne suis pas un expert Exchange, mais je vais essayer de t'aider.
Pourrais-tu nous dire quelles sont les versions que tu utilises ? D'après ce que tu expliques, la commande Add-MailboxCalendarFolder n'est plus disponible ? Si c'est le cas, elle a sûrement été remplacée par une autre... Bizarre...
Arnaud
Tout d'abord soit le bienvenu dans le forum. Je te remercie d'avance de bien vouloir te présenter car c'est toujours agréable de connaître un peu plus les membres que juste par des questions.
Je ne suis pas un expert Exchange, mais je vais essayer de t'aider.
Pourrais-tu nous dire quelles sont les versions que tu utilises ? D'après ce que tu expliques, la commande Add-MailboxCalendarFolder n'est plus disponible ? Si c'est le cas, elle a sûrement été remplacée par une autre... Bizarre...
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Dead
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 70
- Remerciements reçus 2
il y a 6 mois 1 jour #34408
par Dead
Réponse de Dead sur le sujet Importer un fichier .ics avec Powershell
Bonjour Jean-Jacques,
En adaptant un peu ce que j'avais fait dans ce script, peut être que cela pourra vous servir:
En adaptant un peu ce que j'avais fait dans ce script, peut être que cela pourra vous servir:
# Installer le module Exchange Online si non déjà installé
Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber
# Importer les modules nécessaires
Import-Module ExchangeOnlineManagement
# Se connecter à Exchange Online
Connect-ExchangeOnline -UserPrincipalName "youradmin@domain.com" -ShowProgress $true
# Chemin vers le fichier .ics
$icsFilePath = "C:\path\to\shared_calendar.ics"
# Liste des adresses e-mail des utilisateurs
$userEmails = @(
"user1@domain.com",
"user2@domain.com",
"user3@domain.com"
)
# Charger le contenu du fichier .ics
$icsContent = Get-Content -Path $icsFilePath -Raw
# Convertir le contenu .ics en élément de calendrier
$calendarItem = [Microsoft.Exchange.WebServices.Data.Appointment]::Bind($service, $icsContent)
# Boucle à travers chaque utilisateur pour ajouter le calendrier .ics
foreach ($userEmail in $userEmails) {
try {
# Accéder à la boîte aux lettres de l'utilisateur
$mailbox = Get-Mailbox -Identity $userEmail
if ($mailbox) {
# Définir un nom de dossier de calendrier unique
$calendarFolderName = "Shared Calendar"
# Créer le dossier de calendrier
$calendarFolder = New-MailboxFolder -Mailbox $mailbox -Name $calendarFolderName -FolderType Calendar
# Importer le fichier .ics dans le nouveau dossier de calendrier
$importResults = Import-Calendar -Identity $mailbox -Content $icsContent -CalendarFolder $calendarFolder.Identity
Write-Output "Calendrier ajouté avec succès à $userEmail"
} else {
Write-Output "Boîte aux lettres non trouvée pour $userEmail"
}
} catch {
Write-Output "Erreur lors de l'ajout du calendrier à $userEmail : $_"
}
}
# Se déconnecter de Exchange Online
Disconnect-ExchangeOnline -Confirm:$false
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.154 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Importer un fichier .ics avec Powershell