Kommandos virtuell ausführen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
api
User
Beiträge: 181
Registriert: Donnerstag 7. August 2008, 21:23

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
deets

Was sind VBS Commands? Und was sollen die *tun*? Und wie fuehrst du die genau ueber os.system aus?
api
User
Beiträge: 181
Registriert: Donnerstag 7. August 2008, 21:23

VBS = Visual Basic Script

Das VBS-Script soll mir meinen vollständigen Namen zu meiner User-ID aus dem LDAP raussuchen.
deets

und wie fuehrt man sowas aus? und kannst du stattdessen pywin32 verwenden, um das direkt ueber Python zu machen?
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Das sinnvollste wäre es wohl das umfassende Script für die Aufrufe der VBS-Programme... auch einfach in VBS zu schreiben.
api
User
Beiträge: 181
Registriert: Donnerstag 7. August 2008, 21:23

@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.
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.
api
User
Beiträge: 181
Registriert: Donnerstag 7. August 2008, 21:23

@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...
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.
api
User
Beiträge: 181
Registriert: Donnerstag 7. August 2008, 21:23

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.. :D :D
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 :)
Antworten