Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung VB for Applications

GELÖST

Firefox NTLM Authentification, VBScript um Werte zu ergänzen

Mitglied: sergio1993

sergio1993 (Level 1) - Jetzt verbinden

14.04.2011, aktualisiert 10:44 Uhr, 5420 Aufrufe, 5 Kommentare

Hallo Miteinander

Wie ihr sicher schon im Titel gesehen habt, habe ich ein Problem mit dem Programmieren eines VBScript.

Ich möchte folgendes machen:

Firefox erstellt auf dem Computer einen Profile und dort hat er das sogennannte prefs.js file.
Dort werden alle Änderungen gespeichert, die der Benutzer im Firefox vornimmt.

In dieser Datei muss ich ein Befehl hinzufügen oder abändern.
Also soll das Programm zuerst schauen ob der Befehl "network.automatic-ntlm-auth.trusted-uris" schon vorhanden ist oder nicht.

Ist er vorhanden, müssen Werte dem Befehl hinzugefügt werden, ohne das die vorhandenen gelöst werden.
z.B. steht "user_pref("network.automatic-ntlm-auth.trusted-uris", "gs-galaxy,Google");" und es muss z.B. Yahoo hinzugefügt werden.
Dann üsste das am schluss folgendermasse aussehen: user_pref("network.automatic-ntlm-auth.trusted-uris", "gs-galaxy,Google,Yahoo");
Noch dazu soll es nachschauen ob der Begriff nicht schon vorhanden ist. Es soll also nicht zwei Mal das gleiche stehen.

Ist es nicht vorhanden, soll es einfach den Befehl hinzufügen: user_pref("network.automatic-ntlm-auth.trusted-uris", "gs-galaxy,Google,Yahoo,Mozilla,usw.");

Ich hoffe ihr könnt mir helfen und falls ihr noch fragen habt, einfach fragen.


Gruss Sergio
Mitglied: bastla
15.04.2011 um 00:23 Uhr
Hallo sergio1993!

Zum Testen (es wird eine "prefs.js" im Testpfad "D:\TEMP" vorausgesetzt - siehe Zeile 26):
01.
Values = Array("gs-galaxy", "Google", "Yahoo", "Mozilla", "usw.") 
02.
Setting = "user_pref(""network.automatic-ntlm-auth.trusted-uris""" 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
Set Sh = CreateObject("WScript.Shell") 
06.
'prefs.js suchen: 
07.
'Profilpfad ermitteln 
08.
FFPath = Sh.ExpandEnvironmentStrings("%Appdata%") & "\Mozilla\Firefox" 
09.
'"profiles.ini" einlesen ... 
10.
IniLines = Split(fso.OpenTextFile(FFPath & "\profiles.ini").ReadAll, vbCrLf) 
11.
'... und nach Zeile "Path=..." durchsuchen 
12.
For Each Line In IniLines 
13.
    If Left(Line, 5) = "Path=" Then 
14.
        FFProfilesPath = Trim(Mid(Line, 6)) 
15.
        Exit For 
16.
    End If 
17.
Next 
18.
PrefsPath = FFPath & "\" & FFProfilesPath & "\prefs.js" 
19.
'falls keine "prefs.js" gefunden wurde, Abbruch 
20.
If Not fso.FileExists(PrefsPath) Then WScript.Quit 1 
21.
 
22.
'############################# 
23.
'Ausgabe des Pfades 
24.
MsgBox PrefsPath 
25.
' zum Testen Kopie der "prefs.js" verwenden 
26.
PrefsPath = "D:\TEMP\prefs.js" 
27.
'############################# 
28.
 
29.
'"prefs.js" komplett in Array einlesen ... 
30.
PrefsLines = Split(fso.OpenTextFile(PrefsPath).ReadAll, vbCrLf) 
31.
'... und nach dem gewünschten "Settings-String" durchsuchen 
32.
For i = 0 To UBound(PrefsLines) 
33.
    If InStr(PrefsLines(i), Setting) > 0 Then 
34.
        'gefunden: Zeilennummer merken und Schleife verlassen 
35.
        LineNo = i 
36.
        Exit For 
37.
    End If 
38.
Next 
39.
 
40.
'Wenn Zeile bereits vorhanden war, ... 
41.
If LineNo <> 0 Then 
42.
    '... gesamte Zeile auslesen 
43.
    SettingLine = PrefsLines(LineNo) 
44.
    'bereits vorhandene Werte isolieren 
45.
    '(dazu Aufteilung der Zeile anhand der Anführungszeichen) 
46.
    SettingValues = Trim(Split(SettingLine, """")(3)) 
47.
    'alle gewünschten Werte durchgehen 
48.
    For Each Value In Values 
49.
        'Wert noch nicht vorhanden 
50.
        If InStr(SettingValues, Value) = 0 Then 
51.
            ' ... daher: hinzufügen 
52.
            SettingValues = SettingValues & "," & Value 
53.
        End If 
54.
    Next 
55.
    'Zeile neu zusammenbauen 
56.
    PrefsLines(LineNo) = Setting & ", """ & SettingValues & """);" 
57.
    'gesamte "prefs.js" wieder aus Array zusammensetzen 
58.
    PrefsLinesNew = Join(PrefsLines, vbCrLf) 
59.
Else 
60.
    'gesuchte Zeile noch nicht vorhanden, 
61.
    'daher mit allen gewünschten Werten neu erstellen 
62.
    PrefsLinesNew = Join(PrefsLines, vbCrLf) & vbCrLf & _ 
63.
        Setting & ", """ & Join(Values, ",") & """);" 
64.
End If 
65.
 
66.
'"prefs.js" schreiben 
67.
fso.CreateTextfile(PrefsPath).Write PrefsLinesNew
Die Zeilen 22 bis 27 dienen nur dem Testen und können dann später ersatzlos entfernt werden.

Grüße
bastla
Bitte warten ..
Mitglied: sergio1993
15.04.2011 um 08:24 Uhr
Hallo bastla

Danke für alles! Es Funktioniert alles einwandfrei ;)
Du bist meine Rettung. Habe gestern nämmlich den ganzen Tag rumprobiert aber einfach nicht hingekriegt.

Danke und Gruss
Sergio
Bitte warten ..
Mitglied: bastla
15.04.2011 um 12:13 Uhr
Hallo sergio1993!

Freut mich, wenn's soweit passt ...

... allerdings wäre noch anzumerken, dass alle Vergleiche case-sensitive sind, und dass die Struktur der Zeile den Vorgaben entsprechen muss (siehe vor allem den Suchbegriff in der Variablen "Setting") ...

Grüße
bastla
Bitte warten ..
Mitglied: doschtinator
29.05.2011 um 20:27 Uhr
Hallo bastla,

ich habe mich heute eine ganze Weile mit einer Lösung für ein ähnliches Problem herumgeschlagen. Nach dem ich fast fertig war, bin ich auf diesen Eintrag gestoßen. SUPER! Denn genau die Sache mit dem "network.automatic-ntlm-auth.trusted-uris" - Eintrag gilt auch für mich. Habe das oben dargestellte Skript genommen und alles funktioniert wunderbar wie beschrieben.
Allerdings benötige ich noch zwei weitere Einträge die überprüft bzw. geändert werden müssten. Dies sind boolsche Variablen und lauten

user_pref("network.automatic-ntlm-auth.allow-proxies", false);

und

user_pref("network.negotiate-auth.allow-proxies", false);

Also ähnlich wie bei sergio1993 soll die prefs.js auf die Einträge überprüft werden und falls nicht vorhanden ergänzt, bzw. falls vorhanden geändert werden. Da ich mit meiner Lösung sehr amateurhafte Arbeit geleistet habe, hoffe ich auf einen weiteren Tipp oder Hinweis. Wäre toll, wenn man dies noch irgendwie in das schon vorhandene Skript einbauen könnte.
Leider bin ich im VBScript schreiben ein absoluter Anfänger und muss mich erst einmal durch das schon vorhandene Skript durcharbeiten, um überhaupt zu verstehen an welcher Stelle was genau passiert. Daher wäre ich über jede Hilfe dankbar!

Gruß

doschtinator
Bitte warten ..
Mitglied: doschtinator
02.06.2011 um 18:58 Uhr
Hallo,

habe für mich jetzt doch eine funktionierende Lösung gefunden, die sehr an der obigen angelehnt ist. Ist unter Umständen so nicht perfekt programmiert, aber es funktioniert und das ist mir zuerst einmal am Wichtigsten

Values = Array("http://s1")
Setting = "user_pref(""network.automatic-ntlm-auth.trusted-uris"""
Setting2 = "user_pref(""network.automatic-ntlm-auth.allow-proxies"""
Setting3 = "user_pref(""network.negotiate-auth.allow-proxies"""

Set fso = CreateObject("Scripting.FileSystemObject")
Set Sh = CreateObject("WScript.Shell")

'
'prefs.js suchen:
'Profilpfad ermitteln
FFPath = Sh.ExpandEnvironmentStrings("%Appdata%") & "\Mozilla\Firefox"
'"profiles.ini" einlesen ...
IniLines = Split(fso.OpenTextFile(FFPath & "\profiles.ini").ReadAll, vbCrLf)
'... und nach Zeile "Path=..." durchsuchen
For Each Line In IniLines
If Left(Line, 5) = "Path=" Then
FFProfilesPath = Trim(Mid(Line, 6))
Exit For
End If
Next
PrefsPath = FFPath & "\" & FFProfilesPath & "\prefs.js"
'falls keine "prefs.js" gefunden wurde, Abbruch
If Not fso.FileExists(PrefsPath) Then MsgBox "Datei prefs.js nicht vorhanden!", vbExclamation, "Fehlende prefs.js"
If Not fso.FileExists(PrefsPath) Then WScript.Quit 1

'
'"prefs.js" komplett in Array einlesen ...
PrefsLines = Split(fso.OpenTextFile(PrefsPath).ReadAll, vbCrLf)

'
'... und nach dem gewünschten "Settings-String" durchsuchen
For i = 0 To UBound(PrefsLines)
If InStr(PrefsLines(i), Setting) > 0 Then
'gefunden: Zeilennummer merken und Schleife verlassen
LineNo = i
Exit For
End If
Next
'Wenn Zeile bereits vorhanden war, ...
If LineNo <> 0 Then
'... gesamte Zeile auslesen
SettingLine = PrefsLines(LineNo)
'bereits vorhandene Werte isolieren
'(dazu Aufteilung der Zeile anhand der Anführungszeichen)
SettingValues = Trim(Split(SettingLine, """")(3))

'alle gewünschten Werte durchgehen
For Each Value In Values
'Wert noch nicht vorhanden
If InStr(SettingValues, Value) = 0 Then
' ... daher: hinzufügen
SettingValues = SettingValues & "," & Value
End If
Next
'Zeile neu zusammenbauen
PrefsLines(LineNo) = Setting & ", """ & SettingValues & """);"
'gesamte "prefs.js" wieder aus Array zusammensetzen
PrefsLinesNew = Join(PrefsLines, vbCrLf)
Else
'gesuchte Zeile noch nicht vorhanden,
'daher mit allen gewünschten Werten neu erstellen
PrefsLinesNew = Join(PrefsLines, vbCrLf) & vbCrLf & _
Setting & ", """ & Join(Values, ",") & """);"
End If
'"prefs.js" schreiben
fso.CreateTextfile(PrefsPath).Write PrefsLinesNew

'
'"prefs.js" komplett in Array einlesen ...
PrefsLines = Split(fso.OpenTextFile(PrefsPath).ReadAll, vbCrLf)

'
'... und nach dem gewünschten "Settings2-String" durchsuchen
For i = 0 To UBound(PrefsLines)
If InStr(PrefsLines(i), Setting2) > 0 Then
'gefunden: Zeilennummer merken und Schleife verlassen
LineNo = i
Exit For
End If
Next
'Wenn Zeile bereits vorhanden war, ...
If LineNo <> 0 Then
'... gesamte Zeile auslesen
SettingLine = PrefsLines(LineNo)
'bereits vorhandene Werte auslesen
'(dazu Aufteilung der Zeile anhand der Anführungszeichen)
SettingValues = Split(SettingLine, ",") 'ergibt true); oder false); als Ausgabe
' Der Wert wird der Variablen bool übergeben
bool = (SettingValues(1))
' Falls die Variable den Wert true hat, wird dieser in false gedreht
if bool = " true);" then
bool = " false);"
End if

'Zeile neu zusammenbauen
PrefsLines(LineNo) = Setting2 & "," & bool
'gesamte "prefs.js" wieder aus Array zusammensetzen
PrefsLinesNew = Join(PrefsLines, vbCrLf)

Else
'gesuchte Zeile noch nicht vorhanden,
'daher mit allen gewünschten Werten neu erstellen
PrefsLinesNew = Join(PrefsLines, vbCrLf) & vbCrLf & "user_pref(""network.automatic-ntlm-auth.allow-proxies"", false);"
End If

'"prefs.js" schreiben
fso.CreateTextfile(PrefsPath).Write PrefsLinesNew

'
'"prefs.js" komplett in Array einlesen ...
PrefsLines = Split(fso.OpenTextFile(PrefsPath).ReadAll, vbCrLf)

'
'... und nach dem gewünschten "Settings3-String" durchsuchen
For i = 0 To UBound(PrefsLines)
If InStr(PrefsLines(i), Setting3) > 0 Then
'gefunden: Zeilennummer merken und Schleife verlassen
LineNo = i
Exit For
End If
Next
'Wenn Zeile bereits vorhanden war, ...
If LineNo <> 0 Then
'... gesamte Zeile auslesen
SettingLine = PrefsLines(LineNo)
'bereits vorhandene Werte auslesen
'(dazu Aufteilung der Zeile anhand der Anführungszeichen)
SettingValues = Split(SettingLine, ",") 'ergibt true); oder false); als Ausgabe
' Der Wert wird der Variablen bool übergeben
bool = (SettingValues(1))
' Falls die Variable den Wert true hat, wird dieser in false gedreht
if bool = " true);" then
bool = " false);"
End if

'Zeile neu zusammenbauen
PrefsLines(LineNo) = Setting3 & "," & bool
'gesamte "prefs.js" wieder aus Array zusammensetzen
PrefsLinesNew = Join(PrefsLines, vbCrLf)

Else
'gesuchte Zeile noch nicht vorhanden,
'daher mit allen gewünschten Werten neu erstellen
PrefsLinesNew = Join(PrefsLines, vbCrLf) & vbCrLf & "user_pref(""network.negotiate-auth.allow-proxies"", false);"
End If

'"prefs.js" schreiben
fso.CreateTextfile(PrefsPath).Write PrefsLinesNew

'

MsgBox "Datei erfolgreich geändert!" , vbInformation ,"Ergänzung prefs.js"
Bitte warten ..
Ähnliche Inhalte
Windows Netzwerk
NTLM in Domäne deaktivieren
Frage von StefanK007Windows Netzwerk

Hallo, wir haben vor Kurzem unsere Windows 2008 R2 Domänencontroller durch Windows 2012 R2 DCs ersetzt und schauen nun ...

Outlook & Mail
Outlook Netzwerksicherheit NTLM verstellt sich immer wieder
Frage von pastorOutlook & Mail

Hallo ich bräuchte mal etwas hilfe ;-) Folgende Umgebung vorhanden: - Server 2008 - Exchangeserver 2010 Client: - Outlook ...

Batch & Shell
Powershell - Dateien vergleichen und ergänzen
Frage von Franz-Josef-IIBatch & Shell11 Kommentare

Guten Tag Ich bin wieder einmal bei meiner CSV dran und hänge :-( trotz Google und Co Ausgangslage ist ...

Batch & Shell
Datennamen durch Listeinhalt umbenennen, ergänzen
gelöst Frage von 115241Batch & Shell7 Kommentare

Hallo, ich grüße alle sehr Herzlich. Ich möchte per Batch JPG Bilder die in einem Verzeichnis liegen umbenennen, jedoch ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 2 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Windows Server
DNS Forwarding an andere Domäne
Frage von detox91Windows Server9 Kommentare

Hallo, für Testzwecke haben wir bei uns eine zweite Windows Domäne (B.local) aufgebaut, welche komplett unabhängig und isoliert der ...