Remotedesktopverbindung Windows 2003 Server

Standardmässig wird bei der Herstellung einer Verbindung zum Server auf diesem eine neue (Terminal-) Session gestartet. So ist allerdings kein Zugriff auf die aktuelle Console des Servers möglich – als wenn man direkt vor dem Server stehen würde. Eventuell auf der Console stehende Fehlermeldungen können so nicht eingesehen werd

Mit einem kleinen Trick ist aber auch der Zugriff auf die aktuelle Console des Servers möglich:en.

Mit mstsc /v:servername /console (über Start-Ausführen) bekommt man eine Verbindung zur aktuellen Console des Servers. Lokal am Server wird die Console während einer solchen Remote-Session ausgeblendet.

Alle Parameter der MSTSC:
(Microsoft Terminal Server Client)

Syntax:

mstsc.exe {ConnectionFile | /v:ServerName[:Port]} [/console] [/f] [/w:Width /h:Height]
mstsc.exe /edit”ConnectionFile”
mstsc.exe /migrate

Parameter:

ConnectionFile
Legt die .rdp Datei für die Verbindung fest.

/v:ServerName[:Port]
Bestimmt den Remotecomputer, mit dem die Verbindung hergestellt werden soll.

/console
Stellt die Verbindung zur aktuellen Konsolensitzung eines Windows 2003 Servers her.

/f
Startet die Remotesession im Fullscreen-Mode

/w:Width /h:Height
Legt die Dimensionen des Remote-Desktops fest.(z.B. 800×600 Pixel)

/edit”ConnectionFile”
Öffnet die .rdp Datei zum editieren.

/migrate
Migriert ältere mit dem Clientverbindungsmanager erstellte Verbindungsdateien ins aktuelle .rdp Format.

/?
Zeigt die Parameter von MSTSC an.

Posted in Allgemein | Leave a comment

Container Bugs

Hi everybody

I was working with the RSS functionality heavily, reusing data from containers and other objects on situation awareness pages in an HQ exercise Environment (nice Beta testing ;-)).
I was messed up however by a design feature of the container object in 1.2R2 that assumes, that everytime you add an object to a container, you change the sortorder (by adding it to the bottom of the list of objects) and naturaly (i peeked the code) sets the containers sortorder to custom.
From an operational point of view however I wanted the Objects to be sorted last in modified descending to be able to pick the (now) first aka newest entry from the container in an RSS tool to display on another page. ( Uploaded Messages in this case)
No problem, go to the TIDE repository pick the container source hack it and recompile by just copying the modified container script into the product folder….. I thought.
Now besides the hack would have been very crude, just setting the sortorder to a fixed value, I found out that the resulting .pyc with or without the modification was only about half the size of the original… and thus (or for whatever else reason) not working.
Since I hacked the RSSInterface object the same way to add/change the encoding to ISO and relocating the required dtd, I knew it should have worked …..

Q: did the source in 1.2R2 in the repository change from the fielded version ?? If not, what is the reason of the difference in size of the pyc

Q: can you add an issue to the tracker for 1.3A1/2 to remove the mentioned design feature since it overrules any prior design decision by the siteadmin on the sortorder of a container and is thus “illogic”

Posted in Allgemein, Blogroll, english, Issues, Product Hacks | Leave a comment

Wer suchet….. (Forts.)

Phuuu…. das war ein gestochere.

Im vorherigen Beitrag zu dem Thema hatte ich geschildert, daß der Ansatz sei, oberhalb der WISE Rootwebs (aka SITES) ein Dokument zu erzeugen, das für jede SITE eine Verknüpfung auf ein dort eingerichtetes SiteSearch mit der Übergabe von Parametern für eine Advanced Search enthält.

Dieses Dokument kann über die Adresse: SERVER_URL/SearchList aufgerufen werden.

Die Auswahl eines Listenpunktes / einer Verknüpfung führt zur Ergebnisanzeige einer Sitesearch mit voreingestellten Parametern.

Nach diversen Versuchen mit einer DTML-Methode die eine <dtml-in> Schleife analog zu der Attributprüfung für RSS nutzte standen wir zunächst vor Zugriffs Problemen. Es ist nicht ohne weiteres möglich, als Manager/Owner über eine Methode von aussen auf Attribute innerhalb eines WISE Rootweb zuzugreifen.

Letztendlich haben wir im Vorgriff auf die Antwort auf einen Hilferuf nach San Diego einen etwas bodenständigeren Ansatz gewählt, der aus der Liste der Objekte im ZOPE die auflistet, die dem Kriterium meta_type==’RootWeb’ entsprechen. Darüber wird mit <a href=””> aus der SERVER_URL, der RootWeb id (URL Name) und dem String SiteSearch ein Link erzeugt, an den die Parameter für die Suche angehängt werden.

<ul>
<dtml-in objectValues>
<dtml-if “meta_type==’Rootweb'”>
<li><a href=<dtml-var SERVER_URL>/<dtml-var id>/SiteSearch/formSubmit
?waction=advancedSearchResults
&d_title=&d_title_wformat=string
&d_content=
&d_content_wformat=string
&d_creator=
&d_creator_wformat=multiple selection
&d_subject multiple=
&d_subject_wformat=multiple selection
&d_description=
&d_description_wformatue=string
&d_publisher=
&d_publisher_wformat=string
&d_dateIssuedmin=
&d_dateIssuedmax=
&d_dateIssuedmax_wformat=date
&d_dateAvailablemin=
&d_dateAvailablemax=
&d_dateAvailablemax_wformat=date
&d_identifier=
&d_identifier_wformat=string
&d_language=
&d_language_wformat=multiple selection
&d_format=
&d_format_wformat=
&d_source=
&d_source_wformat=string
&d_type=
&d_type_wformat=multiple selection
&d_functionalArea=
&d_functionalArea_wformat=multiple selection
&d_classification=
&d_classification_wformat=multiple selection
&d_releasability=
&d_releasability_wformat=multiple selection
&d_fileSizemin=1
&d_fileSizemin_wformat=int
&d_fileSizemax=
&d_fileSizemax_wformat=int
&d_poc=
&d_poc_wformat=string
&d_emailAddress=
&d_emailAddress_wformat=string
&d_wiseType=
&d_wiseType_wformat=multiple selection
&d_siteId=
&d_siteId_wformat=string
&d_dateModifiedmin=
&d_dateModifiedmin_wformat=date
&d_dateModifiedmax=
&d_dateModifiedmax_wformat=date
&d_dateExpiresmin=
&d_dateExpiresmin_wformat=date
&d_dateExpiresmax=
&d_dateExpiresmax_wformat=date”>
<dtml-var id></a></li>
<dtml-else>
</dtml-if>
</dtml-in>
</ul>

Das scheint jetzt zu funktionieren.

Ein Parameterset werden wir in der kommenden Woche entwerfen und zum Testen an andere WISE Betreiber weitergeben.

Schliesslich wird auch ein Test mit der großen Firmensuchmaschine durchgeführt, über dessen Ergebnis wir hier berichten werden.

Das Searchlist Objekt wird als zexp Datei diesem Beitrag angehängt und muss über das ZOPE (nicht WISE) Import-Verzeichnis importiert werden.

Posted in deutsch, DTML-Stuff, Product Hacks, Suchen | Leave a comment

Rescue the feeds

After clarifiying some of the issues in regard to the feeds issue, we seem to have resolved most of them.

As mentioned before, IE7 does not parse rss files that refer to a dtd. According to some of the internet source consulted, it would be sufficient to remove the <!DOCTYPE> Statement with the named reference. …..so we did.

RssInterface.py was modified accordingly and copied into the RSSINTERFACE Product folder, WISE restarted and voila…

The WISE Site now lists all present feeds under IE7´s RSS Button and a selected feed is parsed with the option to subscribe to it.

Posted in english, Product Hacks | Leave a comment

Feeds to the Rescue

What

Webservices are the meat of efficient IT-supported Informationmanagement. Some 5 Objects within native WISE 1.2R2 do provide RSS 0.9 feed information if called with the suffix /rss in the URL.

That are:

  • Container
  • Calendar
  • Bulletin board
  • Notices
  • Web Directory

and

  • NC3A WISE Filesystem if installed

However, these do not give themselves away if used on a WISE-page.
Bad marketing…….

Why

For that reason one of my efforts was to implement a current List of RSS feeds into each WISE Page served, so the user could subscribe to one of them to stay on top of things on his Informationportal.

How

I started out with some crude dtml code below the footerline to catch four specific objects rss feeds (container bulletinboard, notices and calendar) and provide an appropriate link to include into the RSSLET or a third party feedreader (absolute_url/rss).

Of course the Links should only be shown if there was such an object. So I checked for the appropriate URL that should come up if the object was not renamed on instanciation.

Since there is a Tag in the HTML Header that is read by feedreaders to check for available RSS Content on the actual page

<link rel=”alternate” type=”application/rss+xml” title=”” href=”” />

I had to create something smarter.

With sound advice from Nic (thankyou) I managed to implement a loop to check for objects with an explicit rss property and create the apropriate <link> statement for the feedreader.

<dtml-in objectValues>
<dtml-if “_.hasattr(aq_explicit, ‘rss’)”>
<link rel=”alternate” type=”application/rss+xml” title=”<dtml-var title_or_id>”
href=”&dtml-absolute_url;/rss” />
</dtml-if>
</dtml-in>

What else?

Other than in the sourcecode, for the time beeing there is nothing seen on the page.

For compatability reasons I might include a dropdownlist with the feedlinks into the footer…

IE7 does not accept RSS that uses a dtd (which is the case with RSS 0.9 as used in WISE 1.2R2) We might check if the updated RSSInterface from WISE 1.3 does fit in here, providing RSS 2.0

WISE things to do……..

Posted in DTML-Stuff, english, Product Hacks | Leave a comment

Wer suchet der wird finden…..

Meeting in Dresden

…bei dem Betreiber unserer Firmensuchmaschine von der alles aufkaufenden Firma FAST.
Aus vorhergegangenen Telefonaten ist uns klar, das beide Seiten ein Problem mit einer sinnvollen indizierung der Inhalte des WISE haben.
Ein “einfaches” Spidern lässt die Robots / Collectors an den Contentschleifen (Rubrikennavigation (auf jeder Seite) state_min, state_max (bei jedem WISELET) und den bekannten Fallen im Calendar – Objekt verzweifeln.

Daher verfolgen die Betreiber die Strategie, die angemeldeten Sites entlang einer, durch das Portal generierten Content-Map mit der Suchtiefe 1 zu indizieren. Damit ist die Sammlung des Content einigermaßen sicher vor Collectorfallen und man kann sich mit den anderen, durchaus nicht trivialen Einstellungen der Suchen beschäftigen.

Ähnlich machen wir es auch schon mit unserer PHPDig, hier allerdings, weil diese sich weigert, einen URL Baum zu spidern, bei dem die Links keine Endung auf .html oder Index_html haben.

Bislang hatten unsere Mitarbeiter diese Content Seite mühsam händisch erstellt. Im Gespräch mit den Meistern der Suchmaschine kam uns die Idee!

Es gibt zwei Möglichkeiten eine Liste des SITE Content zu erstellen.

  • ein SiteMap (Bestandteil des Patch1) ergibt eine hierarchische Aufstellung allen Contents.
  • eine SiteSearch ergibt eine “flache” Liste des Inhalts einer Site? (Betonung auf flach)

Ein Sitesearch ergibt, kein Suchbegriff eingegeben eine Liste aller Objekte einer SITE. Dabei werden sogar die Zugriffsrechte des eingeloggten Nutzers berücksichtigt (ein Gast kann halt nur Objekte angezeigt bekommen, die auch den GUEST als USER eingetragen haben)

Den Inhalt dieses Suchergebnisses kann man gestalten, indem man Parameter für ein advanced search übergibt, die z.B. bestimmte, für eine Suche problematische objekte ausklammert.
Bei Verwendung von Releasability Informationen in den Metadaten (Beispiel: Releasability=Intranet) kann man als Contentmanager so ausschliessen, daß Content (obwohl nicht gegen den Gast geschützt wg. RSS Nutzung) nicht in der Ergebnisliste der Suche erscheint, und folglich auch nicht indiziert wird.

Die Suche geht diese Liste durch, liest jedes Objekt und indiziert dies (auch Office-Dokumente)

Eine entsprechende Suchanfrage sollte also relevante ergebnisse aus allen SITES unseres Intranets ergeben.

Wie gehen wir weiter vor?

  • Zunächsteinmal stellen wir sicher, dass (unseren Standards entsprechend) jede SITE ein SiteSearch Objekt enthält, das mit einer entsprechenden Anfrage belästigt werden kann.
  • Wir generieren für jede SITE einen URL String, der eine Advanced Search mit noch festzulegenden Parameteren auf die SITE auslöst. (Releasability=IntranetBw)
  • Wir modifizieren die WiseMetaTags.py, sodass bei Releasability standardmäßig IntranetBw eingetragen wird
  • wir generieren im Root des ZOPE/WISE eine DTML Methode SearchList, die mit einer Iteration (dtml-in viewObjects….), die eine Liste aller SITEURL ausgibt.
    Der Hinterlegte Link beinhaltet den Aufruf http://SITE_URL/SiteSearch?Parameter….. mit allen notwendigen Angaben.
  • Diese DTML -Methode ist unter http://SITE_URL/SearchList zu erreichen und wird der zentralen Suchmaschine bekanntgegeben.

Wenn die Suchmaschine diesen Link mit Suchtiefe 2 durchsucht, erhalten wir eine Liste aller Links und Dokumente, die durch die entsprechenden SiteSearch-Abfragen bereitgestellt wurden.

Die Vorteile liegen auf der Hand:

  • Die Firmensuche erstreckt sich auf einen erheblich größeren Pool an Dokumenten und Informationen.
  • Die Anfragen an die Firmensuche können auf die Standortdomäne beschränkt werden.
  • Der relativ aufwändige Betrieb einer Suchmaschine wird weitestgehend “outgesourced”
  • Der Pool der zu findenden Informationen kann durch die Contentmanager beliebig eingeschränkt werden.
  • Durch die standardmäßige Freigabe zur Suche (Releasability=IntranetBw) zwingen wir die Contentmanager sich mit MetaDaten zu befassen.

Wonach richtet sich die Indizierung?

Wie bei den meissten großen Suchmaschinen werden Metainformationen im Seitenkopf ausgewertet.

Unter Anderem sind der Titel der Seite, ev. Keywords, und die Kurzbeschreibung bei der Erstellung von Index und Ranking von Bedeutung.

Hier verweise ich auf einen früheren Artikel unter der Kategorie Metadaten, der sich mit den Metadaten im Header beschäftigt.

Posted in deutsch, DTML-Stuff, Metadaten, Pläne, Product Hacks, Suchen | Leave a comment

Bug fixing – Meta-data in HTML Header

Nic Channon picked up on my report of a bug that was imminent to Version 1.2R2 and 1.3 when putting the iteration for meta-data into the Header File. (see my earlyer discussion)

the Issue has obviously been fixed and 2 files have been changed.

Here is Nics answer:

Michael,

Thanks for the information on the meta headers, it appears to be a conflict between our html editor and the meta headers, I have created a ticket and fixed this as ticket #52 (http://tide.act.nato.int/sd/wise/ticket/52) you should be able to see the fix in the changset given in the comments.

Files: html_edit Files fixed for editor bug

Posted in DTML-Stuff, english, Issues, Metadaten | Leave a comment

Announce RSS – Feeds within HTML Head Section

I´ve been working on, and got stuck, trying to put an Iteration into the header file that enters a Line

<link rel=”alternate” type=”application/rss+xml” title=”” href=”” />

for each rss issuing Object within the presented Page. Be it a Subweb or a container.

This will present rss feeds to Feedreeders like RSSOwl or the RSS Function in IE7 / or Outlook for subscription. A fairly important issue in therms of operational Informationmanagement at little cost of making it work (if somebody other than me tried it….;-)

I got stuck at a point where all objects where prudently aquiring the rss method from its parent. I.e. all objects in a container, if not rss capable by themselves, had an /rss method….. that of the parent container.

Nick gave me ha hint to ZOPE Book 2.7 which I post here even before I try again to work that.

I will continue once we have got the clustering issues out of the way.

Here is Nics hint for reference;

…For the rss you are facing Zope’s Acquisition problem, this link http://plope.com/Books/2_7Edition/AdvDTML.stx#2-126 should help with explicity checking for an rss method in dtml…..

Posted in DTML-Stuff, english | Leave a comment

Das Laster mit dem Cluster

Die Ehrlichkeit gebietet es, auch von Vorhaben zu berichten, die nicht so gut laufen wie gewohnt.Wie schon vormals berichtet birgt der hohe Anspruch, eine WISE 1.2R2 Installation zu Clustern einige Überraschungen.Zunächst stellen wir fest, dass der wiederholte Hinweis auf die I/O lastigen Operationen eines WISE Servers ernst zu nehmen ist.Auch in der Originaldokumentation der NATO wird darauf hingewiesen, daß eine vernünftige Raid-5 Speicherausstattung wichtiger ist als Prozessortakt und RAM.DAS STIMMT.Die Idee, das Filestorage auf ein NAS auszulagern wurde ursprünglich getrieben von der Vorstellung, dass die NAS über 2-fach FDD an die Server angebunden ist und in sich performant genug sei um den Aufgaben gerecht zu werden.DAS STIMMTE NICHT.Letztendlich sind wir mit einer 100 MBit exclusiv angebundenen 3 Platten NAS untermotorisiert ins Rennen gegangen. Nachdem wir den Datenbestand soweit gestreamlined hatten, dass eine akzeptable Antwortzeit erreicht wurde, ist dann eine der 3 Platten permanent ausgefallen. Bei der anschliessenden Reparatur des Systems ist schliesslich die Data.fs zerstört worden.Das letzte funktionierende Backup war leider 1,5 Tage alt.Bei der folgenden Rekonfiguration sind wir wie folgt vorgegangen.Aus den vorhandenen funktionierenden Datenbeständen wurde im Laufe der letzten 2 Tage vor dem Absturz des NAS eine neue Filestorage auf dem ehemaligen Web-Server aufgebaut. Aufgeräumt und in einen lokal lauffähigen Zustand gebracht. Dann haben wir den richtigen ZEO aufgespielt.

Achtung: Zu jeder ZODB (Datenbank Unterbau des ZOPE / WISE) gibt es einepassende ZEO Version.WISE 1.2 R2 basiert auf Python 2.3, Zope 2.6 auf einer ZODB 3.1.5Dazu gehört ein ZEO 2.1.5, dass man nur im Repository der ZODB auf www.zope.org findet……. (weg mit den Betas Vers. 1.x und hin zu einer Stable Version 2)

Damit verschwanden auch einige der Fehler in Bezug Kommunikation ZEO-ZEO.ZEO ist für Windows nicht sonderlich gut dokumentiert, sodass man aus den verschiedenen vorhandenen Konfigurationsmöglichkeiten und der Syntax mit dem Hintergrundwissen der Vers. 1.0 Installation weiterkommen kann.ZEO 2.1.5 versteht die Variable INSTANCE_HOME nicht mehr. Dafür kann man mit einem kleinen .py script (ähnlich der custom_zodb.py) ein oder mehrere Storages verschiedener Art unter das WISE hängen.Für uns reicht erstmal der Filestorage:Die Datei config_storage.py (name selbst erdacht) habe ich in dem INSTANCE_HOME Verzeichnis abgelegt. Das ist auf der Testplattform das Lw / Verzeichnis d:\wise dort liegt auch die custom_zodb.py Ich dachte daher, das sein ein angemessener Ort.

Inhalt:import ZODB.FilestorageStorage=ZODB.Filestorage.Filestorage (‘//Server IP/Freigabe/var/data.fs’)

Das ist im prinzip alles.Jetzt wird ZEO Start.py mit den folgenden Parametern gestartet.

python start.py -p7700 (der ZEO Server Port) -S1=//Server IP/Freigabe/config_storage:Storage

Damit sollte der ZEO Server auch anstandslos starten.Die Dateien reiche ich hier als Anhang noch nach. Ebenso die Links zu den Informationen im InternetDamit läuft nun der ZEO Server auf dem Gerät, das auch die Daten im Raid-5 hält.Der Client wird nun gestartet, indem man den Zope (WISE) Dienst über die Registry an die neue INSTANCE Home anpasst

hklm\software\digigalcreations\zope\wise\instance_home, hklm\system\currentcontrolset\services\wise\parameters\start

hier muss der vorhandene wert geändert werden auf

//serverIP/freigabename

Die in der Instance_home liegende custom_zodb.py enthält dann die Informationen für den Connect zu ZEO Server.voila…..

Posted in Clustering, deutsch | Leave a comment

WISE 1.3

Tide Spring 16.08-18.04

Anreise sehr easy am 16.04. Teilnahme am Essen am 16.04… auch eine andere Sprache ändert bei so manchen die Wortfrequenz nur geringfügig.
Am 17.04 Besprechung im kleinen Kreis zum Thema Wise 1.3… Mickey now we lost you.

Download WISE 1.3 von http://tide.act.nato.int/sd/wise/downloads .
Älter WISE-Versionen deinstallieren. Auch nach dem nutzen des Regcleaners, sollte man die Registry händisch bereinigen.
Nach dem Aüsführen des Installationsfiles wurde WISE 1.3 ohne Fehlermeldung installiert.
Im Browser erscheint beim Versuch http://localhost:8080 anzusurfen die Meldung

Service Temporarily Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Der Apache antwortet also kann aber nicht an den Wise-Service weiterreichen. Der Wise -Dienst wurde nicht gestartet und ein händisches Nachstarten führte zur Meldung, dass Einträge in der Registry nicht gefunden wurde.

Lösungsvorschlag

Unter C:\Programme\WISE\wise\bin findet man den den Script zopeservice.py mit dem Parameter remove wird der Wise Dienst deinstalliert.
Rechner Neustart… Ja muss man wirklich.
Danach den gleichen Script mit dem Parameter install wieder ausführen. Der Dienst wird neu installiert und muss danach gestartet werden.

Posted in deutsch, Pläne, WISE 1.3 | Leave a comment