To add an item to a document library, use SPFileCollection.Add()

will man mit der powershell in einer wiki ein dokument hinzufügen, so kann man dies nicht Microsoft.SharePoint.SPListItem Add() erledigen, weil es sich bei der wiki ja um eine document library handelt (die wiki seiten sind nichts anderes als aspx dokumente!) – daher schlägt folgendes fehl:

# vars

$SiteName = “http://mosstest/”
$WebName = “/Wiki/”
$ListName = “Wiki Pages”

# connect to sharepoint and open the wiki list

$mossSite = new-object Microsoft.SharePoint.SPSite($SiteName);
$mossWeb = $MossSite.AllWebs[$WebName];
$mossList = $MossWeb.Lists[$ListName];

“Got List…”

# try to add a new item

$item = $mossList.Items.Add()
$item.Update();

Exception calling “Update” with “0” argument(s): “To add an item to a document library, use SPFileCollection.Add()”
At line:1 char:13
+ $item.Update( <<<< );

die fehlermeldung ist eigentlich eindeutig; wie macht man es nun richtig? so:

# vars

$SiteName = “http://mosstest/”
$WebName = “/Wiki/”
$ListName = “Wiki Pages”

# connect to sharepoint and open the wiki list

$mossSite = new-object Microsoft.SharePoint.SPSite($SiteName);
$mossWeb = $MossSite.AllWebs[$WebName];
$mossList = $MossWeb.Lists[$ListName];

“Got List…”

# try to add a new item

[byte[]]$mydata = “hipslu was here”.ToCharArray(); # dummydata
$newFile = $mossList.RootFolder.Files.Add(“newwikientry.aspx”, $mydata);

allerdings wird in diesem beispiel natürlich keine richtige wiki seite erstellt – für einen ernsthafen einsatz muss die variable $mydata einen entsprechend sinnvollen inhalt haben (oder man kopiert den wiki eintrag von woanders her)

Powershell and MOSS 2007 – Vorbereitungen

um die powershell verwenden zu können, sind folgende vorbereitungen notwendig:
download und installieren der powershell auf einem server, auf dem auch moss installiert ist
– öffnen der powershell und absetzen des folgenden befehls:

set-executionpolicy RemoteSigned

dies ist optional und bewirkt, dass lokale scripts nicht signiert sein müssen
– absetzen der beiden folgenden befehle:

[System.Reflection.Assembly]::Load(”Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”)
[System.Reflection.Assembly]::Load(”Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”)

der output sollte wie folgt aussehen:

GAC Version Location
— ——- ——–
True v2.0.50727 C:\WINDOWS\assembly\GAC_MSIL\Microsoft.SharePoint\12.0.0.0__71e9bce111e9429c\Microsoft.SharePo…

GAC Version Location
— ——- ——–
True v2.0.50727 C:\WINDOWS\assembly\GAC_MSIL\Microsoft.SharePoint.Portal\12.0.0.0__71e9bce111e9429c\Microsoft….

… um das nicht jedes mal eingeben zu müssen, erstellt man unter “C:\Documents and Settings\username\My Documents\” ein neues verzeichnis names “WindowsPowerShell” und darin eine datei namens “Microsoft.PowerShell_profile.ps1” – in diese datei fügt man nun diese beiden zeilen ein.

das war bereits alles! in den folgenden posts werde ich beispiele zeigen, was man nun mit der powershell so alles machen kann.

Exchange Server 2007 Component Architecture

eben gefunden:

Aside from showing the high-level architecture, this poster highlights the feature set of Exchange Server 2007. Sections include:
– Management and Monitoring
– High Availability
– Client Access, Edge Transport, Hub Transport, Mailbox, and Unified Messaging server roles

… also das ist wirklich eine feine sache! gibt es das auch für moss? gefunden hab ich es zumindest leider nicht

FileNet IS Certification

… leider nicht mehr wie geplant im alten jahr (weil die ibm seite mit einem gateway timeout streikte), dafür aber heute abgeschlossen:

FileNet IS Certification

ich persönlich halte nicht viel bis eigentlich nichts von solchen zertifizierungen, weil diese genau gar nichts über das können aussagen – ich kenne genug beispiele, da haben die leute mit zertifizierung traurigerweise genau gar keine ahnung 😮

traffic explosion durch image hotlinking

dieses bild hat es in sich:
frohe - traffic - weihnachten

warum? ich wurde vor kurzem von meinem hoster informiert, dass ich bereits 70% meines monatlichen traffic volumens von 50gb verbraucht habe und doch bitte aufpassen oder auf ein größeres volumen wechseln möge.

wtf?

also hab ich mir die logs mal näher angesehen, und schnell hat sich eine böse vorahnung bestätigt: das “frohe weihnachten” bildchen wird von anderen seiten direkt verwendet, und zwar nicht zu knapp: am 24.12 ging nur durch dieses bild knapp 14gb traffic drauf…

hoher traffic durch hotlinking

die “lösung” ist zum glück dank apache recht einfach – folgende zeilen in die .htaccess einfügen:


RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?konfabulieren.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

und schon ist ruhe. eindeutiger nachteil: auch in den feed-readern erscheint somit momentan statt den bildern nur ein rotes x oder “403 forbidden”; mal sehen, ob ich es wieder entfernen werde.

bleibt also ein toller anstieg in der auswertung im dezember 😉

traffic wachstum durch hotlinking

DavCopy

um mehrere / viele files auf sharepoint zu kopieren, oder z.b. eine größere folderstruktur zu erstellen, ist webdav mit sicherheit die beste lösung. zum kopieren benötigt man ansich nur bordmittel, da man ja mittlerweile einem webdav share normal mounten kann, d.h. man kann ihm einen laufwerksbuchstaben verpassen und damit kommt man mit einem normalen copy oder auch robocopy zum ziel.

so gesehen braucht man also kein besonderes tool dafür; ich habe aber eines gefunden und will es mir vormerken, man weiß ja schließlich nie: das tool nennt sich davcopy, ist command line, und free.