Ich habe beim regelmäßigen durchforsten der für mich interessantesten/wichtigsten Seiten einen Beitrag auf www.home-server-blog.de entdeckt, welcher auf die Seite mce-community verweist, wo Kay Diefenthal einen Weg zur Anpassung der Intranetseite aufzeigt um eigene Software dort zentral bereit zustellen.
Da ich aus dem Sharepointumfeld komme und eine Anpassung von Originaldateien immer sehr kritisch gegenüberstehe, jedoch gerne von dieser Idee animiert war, habe ich mir eine Alternative ausgedacht. Diesen Weg möchte ich auch gerne anderen vorstellen.
Im Grunde ist es fast dieselbe Vorgehensweise, jedoch mit dem Unterschied, das eine eigene WebApplication erstellt wird und die Dateien dynamisch ausgelesen werden. (es kann natürlich auch dieselbe WebApplication sein, aber wer weiß schon was mir demnächst damit noch so einfällt)
- verbinde dich per RDP mit deinem Server
- navigiere zu C:\Inetpub und erstelle eine Kopie des Ordners "Intranet" - den Namen kannst du dir selbst aussuchen (ich verwende customsoftware)
- tippe nun bei Start-Ausführen "inetmgr" ein und drücke Enter
Über Rechtsklick auf "Web Sites" kannst du eine neue "Web Site" hinzufügen

Ein Wizard führt dich hier durch alle notwendigen Einstellungen:


Im vorletzten Schritt wählst du den kopierten Ordner aus

Im letzten nennst du noch die Zugriffsmethoden (Read und Run Scripts)

Das war es dann auch schon. Über den kleinen Pfeil oben oder das Kontextmenü kann die WebApplication nun gestartet werden. Ein lokaler Aufruf sollte bereits funktionieren und die gewohnte Intranetseite darstellen.
Wir wollen ja aber die Seite nicht nur auf dem Server direkt aufrufen, sondern von den Clients! Dazu muss der Port in der Firewall freigegeben werden, damit diese Seite erreichbar ist. Klicke auf "Start - Control Panel - Windows Firewall" öffnen.

Im 2 Register befinden sich alle Ausnahmen, die die Firewall passieren dürfen. Hier einfach über "Add Port" den zuvor gewählten Port angeben und mit OK bestätigen.

Ab sofort kann die Seite auch über einen Client erreicht werden.
Nun erstellen wir uns ein Verzeichnis, indem die zukünftige Software abgelegt werden soll. Ich bevorzuge das bereits bestehende Software Verzeichnis "D:\shares\Software" und lege hier einen Ordner mit dem Namen "customsoftware" an. Diesen machen wir nun als virtuelles Verzeichnis in unserer WebApplication bekannt. (falls nicht mehr offen - Start - Ausführen - inetmgr)
Hier wählen wir die WebApplication aus und machen einen Rechtsklick. Über "New" - "Virtual Directory" können wir nun einen Assistenten öffnen, der uns die Angabe des Verzeichnisses erlaubt.

Zuerst wählen wir einen Alias, der im späteren Verlauf noch Bedeutung findet. Über diesen Namen lässt sich bequem von jeder Position im Web auf das Verzeichnis zugreifen.

Im nächsten Abschnitt wählen wir nun den Ordner aus


Nun ist auch das virtuelle Verzeichnis fertig. Bleibt noch die Anpassung für das dynamische auslesen des Verzeichnisses. Dazu erstellen wir im Verzeichnis C:\Inetpub\[DeinName] eine leere Textdatei und benennen diese um zu default.aspx (die Datei default.htm umbenennen, löschen - wird nicht mehr gebraucht oder im inetmgr die Reihenfolge ändern, sie wird sonst vorrangig interpretiert)
folgenden Code in die default.aspx einfügen:
<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dynamic aspx page</title>
<link rel="stylesheet" type="text/css" href="css.css" />
</head>
<body>
<div id="hdr"> <img src="i/hdr_logo.jpg" />
<h1 id="DfpSetup">Custom Software Install</h1>
</div>
<%
StringBuilder sb = new StringBuilder();
DirectoryInfo dirinfo = new DirectoryInfo(Server.MapPath("SetupProgs"));
foreach (FileInfo fileinfo in dirinfo.GetFiles())
{
sb.Append("<div id=\"info\"><img src=\"i/icon_hs.gif\" /><p class=\"itemhdr1\" id=\"DfpSetup1\">" + fileinfo.Name + "</p><p id=\"DfpSetupInstructions\"></p><div id=\"issuelink\"><a href=\"SetupProgs/" + fileinfo.Name + "\" target=\"_blank\" title=\"Download Now\"><img src=\"i/icon_arrow.gif\" /> Download Now</a></div></div>");
}
Response.Write(sb.ToString());
%>
</body>
</html>
Achte im Code auf die beiden Stellen "Server.MapPath("SetupProgs")" und "<a href=\"SetupProgs/". Wenn du beim Virtuellen Verzeichnis einen anderen Namen gewählt hast dann ersetze ihn durch deinen.
Bei einem Aufruf der Seite sollte nun eine leere Seite erscheinen. Dies kann man unterbinden, indem man nun einfach Dateien in dem Verzeichnis hinterlegt
Dies sieht noch sehr spartanisch aus, sollte ja aber auch nur den machbaren Weg aufzeigen, ohne die originalen Dateien anzufassen. Denkbar wäre hier noch eine Schachtelung der Dateien in verschiedene Unterordner (Gruppierungen/Sortierung), Anzeige je nach Userberechtigungen oder das auslesen der Beschreibung der einzelnen Dateien aus einem XML File u.v.m.

Ich hoffe es kann noch jemand gebrauchen...