VMware ESX(i): VNC Verbindung zum Gast aufbauen

In manchen Fällen möchte man einem Benutzer oder Dienstleister nicht die Möglichkeit geben mit dem vSphere Client auf das Gastsystem zuzugreifen.

Hier bietet der ESX(i) Server die Möglichkeit auf den Gast mittels VNC (RealVNC oder UltraVNC) darauf zuzugreifen.

Hierzu muss zum einen die ESX(i) Firewall geöffnet werden und dem Gast ein Port sowie Kennwort zugewiesen werden.

Die Firewall kann im vSphere Client unter „Home/Bestandsliste/Bestandsliste“ auf dem Reiter „Konfiguration“ unter „Software/Sicherheitsprofil“ eingestellt werden. Dort einfach bei Firewall auf „Einstellungen“ clicken und die Regel „gdbserver“ aktivieren.

Unbedingt beachten: Hiermit wird eine große Portrange geöffnet!!! Alternativ kann man sich auch eine eigene Rule für VNC bauen: VMware KB2008226

Nun muss noch die .VMX Datei des Gastes editiert und folgende Zeilen hinzu gefügt werden:

RemoteDisplay.vnc.enabled = true
RemoteDisplay.vnc.port = 5900
RemoteDisplay.vnc.password = P@ssw0rd

Zu beachten ist hier, das jedes Gastsystem einen anderen Port benötigt! Sinnvoll ist es, den Port einfach hoch zu zählen.

Für die beste Performance sollte am VNC Client in den Optionen „hextile encoding“ und „use all colors“ aktiviert sein.

Die Verbindung zum Gast kann nun über „[IP/DNS] des ESX(i) Hosts:PORT“ aufgebaut werden.

 

Stringoperationen in der DOS Batch – Ersetzen und Ausschneiden

Ersetzen und Ausschneiden in der CMD Batchprogrammierung (DOS CMD).
Manchmal muss man auch in einem Batch Stringoperationen durchführen.
So kann man es machen:
set MSG=Textbeispiel
Dieser String dient im folgenden als Test- und Textbeispiel.

echo %MSG:t=u%
Ersetze alle t durch ein u (Groß-/Kleinschreibung wird nicht beachtet!). Das ergibt somit:
uexubeispiel

echo %MSG:xt=st%
Ersetze alle „xt“ Strings durch den String „st“ :
Testbeispiel

echo %MSG:~4%
Schneide die ersten 4 Zeichen ab:
beispiel

echo %MSG:~-5%
Schneide bis auf die letzten 5 Zeichen ab:
spiel

echo %MSG:~4,-5%
Schneide ab der 4. bis zur 5. Stelle von hinten heraus:
bei

echo %MSG:~8,2%
Schneide ab der 8.Stelle 2 Zeichen heraus :
pi

In einem konkreten Fall sollte sichergestellt sein, dass ein externer Programmaufruf mit
programmname.exe „parameter1“
Nicht durch parameter1=“Das ist ein „toller“ Text“ in einen Fehler läuft:
Programmname.exe „“Das ist ein „toller“ Text““
Durch set parameter1=%parameter1:“=\“% konnten die Anführungszeichen maskiert werden!
Programmname.exe „\“Das ist ein \“toller\“ Text\““

 

LegoCity02

PowerShell: Arbeiten mit dem Profile

Wer nicht immer das Standard PowerShell Fenster benutzen möchte, der kann dieses mittels eines Profiles einfach bei jedem Start von PowerShell anpassen.

Diese Datei liegt normalerweise unter „eigene Dokumente\WindowsPowerShell\Microsoft.PowerShell_profile.ps1“, allerdings kann dies je nach Benutzerumgebung variieren.

Den genauen Standort kann man sich in der PowerShell mit der Systemvariablen „$profile“ anzeigen lassen:PowerShell profileDa es sich hier um ein ganz normales PowerShell-Script (*.ps1) handelt, kann man es auch ganz einfach so befüllen.

In meinem Profile lasse ich mir direkt beim Start alle SnapIns sowie Module laden (auch wenn dies die PowerShell etwas aufbläht). Dies hat den Vorteil, das man direkt alle CMDLETS des Systems zur Verfügung hat.

Des weiteren lege ich ein Transscript (LOG-Datei) an, damit ich auch später nachvollziehen kann, was ich getan habe.

write-host -fore red „### Alle verfügbaren Module laden… ###“ Get-Module -ListAvailable | % { import-module $_.Name; write-host $_.Name }

write-host „“ write-host -fore red „### Alle Snapins laden… ###“ # Add-PSSnapin -Name Quest.ActiveRoles.ADManagement @(Get-PSSnapin -Registered) | % { Add-PSSnapin -Name $_.Name; write-host $_.Name } Set-QADPSSnapinSettings -DefaultSizeLimit 0

write-host „“
write-host -fore red „### eigene Libraries laden ###“
get-childitem $MyLibDir\Modules\PS | foreach-object {. $_.fullname}
get-childitem $MyLibDir\Modules\OWN | foreach-object {. $_.fullname}

write-host „“ write-host -fore red „### Variablen und Transcript setzen ###“ $MyDate = Get-Date -Format yyyy-MM-dd_H-m-s_$env:computername $MyLibDir = „z:\Programme\PowerShell“ $MyTransDir = „Z:\Programme\PowerShell\Transcript“ $Transcript = „$MyTransDir\Transcript_$MyDate.txt“

$MyPROD = „z:\programme\powershell\prod“ $MyTEST = „z:\programme\powershell\test“

Start-Transcript

Einige Pfade kann man hier der besseren Übersicht halber auch noch in Variablen packen, dies ist aber für diese Beispiel nicht notwendig.

PHP: aktuelle Session Variablen anzeigen

Um die Session Variablen der aktuellen Sitzung darzustellen, wird eine Schleife über das Array @_SESSION gefahren, mit allen Schlüsseln (Keys).
Im PHP-Programmcode sieht das dann so aus:

<?php
      echo '<table border=1>';
      echo '<tr><td><b>KEY</b></td><td><b>VALUE</b></td></tr>';
      foreach ($_SESSION as $key =>$value) 
      {
          echo '<tr><td>'.$key.'</td>';
          echo '<td>'.$value.'</td></tr>';
      }
      echo '</table>';
?>

Als Beispiel um eine Session zu starten und Variablen zu setzen, nehmen wir eine WordPress Installation (wäre sonst zu einfach 🙂 ). In der wp-config.php folgenden Block einfügen:

/**
* SESSION - Start Session if not started
*/
if (!session_id())
    session_start();
    $_SESSION['tonium_session_id'] = session_id();
 
    $ip = getenv('REMOTE_ADDR');
    $_SESSION['remote_ip'] = $ip;
 
    $host = gethostbyaddr($ip);
    $_SESSION['remote_host'] = $host;
 
    $_SESSION['f_count']++;
...

und so sieht es dann aus:

KEY VALUE
tonium_session_id 7t02coobg6khm97hriqi0c0817
remote_ip 91.19.110.190
remote_host p5B136EBG.dip0.t-ipconnect.de

Testdemo unter www.Tonium.de

Was ist eigentlich RSS?

Wofür steht RSS?

RSS ist eine Abkürzung und steht für „Rich Site Summary“ (Übersetzt in etwa: „Zusammenfassung einer informationsreichen Internetpräsenz“), nach vielen Weiterentwicklungen wurde hieraus „Really Simple Syndication“ (Übersetzt in etwa: „wirklich einfache Verteilung“).

Warum RSS?

RSS dient zur einfachen und strukturierten Veröffentlichung von Texten in einem einheitlichen Format (XML) ohne Formatierungen oder sonstigen Verschnörkelungen. Gerade bei großen Newsseiten/Blogs etc. war es schwierig schnell Informationen in Kurzform zu erhalten. Mit Einführung des RSS (Feeds) war es nun endlich möglich, alle Informationen schnell und strukturiert auszuliefern.

Hierzu benötigt wird allerdings ein sogenannter News Reader wie Tiny Tiny RSS oder FeedReader etc. benötigt. News Reader gibt es für jedes gängige Betriebssystem und Smartphone.

In so einem Newsreader ist es möglich mehrere (RSS) Feeds zu abonieren und nach eigenen vorlieben anzeigen zu lassen.

Einen kostenlosen Online-NewsReader kann ich euch anbieten: Click mich!

Events aus einer lokalen BEM Datenbank abfragen

Die Events des BMC Event Manager werden in einer properitären Datenbank gespeichert. Damit sind sie im Vergleich zu anderen Tools mit relationalen Datenbanken nicht mit SQL bzw. ODBC zugreifbar. Dies ist für weiterverarbeitende, herstellerfremde Applikationen (z.B. Ticket- und Alarmsysteme) und Reports notwendig, oder man nutzt die entsprechenden BMC Anwendungen.
Für herstellerfremde Tools und eigene Skripte ermöglicht BMC mit dem Befehl mquery das Abfragen von Events aus der BEM-Datenbank.

mquery

-q – quite, ohne Ausgabe des Banners
-n CellName – Name der BEM-Zelle die abgefragt werden soll
-f [BAROC, CSV] – Ausgabeformat: BAROC oder CSV Format
-a EventClass
-w “ Abfragebedingungen “

BAROC-Format ergibt eine mehrzeilige Ausgabe eines jeden Events

mquery -q -n CellName -f BAROC -a EventClass -w "slotkey_1: equals 'slotvalue' "

EVENTCLASS;
       slotkey_1 = slotvalue;
       slotkey_2 = slotvalue;
...
       slotkey_N = slotvalue;
END

 

CSV-Format ergibt eine einzeilige Ausgabe pro Event

mquery -q -n CellName -f CSV -a EventClass -w "slotkey_1: equals 'slotvalue' "

EVENTCLASS,slotvalue_integer,’slotvalue_string’,...,’last_slotvalue’

 

Diese mquery-Abfrage wurde direkt vom BEM-Server gestartet.
Wie sieht es jedoch auf einem anderen Server aus?
Von einem remote System sind ein paar Voraussetzungen zu schaffen, die in den Zugriff auf die BEM-Daten via mquery ermöglichen.

Windows 8.1: Tastaturkürzel

Da ein Administrator ja immer „faul“ ist, hier mal die wichtigsten Tastaturkürzel für Windows 8.1:

Windows-Taste –> Wechselt zwischen Startbildschirm und der letzten App
Windows-Taste + C –> Öffnet die Charm-Leiste, diese wird an der rechten Seite des Desktops eingeblendet. Gleichzeitig wird Uhrzeit und Datum angezeigt.
Windows-Taste + D –> Wechselt zum Desktop
Windows-Taste + E –> Startet den Windows-Explorer
Windows-Taste + F –> Öffnet das Suchfenster für Dateien
Windows-Taste + H –> Öffnet das Teilen-Menü in der Charm-Leiste, beispielsweise um einen Screenshot des Desktops per Mail zu versenden.
Windows-Taste + I –> Öffnet das Einstellungsmenü in der Charm-Leiste, inklusive Systemsteuerung.
Windows-Taste + K –> Öffnet das Geräte-Menü in der Charm-Leiste.
Windows-Taste + L –> Sperrt das System
Windows-Taste + Q –> Öffnet das Suchmenü (Überall)
Windows-Taste + P –> Öffnet die Optionen für einen zweiten Bildschirm
Windows-Taste + R –> Öffnet den Ausführen-Dialog.
Windows-Taste + U –> Öffnet das Center für die erleichterte Bedienung (Bildschirmlupe, Bildschirmtastatur, hoher Kontrast etc.)
Windows-Taste + X –> Öffnet eine Art kleines Startmenü, aus dem man unter anderem zum Geräte-Manager gelangt oder das System herunter fahren kann.
Windows-Taste + Enter –> Startet die Sprachausgabe
Windows + Pause –> Wechselt in die Systemsteuerung /System.
Windows + Pfeil nach unten –> Minimiert das Fenster / Minimiert die laufende Kachel-App
Windows + Pfeil nach links –> App / Fenster läuft auf der linken Bildschirmhälfte
Windows + Pfeil nach oben –> Fenster oder App maximieren
Windows + Plus –> Bildschirmlupe (wird mit Windows + ESC beendet)

Wer noch die alten Tastaturkürzel nachschlagen möchte, kann dies hier tun: Click mich!

Kostenloser Webfilter: K9 Web Protection

Das offene Internet ist eine Gefahrenquelle hoch drei: nicht nur böse Inhalte sind hier zu finden, sondern auch diverse Schadsoftware (Viren, Trojaner, etc).

Auf der Suche nach einem geeigneten Webfilter (speziell für Kinder) bin ich auf den „K9 Web Protection“ Filter von Blue Coat gestoßen. Die verwendeten Filterlisten sind auch in den großen Business Produkten von Bluecoat zu finden, was einen erheblichen Vorteil bietet.

Die Liste ist in verschiedene Kategorien unterteilt und man kann diese (neben eigenen Filtern) direkt benutzen bzw. sperren.

Folgende Funktionalitäten werden mitgebracht:

  • Filter mit ~70 Kategorien
  • Safe Search für fast jede Suchmaschine
  • Zeitzugangsbeschränkungen
  • eigene Listen/Filter
  • Einbruchsschutz (für Kinder die dies gern umgehen möchten!)
  • Reports
  • Echtzeitfilter für neue „böse Sites“
  • Verfügbar für Windows und Mac

Sollte doch mal eine Site falsch einsortiert worden sein, kann dies einer erneuten Überprüfung unterzogen werden (Click mich!).

Bisher habe ich mit dem Tool sehr gute Erfahrungen (auch bei den Kindern) gemacht!

Hier gehts zum Download und weiteren Informationen: Click mich!

Blue Coat: Website ist in der falschen WebPulse Kategorie eingetragen

Der Hersteller Blue Coat liefert bei seinen Produkten auch direkt eine sehr gute Filterliste (für Proxy etc) für alle möglichen Arten von Websites mit. Hierdurch ist es möglich, bestimmte Kategorien im Netz direkt auszusperren, ohne viel Aufwand betreiben zu müssen.

Allerdings kann es trotzdem vorkommen, das versehentlich oder aus historischen Gründen eine Website falsch Kategorisiert wurde.

Hierzu stellt Blue Coat eine Website zur Verfügung, wo man die Site/Domain nochmals prüfen lassen kann. Die Bearbeitung erfolgt innerhalb von 24h.

Hier gehts zum „WebPulse Antrag zur Überprüfung einer Website„: Click mich!

Unix: Suchen von Text/Strings in Dateien unterschiedlicher Verzeichnisse

Zur Suche von Textteilen/Strings in bestimmten Dateien, die in verschiedenen Verzeichnissen liegen, kann folgendes Kommando verwendet werden:

 

find . -name *.txt -exec grep Bauteil {} \; -print

Bauteilliste:
ingesamt 25 Bauteile
./relativer_verzeichnispfad_1/datei_1.txt
hohe Bauteile, größer 2m kommen
kleine Bauteile werden getragen
Bauteillisten gibt es unter ...
./relativer_verzeichnispfad_2/datei_2.txt

 

Das Suchkommando find startet vom aktuellen Verzeichnis „.“ die Suche im aktuellen und in allen Unterverzeichnissen nach Dateien mit der Endung *.txt.
Die gefundenen Dateien werden mit dem nach -exec angegebenem grep Kommando nach dem String „Bauteil“ durchsucht und die gefundenen Zeilen mit -print ausgegeben.
Eine Besonderheit ist, das erst die gefundenen Zeilen und danach die den String enthaltene Datei angezeigt wird. Dabei steht der Dateiname mit dem relativen Pfad von der aktuellen Position im Dateisystem.

Eine Alternative zu dem -exec Schalter im find ist die Übergabe der Dateinamen an das Kommando xargs via Pipe:

find . -name *.txt | xargs grep Bauteil 

./relativer_verzeichnispfad_1/datei_1.txt:Bauteilliste:
./relativer_verzeichnispfad_1/datei_1.txt:ingesamt 25 Bauteile
./relativer_verzeichnispfad_2/datei_2.txt:hohe Bauteile, größer 2m kommen
./relativer_verzeichnispfad_2/datei_2.txt:kleine Bauteile werden getragen
./relativer_verzeichnispfad_2/datei_2.txt:Bauteillisten gibt es unter ...