Andreas

Remoteprozess auf einem Windows-Rechner mittels PERL starten

11. August 2012 · Programmierung · andreas · Kein Kommentar

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):

remote.pl
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. auch noch auf Daten eines weiteren Rechners zugreifen zu lassen:

remote.pl
use strict; use warnings; use Win32::OLE; use Win32::OLE::Variant; my $remoteDomain= 'myDomain'; my $remoteHost = 'myHost'; my $remoteUser = 'myDomain\myUser'; my $remotePwd = 'myPassword'; my $remoteCmd = 'c:\windows\notepad.exe'; my $locator = Win32::OLE->new('WbemScripting.SWbemLocator'); my $service = $locator->ConnectServer($remoteHost, 'root\cimv2', $remoteUser, $remotePwd, 'MS_409', "kerberos:$remoteDomain\\$remoteHost"); $service->{Security_}->{AuthenticationLevel} = 6; # PktPrivacy $service->{Security_}->{ImpersonationLevel} = 4; # Delegate my $process = $service->Get('Win32_Process'); my $vPid = Variant(VT_I4 | VT_BYREF, 0); $process->Create($remoteCmd, undef, undef, $vPid); print "process running - pid: $vPid\n";

Beim Remotehost ist darauf zu achten, daß der tatsächliche Rechnername und kein DNS-Alias verwendet wird da sonst der Verbindungsaufbau mit dem Fehler 0x800706ba “Der RPC-Server ist nicht verfügbar” scheitert.

Sofern tatsächlich im Rahmen des Remoteaufrufs ein dritter Rechner miteinbezogen werden soll, sind hierbei einige Einschränkungen zu beachten, wie der TechNet-Artikel “Geheimnisse von Windows Management Instrumentation” erklärt:

Wenn ein Clientcomputer (Computer A) Anmeldeinformationen für die Domäne von einem Remoteserver (Computer B) an einen dritten Computer (Computer C) weiterleiten muss, ist Delegierung erforderlich. Dies trifft zu, wenn zwei oder mehr Netzwerkhops für einen bestimmten Vorgang ausgeführt werden müssen. Ohne Delegierung kann Computer B keine von Computer A empfangenen Anmeldeinformationen weiterleiten; deshalb schlägt die Verbindung mit Computer C fehl.

Die genauen Schritte zur Einrichtung der Delegierung sowie ein vbs-Skript zum Testen des Aufrufs sind in dem Artikel erläutert.

windows-delegierung

Wichtig ist der Hinweis, dass zur erfolgreichen Durchführung die Delegierung für Computer B in Active Directory aktiviert werden muss. Hierzu ist in den Eigenschaften des Computer-Kontos im Active Directory die Option “Computer für Delegierungszwecke vertrauen” zu aktivieren, ansonsten scheitert der Aufruf mit dem Fehler 0x80070721: “Fehler im Sicherheitspaket”.

Literaturhinweise:

Aktualisierungen:
05.05.2015: Zusätzliche Informationen bezüglich Rechnernamen und Delegierung hinzugefügt.

G Data meldet "Die Virensignaturen müssen aktualisiert werden"

29. Juli 2012 · Anwendungen · andreas · 24 Kommentare

Sollte beim Update der Virensignaturen etwas schieflaufen, so kann es sein, daß G Data anschließend beharrlich beim Rechnerneustart auf eine fehlende Aktualisierung der Virensignaturen hinweist.

gdata_aktualisierung

Während auf dem Programmicon im Systemtray ein Ausrufezeichen zu sehen ist, erscheint beim Blick auf die Programmoberfläche ein grünes Häkchen mit Status “Ihr System ist geschützt!”, der Aufruf der Funktion “Virensignaturen aktualisieren” bringt keine Änderung.

Zur Lösung des Problems ist eine Aktualisierung ohne Versionsprüfung durchzuführen. Hierzu in den Einstellungen unter “AntiVirus” / “Updates” den Haken bei “Versionsprüfung” entfernen, mit “OK” bestätigen und anschließend die Virensignaturen aktualisieren.

Nach erfolgter Aktualisierung nicht vergessen, den Haken bei “Versionsprüfung” erneut zu setzen.


Kundenservice im toom Baumarkt

23. Juli 2012 · IMHO · andreas · Kein Kommentar

Letzten Samstag hatten wir im toom-Baumarkt in Landstuhl einen Burg-Wächter “Verona” endeckt - ein fast neuwertiges Ausstellungsstück, auf einen akzeptablen Preis reduziert.

Also den Briefkasten unter den Arm geklemmt und ab damit zur Info. Leider waren die zugehörigen Schlüssel unauffindbar, weshalb der Verkäufer eine weitergehende Suche mit anschließender Rückmeldung versprach.

Diese kam soeben - die Schlüssel bleiben unauffindbar, ein neuer Zylinder mit Schlüssel könnte aber für 12,xx€ zuzüglich 6,yy€ besorgt werden - diese kämen dann noch zum Kaufpreis HINZU.

Auch eine verwunderte Nachfrage änderte nichts am Ergebnis:

Weder wird der Kasten ohne Schlüssel billiger noch wollen diejenigen, welche die Schlüssel verschlampt haben die Kosten für neue übernehmen - die Kosten für ein neues Schloß soll der Käufer doch bitte selbst zusätzlich zum Kaufpreis tragen.

Naja, dann eben nicht …


Jon Lord R.I.P.

16. Juli 2012 · Verschiedenes · andreas · Kein Kommentar

Jon Lord ist im Laufe des heutigen Tages in London verstorben.

Die Welt verliert nicht nur einen großartigen Musiker, sondern auch einen beeindruckenden Menschen.

Vielen Dank für alles und mögest Du in Frieden ruhen.

Das von Serge Waldbillig aufgenommene Photo zeigt Jon Lord während der Proben zum Eröffnungskonzert der “Pictured Within”-Tour am 16.Mai 1999 im Conservatoire de Musique, Luxembourg.

NTP-Client unter Solaris konfigurieren

29. Juni 2012 · Betriebssysteme · andreas · Kein Kommentar

Um einen NTP-Client unter Solaris zu konfigurieren, sind folgende Schritte durchzuführen:

Als erstes sollte die Musterdatei “/etc/inet/ntp.client”

/etc/inet/ntp.client
# /etc/inet/ntp.client # # An example file that could be copied over to /etc/inet/ntp.conf; it # provides a configuration for a host that passively waits for a server # to provide NTP packets on the ntp multicast net.

als Datei “/etc/inet/ntp.conf” kopiert werden, was mit dem Befehl

cp /etc/inet/ntp.client /etc/inet/ntp.conf

durchgeführt werden kann.

Anschließend die soeben kopierte Datei öffnen und z.B. durch Angabe eines Servers anpassen:

server pool.ntp.org

Als letzter Schritt muß noch der zugehörige Dienst gestartet werden

svcadm enable svc:/network/ntp

Ein anschließender Blick in die Datei “/var/adm/messages” sollte Klarheit verschaffen, ob der konfigurierte Zeitserver auch erfolgreich angesprochen werden konnte:

Jun 22 12:29:59 myserver ntpdate[1549]: [ID 774510 daemon.notice] step time server 192.168.0.1 offset -1921.274780 sec Jun 22 12:29:59 myserver xntpd[1551]: [ID 702911 daemon.notice] xntpd 3-5.93e+sun 03/08/29 16:23:05 (1.4) Jun 22 12:29:59 myserver xntpd[1551]: [ID 301315 daemon.notice] tickadj = 5, tick = 10000, tvu_maxslew = 495, est. hz = 100 Jun 22 12:30:00 myserver xntpd[1551]: [ID 266339 daemon.notice] using kernel phase-lock loop 0041, drift correction 0.00000

Sollte es zu Problemen kommen, hilft hoffentlich ein Blick auf die Seite “Troubleshooting NTP on Solaris”, welche die Analyse möglicher Fehlerquellen erläutert.