Schlagwort: Perl

Remoteprozess auf einem Windows-Rechner mittels PERL starten

Remoteprozess auf einem Windows-Rechner mittels PERL starten

Um mittels PERL einen Remoteprozess auf einem entfernten Windows-Rechner zu starten, gibt es mehrere Alternativen:

Eine Möglichkeit ist die Verwendung von „PsExec.exe“ aus der PsTools-Suite von Microsoft, die allerdings den Nachteil hat, daß über einen „system“-Call ein externes Programm aufgerufen wird und die Einfluss- und Kontrollmöglichkeiten sehr beschränkt sind.

Soll der Start in PERL durchgeführt werden, so ist zwischen zwei Anwendungsszenarien zu unterscheiden:

Sofern lediglich unter dem Kontext des aufrufenden Benutzers ein Prozess gestartet werden soll, reichen 2 Zeilen PERL-Code (aus Gründen der Übersichtlichkeit wurde auf Fehlerbehandlung verzichtet):

use strict;
use warnings;
use Win32::OLE;

my $remoteHost = 'myHost';
my $remoteCmd = 'c:\windows\notepad.exe';

my $wmi = Win32::OLE->GetObject("winmgmts:{ImpersonationLevel=Impersonate,(security)}//$remoteHost\\root\\cimv2:Win32_Process");
$wmi->Create($remoteCmd);

Weitaus flexibler ist hingegen die Möglichkeit, den Prozess unter einem anderen Benutzer zu starten und ggf.

Weiterlesen

 

Textformatierung aus der Zwischenablage entfernen

Die Funktionalität von stripClip, einem kleinen Utility zum Entfernen von Textformatierungen  aus der Zwischenablage lässt sich – sofern sowieso ein Perl-Interpreter installiert ist – auch mit wenigen Zeilen Perl-Code realisieren:

use warnings;
use strict;
use Win32::Clipboard;

my($text);

my $clip = Win32::Clipboard();

do {

	$clip->WaitForChange();

	if ($clip->IsText()) {
		$text = $clip->GetText();
		$clip->Set($text);
	}

} while ($text ne ':q');

Startet man das Skript mit ‚wperl.exe‘ statt mit ‚perl.exe‘, stört kein Fentser und das Skript lässt sich ohne Taskmanager durch Kopieren von ‚:q‘ beenden.

Weiterlesen

 

Windows, Geplante Tasks, Perl und ARGV

Ein logischer Grund ist nicht ersichtlich, aber während der „Geplante Task“ beim Aufruf

c:\perl\bin\wperl.exe c:\meinskript.pl tollerparameter

den tollen Parameter ans Skript weiterreicht, wird mittels

c:\meinskript.pl tollerparameter

zwar das Skript aufgerufen, der Parameter kommt aber nicht an.

 

Module mit ppm aktualisieren

Während die Aktualisierung der vorhandenen Module über die graphische Oberfläche von ppm zur Klickarie ausartet, hilft die Kommandozeile schnell und unbürokratisch:

ppm upgrade --install

wühlt sich vom ersten bis zum letzten installierten Modul und aktualisiert diese bei Bedarf.

 

HTML-Dokumente zerlegen mit HTML::TreeBuilder

Geht es um das Extrahieren von Informationen aus einem HTML-Dokument, so bietet sich Perl als „the Swiss Army chainsaw of programming languages“ geradezu an und bietet unzählige Wege ans Ziel. Nicht nur gibt es die mächtige RegEx-Engine, auch im CPAN gibt es eine Vielzahl von Modulen, die für den Einsatzzweck geeignet scheinen.

Ein Modul, das ein gutes Verhältnis zwischen Aufwand und erzieltem Ergebnis verspricht, ist HTML::TreeBuilder, dessen Einsatz am Beispiel eines Flickr-Fotoalbums demonstriert werden soll:

Nach der Initialisierung des HTML::TreeBuilder-Objekts genügt ein Aufruf von „parse“ oder wahlweise „parse_file“ auf eine z.B.

Weiterlesen