Powerpoint Generator (Beta)

– Deutsche Version / English Version follows below –

vor allem techniker kennen das problem nur zu gut: es hilft überhaupt nichts, noch so tolle und bis ins letzte detail technisch ausformulierte dokumente zu verfassen – um entscheidungsträger zu erreichen, muss man die fakten und das ziel, welches man abgenickt haben möchte, in eine schöne powerpoint präsentation verpacken.

ich fand es schon immer mühsam, dass sich die zu verwendenden vorlagen wie das amen im gebet regelmäßig ändern – schließlich kommt es natürlich sehr oft vor, dass teile einer neuen präsentation per copy & paste aus bereits bestehenden powerpoints entstehen. da die präsentation aber natürlich ci konform sein muss bzw angaben zum thema und oder verfasser nicht einfach übernommen werden sollen, kann man nicht einfach ganze folien kopieren – sondern hat dabei zusätzlichen aufwand.

besser wäre es, wenn man dafür keine zeit aufbringen müsste, sondern sich ganz dem inhalt widmen kann – denn bei dem eigentlichen inhalt der präsentation kann einem kein mechanismus helfen.

wäre es nicht praktisch, wenn ein tool
– eine fertige präsentation auf basis eines templates umbaut? (formatierungen, etc – kurz „rebranding“…)
– auf basis des inhaltes einen passenden header (überschriften etc) generiert?
– einen einheitlichen footer erstellt?
– die auflösung von enthaltenen bildern anpasst, sodass platz gespart wird?
– die präsentation automatisch mit zum thema passenden bildern auflockert?

ich bin gerade dabei, so ein tool zu entwickeln. meine ursprüngliche idee – der neuaufbau einer präsentation mit dem look & feel aus einem neuen template – hat so gut funktioniert (auch wenn man das natürlich nicht sollte: in wenigen augenblicken wird so aus einer präsentation der konkurrenz eine eigene 😉 – rein theoretisch natürlich), dass ich auch noch die erstellung des headers und des footers, sowie das automatische hinzufügen von zum thema passenden bildern von flickr realisiert habe. vor allem letzteres ist zwar noch beta, kann aber denke ich viel bringen; denn zum inhalt passende bilder unterstützen den transport des wesentlichen enorm.

Powerpoint Generator

ich bin am überlegen, ob ich das tool zum download anbieten soll; jedenfalls möchte ich zuvor überprüfen, ob überhaupt genug interesse besteht. daher möchte ich eine art bedarfserhebung starten: könntest du das tool brauchen? wenn ja, dann hinterlasse bitte einen kommentar mit der anmerkung, wofür. und auch erweiterungsvorschläge sind gerne willkommen.

Zum abschluss noch ein paar screenshots:

Powerpoint Generator Settings

Powerpoint Generator Finished

– English Version –

Mainly technicians know this problem very well: it doesn’t help at all just to create perfect documents, which elaborate technical details – to be able to reach the decision making people, the facts and the goal you want to emphasize, have to be packed into a nice PowerPoint presentation.

I always found it tedious, that the master templates are changed on a regularly basis – it naturally often occurs, that parts of a new presentation are produced through “copy & paste” out of an existing presentation. But of course, because the presentation must be CI consistent and general information regarding theme and or author cannot simply be copied, it is not possible to just copy the whole slide – and therefore additional work is created.

Wouldn’t it be better, if you didn’t need to use time and effort for this and could concentrate completely on the subject and contents – as there is no kind of mechanism, which can help with the contents of the presentation?

Wouldn’t it be useful, if a tool
– could build a finished presentation from a basis of templates? (Formatting, etc – brief “rebranding”…)
– could generate a suitable header on the basis of the content?
– could create a consistent foot note?
– could adjust the resolution of included pictures, so space can be saved?
– could loosen up the presentation with pictures suitable taken from flickr?

I am currently working on developing such a tool. My original idea – rebuilding a presentation with the “look and feel” of a new template – did work out very well (even when one shouldn’t: within a few seconds a presentation from the competitor turns into your own 😉 – just theoretically of course), so I implemented the creation of header and foot note as well as the automation of adding suitable pictures too. The later is still beta, but I’m sure it’s going to accomplish a lot, because pictures suitable with the subject help to emphasize the main subject.

Powerpoint Generator

I am still considering, whether I should offer the tool to download; anyway I want to check first if there are enough people interested, therefore I would like to start a sort of first survey of demand: could you use this tool? If yes, then please leave a comment stating what for and ideas for further improvements are also welcome.

a few screenshots:

Powerpoint Generator Settings

Powerpoint Generator Finished

GPDBPA

es gibt ja mittlerweile eine reihe von best practice analyzern – manche davon sind auch wirklich gut, manche so finde ich weniger. egal – diesen hier kannte ich noch nicht:

The Microsoft Group Policy Diagnostic Best Practice Analyzer (GPDBPA) for Windows XP and Windows Server 2003 is designed to help you identify Group Policy configuration errors or other dependency failures that may prevent settings or features from functioning as expected.

es gibt 4 versionen (xp, w2k3 jeweils x86 und x64) – am besten mittels suche nach KB940122 zu finden. ein tolles tool, eine grausliche abkürzung – aber hat mir immerhin eben geholfen, einen fehler zu finden 😉

BgInfo für TS / Citrix Sessions

mit bginfo kann man allerhand wichtige informationen am desktop hintergrund darstellen – mit dem ebenfalls kostenlosen tool TSBACKDROP gibt es diese funktionalität in ähnlicher form nun auch für terminalserver und citrix sessions.

die informationen über die verbindung sollten den anwendern imho immer auf irgendeine art und weise zur verfügung gestellt werden, damit diesen das einmelden von vernünftigen störungen am helpdesk erleichtert wird – und hier kann dieses tool helfen.

bdc, powershell & c#

wie werden eigentlich die informationen aus dem bdc auf feld-ebene gespeichert? schauen wir uns das anhand eines beispieles an:

nehmen wir an, wir haben folgenden bdc:
application: QueryDemoData
entity: Demo_Entity_ID
systeminstance: Demo_LobSystemInstance

dieser bdc wird in einem blog bei den posts verwendet – und zwar in der column namens “DemoID”. primär wird das gleichnamige bdc feld “DemoID” angezeigt, weiters noch “field two”.

schauen wir uns nun einen post mit der powershell an – holen wir uns zuerst den post mit der id nummer 2:

$SiteName = “http://mosstest/”
$WebName = “/blog/”
$ListName = “Posts”
$mossSite = new-object Microsoft.SharePoint.SPSite($SiteName);
$mossWeb = $MossSite.AllWebs[$WebName];
$mossList = $MossWeb.Lists[$ListName];
$item = $mossList.GetItemById(2)

und schauen uns einmal an, welche felder dieses item zu bieten hat:

$item.Fields | format-table InternalName

neben vielen anderen sind für uns nur folgende wichtig:

DemoID
Demo_Entity_DemoID_ID
Demo_x003a__x0020_field_x002

und im ersten schritt das feld “DemoID”:

$field = $item.Fields.GetFieldByInternalName(“DemoID”)

dieses feld hat den typ “BusinessData”, was man auch mittels

$field.TypeAsString

kontrollieren kann. der primäre bdc feldname ist “DEMOID”, und auch die systeminstance und entity ist vorhanden:

$field.BdcFieldName
$field.SystemInstanceName
$field.EntityName

bleiben nur noch die zusätzlichen felder – hier “FIELDTWO” (der zugehörige wert wird nach dem query in dem feld “Demo_x003a__x0020_field_x002” gespeichert):

$field.GetSecondaryFieldsNames()

und die kontrolle, ob es zugehörige actions gibt:

$field.HasActions

das fast wichtigste feld ist allerdings “Demo_Entity_DemoID_ID” – schauen wir uns den inhalt an:

$item.GetFormattedValue(“Demo_Entity_DemoID_ID”)

der inhalt ist z.b. “__bk43003600f600f600c6009700f6005700b600e600f600770036003200” – es handelt sich um eine encodede version des in diesem post verwendeten identifier keywords; mir ist allerdings keine möglichkeit bekannt, wir man den string in der powershell decoden oder gar ein neues keyword (um über die powershell neue documente mit befülltem bdc erstellen zu können) encoden könnte…

dazu muss man c# bemühen:

folgende references einbinden:
– Microsoft.Office.Server
– Microsoft.Sharepoint
– Microsoft.Sharepoint.Portal

und dann brauchen wir:
using Microsoft.Office.Server.ApplicationRegistry.Administration;
using Microsoft.Office.Server.ApplicationRegistry.Infrastructure;

und schon können wir encoden und decoden:
EntityInstanceIdEncoder.EncodeEntityInstanceId(new object[] { “coolyouknowc#” })
EntityInstanceIdEncoder.DecodeEntityInstanceId(“__bk43003600f600f600c6009700f6005700b600e600f600770036003200” )

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

Office 2007 SP1 & mehr

das sp1 für office 2007 ist verfügbar:

The 2007 Microsoft Office suite Service Pack 1 delivers important customer-requested stability and performance improvements, while incorporating further enhancements to user security.

… und es gibt noch weit mehr:
Visio 2007 Service Pack 1
Project 2007 Service Pack 1
Microsoft Office Visio Language Pack 2007 Service Pack 1 (SP1)
Microsoft Office Project Language Pack 2007 Service Pack 1 (SP1)
Microsoft Office SharePoint Designer Language Pack 2007 Service Pack 1 (SP1)
The 2007 Microsoft Office Servers Language Pack Service Pack 1 (SP1), 64-Bit Edition
Microsoft Office Visio Viewer 2007 Service Pack 1 (SP1)
The 2007 Microsoft Office Servers Service Pack 1 (SP1)
Microsoft Office SharePoint Designer 2007 Service Pack 1 (SP1)
Microsoft Office Proofing Tools 2007 Service Pack 1 (SP1)
Microsoft Office InterConnect 2007 Service Pack 1 (SP1)
Microsoft Office Language Pack 2007 Service Pack 1 (SP1)
Calendar Printing Assistant for Microsoft Office Outlook 2007 Service Pack 1 (SP1)