Seite 1 von 1
Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 09:32
von api
Hallo zusammen,
Ich habe ein Python-Script, welches mehrere externe Kommandos ausführen soll. Diese Kommandos werden von dem Script zur Laufzeit erzeugt. Normalerweise würde ich diese Kommandos nun in einer Datei speichern und diese dann mit os.system oder os.popen ausführen. Die Kommandos selbst sind VBS-Kommandos - laufen also im Windows-Betriebssystem.
Mein Problem ist nun, dass ich keinerlei Dateien speichern kann - also diese Berechtigung nicht da ist.
Meine Idee wäre nun, ob es möglich ist diese Kommandos quasi in einer virutellen Datei zusammenzufügen (die also nur im Speicher existent ist) und diese dann auszuführen?
Oder denke ich zu umständlich und das kann man ganz anders lösen?
Ich verwende Python 2.7.2 unter Windows XP.
CU,
API
Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 10:03
von deets
Was sind VBS Commands? Und was sollen die *tun*? Und wie fuehrst du die genau ueber os.system aus?
Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 11:17
von api
VBS = Visual Basic Script
Das VBS-Script soll mir meinen vollständigen Namen zu meiner User-ID aus dem LDAP raussuchen.
Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 11:40
von deets
und wie fuehrt man sowas aus? und kannst du stattdessen pywin32 verwenden, um das direkt ueber Python zu machen?
Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 11:41
von sparrow
Das sinnvollste wäre es wohl das umfassende Script für die Aufrufe der VBS-Programme... auch einfach in VBS zu schreiben.
Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 11:47
von api
@deets: Direkt über Python ist da viel zu kompliziert. VBS bringt da Bordmittel mit, dass das nen 10 Zeiler ist.
@sparrow: Ich kann das VBS-Script ja nirgends ablegen, da ich keine Rechte dafür habe... und alles in VBS umzuschreiben, dafür ist dann VBS viel zu umständlich.
Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 11:56
von deets
Das kann ich nicht beurteilen, aber die haelfte meiner Frage hast du ja nicht beantwortet: wie ruft man VBS Skripte denn auf? Wenn der Interpreter da keine zb stdin-basierte Eingabe eines Skriptes vorsieht, dann hast du halt verloren.
Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 13:08
von api
@deets: Sorry, ja ich bin dir noch Infos schuldig.
Also, ich rufe das Script unter Windows (Kommandozeile) folgendermaßen auf:
=> cscript //nologo WLBFullname.vbs
Der Inhalt des Scripts ist übrigends dieser:
Code: Alles auswählen
Set objSysInfo = CreateObject("ADSystemInfo")
Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
Wscript.Echo objUser.FullName & ""
Wenn du weisst, wie ich das mit Python elegant lösen kann, wäre mir das natürlich umso lieber...
Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 13:13
von deets
Was so ein bisschen Googeln so zutage foerdert:
http://grokbase.com/t/python/python-win ... ou-located
Sieht fuer mich jetzt ehrlich gesagt nicht komplizierter aus als das, was du in VBS machst. Natuerlich musst du die win32-extensions installiert haben.
Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 14:21
von api
Tja, wo du recht hast... Hab ich nicht gefunden...
Das löst mein Problem natürlich - ist mir wie gesagt viel lieber, wenn ich es innerhalb des PythonScripts löse...
Danke Dir..

Re: Kommandos virtuell ausführen?
Verfasst: Donnerstag 16. August 2012, 17:07
von lunar
@api: Nur als Tipp für die Zukunft: Alles, was VBS (oder allgemein jede WSH-Sprache) kann, kann Python auch. Die Objekte, die Du in VBS verwendest, sind keine „Bordmittel“, sondern COM-Objekte, auf die Du mittels pywin32 in Python ebenso schnell und einfach zugreifen kannst
