SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




SharePoint Dienst Regelmäßig ausführen / SPTimerJob / Dienstanwendung

Geprüfte Antwort Dieser Beitrag hat 3 Antworten

Ohne Rang
282 Beiträge
MStel erstellt 11 Sept. 2015 11:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich bin derzeit auf der Suche nach einer Möglichkeit, regelmäßig ein Skript auf meiner Webanwendung auszuführen.
Nun Frage ich mich wie man dies SharePoint seitig löst.
Ich werfe mal die Stichworte "SharePoint Dienstanwendung " und "SPTimerJob " in den Raum und würde gerne ohne praktische Vorkenntnisse wissen in welche Richtung ich mich eher erkundigen sollte um ein PowerShell Skript mit einem Interval von einer Minute regelmäßig auszuführen.
In der Aufgabenplanung von Windows kann ich dies leider nicht realisieren, da die Schnittstelle zum Zielserver lediglich meine PowerShell ist ( auf dem Windows Server habe ich keinen Zugriff ).

Auf meiner Testumgebung habe ich es über Windows Aufgabenplanung getestet und mit einem Trigger einwandfrei hinbekommen. Ich bin auf der Suche nach etwas ähnlichem, der einzige Unterschied soll quasi sein, dass der Dienst nicht auf dem Windows Server sondern auf dem SharePoint Server, bestenfalls vom Systemkonto ausgeführt wird. Wenn es vielleicht noch einen treffenderen Begriff als die beiden oben genannten gibt wäre ich um Ergänzungen sehr erfreut.

MFG
MSTEL

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 11 Sept. 2015 12:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mir scheint, Dir fehlen hier ein paar grundsätzliche Dinge, deshalb zur Erklärung:

- SharePoint Dienstanwendungen kannst Du in dem Zusammenhang vergessen. Sie sind nicht dazu da etwas regelmäßig auszuführen.

- Eigene SharePoint Timerjobs (SPJobDefinition) müssen in C# (oder einer anderen .NET-Sprache) entwickelt werden. PowerShell geht nicht. Dafür laufen Timerjobs immer als Systemkonto und man hat damit vollen Zugriff auf die gesamte Farm. Sie werden als Solution (WSP-Datei) von einem Admin in der Farm bereitgestellt.

- Mit PowerShell kann man entweder servrseitig arbeiten, dann muß das Script (egal ob per Task-Scheduler oder manuell) aber auf einem SharePoint Server ausgeführt werden. Man kann aber auch clientseitig arbeiten, dann kann das Script auf einem beliebigen Rechner ausgeführt werden. Nachteil dabei ist, daß man nur mit Mitteln eines Clients, also Client Object Model und/oder Webservices arbeiten kann und dabei ist man deutlich eingeschränkt.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 14 Sept. 2015 07:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Vielen dank, dies ist sehr  hilfreich!


Dienstanwendungen fallen in meinem Fall also weg.

Wie darf ich der serverseitigen Ausführung von PowerShell verstehen?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Sept. 2015 08:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Serverseitig kannst Du in PowerShell das serverseitige Objektmodell von SharePoint benutzen. Man kann dazu die SharePoint-Assemblies direkt verwenden oder die mitgeliferten CmdLets (Add-PSSnapin Microsoft.SharePoint.PowerShell). Oder beides. Z.B. bekommst Du dann mit Get-SPWeb eine Instanz von Microsoft.SharePoint.SPWeb und kannst damit so ziemlich alles machen.

Clientseitig kannst Du dagegen eben nur die Webservices verwenden oder das Client Object Model (das unter der Haube ebenfalls die Webservices verwendet). Du hast es dann z.B. mit Microsoft.SharePoint.Client.Web zu tun und damit weniger Möglichkeiten. Vor allem in 2010 ist das deutlich eingeschränkt. In 2013 kann man über die REST-Services fast alles auch clientseitig machen.

Viele Grüße
Andi
af @ evocom de
Blog