Passwort in Kommandozeile?

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

UweRammelt
**
Beiträge: 28
Registriert: So, 06.07.2008 19:42

Passwort in Kommandozeile?

Beitrag von UweRammelt »

Hallo Zusammen!

Weiß jemand, ob ich ein passwortgeschütztes Dokument per Kommandozeile öffnen kann?
Meine Vorstellung:

scalc.exe Datei.ods /MeinPasswort

Wäre für einen Hinweis dankbar!
Uwe
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Passwort in Kommandozeile?

Beitrag von lorbass »

In der Programmhilfe (→ F1) sind unter dem Titel Starten von LibreOffice mit Parametern die gültigen Befehlszeilenparameter aufgeführt. Eine Option zur verdeckten oder auch offenen Passworteingabe finde ich bei mir nicht (LibreOffice 4.2.8.2)!

Gruß
lorbass

_______________
BTW: In deinem Benutzerprofil scheint die Verwendung eines Avatars zwar aktiviert worden zu sein, allerdings ohne auch tatsächlich einen Avatar zur Verwendung zu definieren.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Passwort in Kommandozeile?

Beitrag von Stephan »

Abhängig vom Betriebssystem könntest Du alternativ zur Laufzeit mit dem Makro ein Script indirekt ausführen, unter MS Windows z.B. ein VB-Script.

Beispiel (nicht getestet):

Code: Alles auswählen

Sub Datei_oeffnen() 
oleService = createUnoService("com.sun.star.bridge.OleObjectFactory") 
WSH= oleService.createInstance("MSScriptControl.ScriptControl") 
WSH.Language = "VBScript" 
vbs=vbs+"Set ser_man = WScript.CreateObject(""com.sun.star.ServiceManager"")"+Chr(10) 
vbs=vbs+"Set desk = ser_man.createInstance(""com.sun.star.frame.Desktop"")"+Chr(10)
vbs=vbs+"Dim arg(0)"+Chr(10)
vbs=vbs+"Set arg(0) = ser_man.Bridge_GetStruct(""com.sun.star.beans.PropertyValue"")"+Chr(10)
vbs=vbs+"arg(0).Name = ""PassWord"""+Chr(10)
vbs=vbs+"arg(0).Value = ""DasDateipasswort"""+Chr(10)
vbs=vbs+"Set Doc = desk.loadComponentFromURL(""private:factory/scalc"", ""_blank"", 0, arg())"+Chr(10)
WSH.ExecuteStatement(vbs)
End Sub
Gruß
Stephan
UweRammelt
**
Beiträge: 28
Registriert: So, 06.07.2008 19:42

Re: Passwort in Kommandozeile?

Beitrag von UweRammelt »

Mojn Zusammen!

VB-Scripte: bin mir nicht sicher, ob ich das richtig verstanden habe, aber in der ODS-Datei ein Macro mit dem Passwort - dann kann ich mir das Passwort auch sparen.

In Windows selber sind VB-Scripte bei mir aus Sicherheitsgründen abgeschaltet.

Alternativ zum VB-Macro könnte ich mir aber eine Applikation (AutoIt oder Delphi) schreiben, die meine Datei aufruft, auf das Fenster der Passworteingabe wartet und dieses dann einträgt - nun, sooo viel Aufwand wollte ich da nicht betreiben ;-)

Idealerweise hätte es da den Kommandozeilenparameter "/Password: MeinPasswort" gegeben. Aber dem ist wohl nicht so ...

Trotzdem Danke!
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Passwort in Kommandozeile?

Beitrag von Stephan »

VB-Scripte: bin mir nicht sicher, ob ich das richtig verstanden habe, aber in der ODS-Datei ein Macro mit dem Passwort - dann kann ich mir das Passwort auch sparen.
Nein, meine Überlegung war falsch. Eigentlich war gemeint das Du ein VBScript über die KOmmandozeile starten sollst, z.B. sowas (getestet, läuft wie angegeben):

Code: Alles auswählen

'Achtung Visual Basic Script
Set ser_man = WScript.CreateObject("com.sun.star.ServiceManager")
Set desk = ser_man.createInstance("com.sun.star.frame.Desktop")
Dim arg(0)
Set arg(0) = ser_man.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
arg(0).Name = "Password"
arg(0).Value = "abc"
Dim x
Set x = desk.loadComponentFromURL("file:///D:/Datei.ods", "_blank", 0, arg)
Alternativ zum VB-Macro könnte ich mir aber eine Applikation (AutoIt oder Delphi) schreiben, die meine Datei aufruft, auf das Fenster der Passworteingabe wartet und dieses dann einträgt - nun, sooo viel Aufwand wollte ich da nicht betreiben
Ich verstehe dann nur nicht warum Du das Passwort in den Dialog (automatisiert) eingeben willst, statt es direkt in AutoIT oder Delphi zu übergeben.

Zumindest für AutoIT findest Du genügend Beispielcode zu OpenOffice im Netz, so das Du obenstehendes WSH-Script auf AutoIT 'umprogrammieren' kannst und dann aus dem AutoIT-Script eine exe erzeugen. Dann steht das Passwort zwar in der exe, aber das ist doch zunächst genügend Schutz, damit nicht jeder gewöhnliche Nutzer das Passwort lesen kann.
Oder Du programmiert Dein AutoIT-Script gleich so das es als exe einen Parameter entgegennimmt dann kannst Du auf der Kommandozeile genau das tun was Du ursprünglich wolltest:

Code: Alles auswählen

DeinAutoITScript.exe passwort


Gruß
Stephan
UweRammelt
**
Beiträge: 28
Registriert: So, 06.07.2008 19:42

Re: Passwort in Kommandozeile?

Beitrag von UweRammelt »

Hallo Stephan,

habe das VBS mal getestet: es läuft tatsächlich einwandfrei!

Aaaber der Windows Scripting Host ist mir zu gefährlich - 90 % aller Schädlinge sind scriptbasierende Downloader, die von Virenscannern definitiv nicht erkannt werden (eigene Tests!).
Habe zwar Noscript und Werbeblocker im Firefox, aber man weiß ja nie ... ein kleiner Fehler ist schnell passiert.

Die Umsetzung nach AutoIt macht daher Sinn, dazu muss ich das Script aber erst mal verstehen ;-)

Im Fall AutoIt macht natürlich auch die Übergabe des Passworts an die AutoIt-Routine Sinn. Ein Sicherheitsrisiko besteht da aber nicht - die Systemplatte ist truecryptverschlüsselt. Und PINs und TANs stehen in der ODS auch nicht drin ;-)

Danke und schöne Grüße,
Uwe
UweRammelt
**
Beiträge: 28
Registriert: So, 06.07.2008 19:42

Re: Passwort in Kommandozeile?

Beitrag von UweRammelt »

So, nun hat mich doch der Ehrgeiz gepackt und ich hab's mir nach AutoIt portiert (mit einigen Schwierigkeiten).
Aber final läuft es :D

Schönen Dank noch mal!

Viele Grüße,
Uwe
Antworten