Benutzer mit den meisten Antworten
Mit Powershell neue Termine in einem Sharepoint-Kalender erstellen

Frage
-
Hi,
unser Team bekommt viele automatisiert erzeugte Mails, die den Reboot eines Windows-Servers z. B. wegen Patchrollout ankündigen. Damit alle im Team schnell an diese Info rankommen, würd ich den Sharepoint-Kalender des Teams nutzen wollen.
Aus Outlook kann ich bereits mit Powershell die Mails auslesen und die relevanten Angaben herausfiltern.
Aber wie kann ich als 2. Schritt daraus die (Tages-) Termine im Sharepoint-Kalender erzeugen?Ich sehe 3 Möglichkeiten:
(1) Mittels Powershell-Sharepoint-Modules direkt in Sharepoint schreiben (wie käm ich an die ran?)
(2) Den SP-Kalender mit Outlook verbinden und mittels Outlook die Termine anlegen. Aus der Sharepoint-Community kam zumindest der Tipp, es über Outlook zu machen, weil es einfacher sei.
(3) Notfalls könnte ich eine ICS-Datei erzeugen, die ich dann manuell in den SP-Kalender importiere. Aber das ist die umständlichste Methode.Kann mir da jemand helfen?
Danke & Schöne Grüße
Walter
Antworten
-
Vielleicht hilft dir dann das hier :
http://www.vinithmenon.com/2012/11/manipulating-sharepoint-lists-using.html
Windows SharePoint Services Web Services
http://msdn.microsoft.com/en-us/library/ms479390%28v=office.12%29.aspxDie URL zum auflisten aller SharePoint Listen hat dieses Format:
New-WebServiceProxy –Uri 'http://<site>/_vti_bin/Lists.asmx'
Spiel damit mal rum!
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Bearbeitet Peter Kriegel Mittwoch, 8. Januar 2014 11:21
- Als Antwort vorgeschlagen Alex Pitulice Freitag, 17. Januar 2014 09:40
- Als Antwort markiert WalterFMB Freitag, 17. Januar 2014 09:50
Alle Antworten
-
Hallo Walter!
Ich habe keine Ahnung von SharePoint!
Aber ich beherrsche die Internet suche ;-)
Hier wird dir geholfen:
http://sharepintblog.com/2011/06/24/create-random-or-demo-sharepoint-content-with-powershell/
Ganz unten ist ein link mit dem Script:## Load the SharePoint Snapin so the script can be executed from PowerShell editor Add-PSSnapin Microsoft.SharePoint.PowerShell –erroraction SilentlyContinue ## Create a random number $random = New-Object system.random ## Create a list of events $eventList = New-Object System.Collections.Generic.List``1[System.String] $eventList.Add("Conference Call") $eventList.Add("Team Meeting") $eventList.Add("Design Review") $eventList.Add("Audit") $eventList.Add("Monthly Report Prep") $eventList.Add("Sales Meeting") $eventList.Add("BSG Extranet Development") $eventList.Add("SP2010 Event") $eventList.Add("ISO27001") $eventList.Add("Board Meeting") $eventList.Add("ISO27001") $eventList.Add("Staff Training") $eventList.Add("Reviews") $eventList.Add("Staff Update") $eventList.Add("Budget Review") $eventList.Add("Doctors") $eventList.Add("Working From Home") $eventList.Add("Unavailable") $eventList.Add("Off Site") $eventList.Add("Client Meeting") $eventList.Add("Prep Board") $eventList.Add("SP2010 Prep") $eventList.Add("Long Lunch") $eventList.Add("Private Meeting") $eventList.Add("Staff Review") $eventList.Add("Prep Sales Figures") ## Define the SharePoint web URL $WebUrl = "http://BC01" ## Delete 'Team Calendar' if it already exists $LibraryName = "Team Calendar" Write-Output "Deleting $LibraryName...." $OpenWeb = Get-SPWeb $WebUrl try { $OpenWeb.Lists[$LibraryName].Delete(); } catch { } ## Create new 'Team Calendar' Write-Output "Creating new $LibraryName...." $OpenWeb.Lists.Add($LibraryName, "A SharePoint calendar created via PowerShell", 106) $NewList = $OpenWeb.Lists[$LibraryName] $NewList.OnQuickLaunch = 1 $NewList.Update() ## Create a few items For ($x=0; $x -lt 13; $x++) { $item = $NewList.Items.Add(); $item["Title"] = $eventList[$x]; $start = (Get-Date).AddDays($random.next(-30,30)); $item["EventDate"] = $start; $item["EndDate"] = $start.AddMinutes($random.next(30,90)); $item.Update() } ## Delete 'My Calendar' if it already exists $LibraryName = "My Calendar" Write-Output "Deleting $LibraryName...." try { $OpenWeb.Lists[$LibraryName].Delete() } catch { } ## Create a new 'My Calendar' Write-Output "Creating new $LibraryName...." $OpenWeb.Lists.Add($LibraryName, "A SharePoint calendar created via PowerShell", 106) $NewList = $OpenWeb.Lists[$LibraryName] $NewList.OnQuickLaunch = 1 $NewList.Update() $OpenWeb.Update() ## Create a few items For ($x=13; $x -lt 26; $x++) { $item = $NewList.Items.Add(); $item["Title"] = $eventList[$x]; $start = (Get-Date).AddDays($random.next(-30,30)); $item["EventDate"] = $start; $item["EndDate"] = $start.AddMinutes($random.next(30,90)); $item.Update() } ## Tidy up $OpenWeb.Dispose()
ODER ohne das SharePoint Modul mit den .NET Klassen:
Auf einem SharePoint Server kannst du in PowerShell die SharePoint .DLL Laden.
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
Dann kannst du deinen Sites und Calendars listen:
$Site = New-Object Microsoft.Sharepoint.Spsite("http://localhost")
$Web = $Site.OpenWeb()
$Calendar = $Web.Lists["Calendar"]
Dokumentation der SPSite Klasse:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite_members.aspx
Dokumentation der SPWeb Klasse :
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb_members.aspx
etwa so:
$Site = New-Object Microsoft.Sharepoint.Spsite("http://localhost") $Web = $Site.OpenWeb() $Calendar = $Web.Lists.TryGetList("Calendar") If($Calendar) { $CalendarEvent = $Calendar.Items.Add() $CalendarEvent["Title"] = "New Event" $CalendarEvent["Description"] = "New Event created using SharePoint Object Model" $CalendarEvent["Location"] = "First Floor" $CalendarEvent["Start Time"] = Get-Date $CalendarEvent["End Time"] = (Get-Date).AddDays(2) $CalendarEvent["Category"] = "Business" $CalendarEvent["fAllDayEvent"] = $False $CalendarEvent.Update() } Else { Write-Host '"Calendar list does not exists in the site"' }
Zur Exchange / Outlook Programmierung mit PowerShell kannst du meinen Artikel über Exchange Webservices (EWS) hier lesen:
http://www.powershell-group.eu/powershell-exchange-webservices-ews/
und hier die Exchange Webservices (EWS) mit dem Kalender:
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+
- Bearbeitet Peter Kriegel Mittwoch, 8. Januar 2014 08:01
-
Hallo Peter,
danke für die ausführliche Hilfe.
Ich hab aber leider keinen Zugriff auf den Sharepoint-Server, kann mich dort also nicht anmelden. Bin nur einfacher Sharepoint-Nutzer ohne weitere Rechte.
Im Internet finden sich da schon einige Beispiele für Powershell & Sharepoint, aber da gehts immer um Administration des SP-Servers inklusiv Logon am SP-Server oder zumindest Admin-Rechte daselbst.Wegen dieses fehlenden Zugriffs hab ich also weder Sharepoint-Cmdlets noch Sharepoint-DLLs.
Danke & Grüße
Walter
-
Vielleicht hilft dir dann das hier :
http://www.vinithmenon.com/2012/11/manipulating-sharepoint-lists-using.html
Windows SharePoint Services Web Services
http://msdn.microsoft.com/en-us/library/ms479390%28v=office.12%29.aspxDie URL zum auflisten aller SharePoint Listen hat dieses Format:
New-WebServiceProxy –Uri 'http://<site>/_vti_bin/Lists.asmx'
Spiel damit mal rum!
PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
auf der deutschsprachigen PowerShell Community
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+- Bearbeitet Peter Kriegel Mittwoch, 8. Januar 2014 11:21
- Als Antwort vorgeschlagen Alex Pitulice Freitag, 17. Januar 2014 09:40
- Als Antwort markiert WalterFMB Freitag, 17. Januar 2014 09:50
-
Danke, Peter.
Ja, ich werd mal ein wenig rumspielen. Mal sehn, ob ich damit zurecht kommt.
Ich hab auch mal versucht, eine ICS-Datei mittels Outlook in einen verbundenen Sharepoint-Kalender zu importieren. Leider kann ich den Ziel-Kalender nicht auswählen, Outlook importiert so was immer nur in meinen eigenen Kalender, das hilft also auch nicht.
Schöne Grüße
Walter