protektor
Goto Top

Notes.ini per batch-script ändern

Ich weiß, dass es zu diesem Thema schon einige Foreneinträge gibt. Diese hab ich entweder nicht verstanden oder behandelten nicht das selbe problem.

Hi,
ich bin BA-Studend und sitze gerade in der EDV unserer Firma. Wir verwenden Lotus Notes und wollen per batch-datei drei zeilen in der notes.ini verändern. Da ich Maschinenbau studiere, habe ich mich mit solchen scripts noch nicht weiter beschäftigt und dementsprechend keine ahnung. Die Kollegen können mir auch nicht weiterhelfen. Ich benötige also ein script oder ein präzises tutorial zur erstellung desselben. Kann mir dabei bitte jemand helfen?

Die Datei hat den folgenden Pfad:
C:\Program Files\IBM\Lotus\Notes\notes.ini
In der Datei sollen die die Werte

EnableJavaApplets=1
EnableLiveConnect=1
EnableJavaScript=1

in

EnableJavaApplets=0
EnableLiveConnect=0
EnableJavaScript=0

geändert werden.

Ich soll erstmal einen Weg finden, dass ich das Problem an meinem Rechner lösen kann. Dann kommt Schritt 2. Die überschriebene ini.-Datei soll für die User zugänglich gemacht werden. Wir verwenden bei uns im Hause Windows 7 Enterprise. Das Problem ist, dass es 64-Bit- und 32-Bit-Versionen gibt, wodurch sich der Pfad der Datei geringfügig ändert. Bei der 32- Bit-Version ist es der obige, bei der 64-Bit-Variante anstatt ...\Program Files\... steht da ...\Program Files (x86)\....

Ich hoffe, ich hab euch genug Infos gegeben.
Ich bitte um schnelle Hilfe. Danke schon mal im Vorraus.

Gruß
ein verzweifelnder Azubi

Content-Key: 205986

Url: https://administrator.de/contentid/205986

Printed on: April 23, 2024 at 14:04 o'clock

Member: kontext
kontext May 03, 2013, updated at May 19, 2016 at 08:19:20 (UTC)
Goto Top
Hallo verzweifelnder,

in diesem Fall wurdest du mit diesem Problem Lotus Notes mit riesigem Java-Loch betraut ...

Quick&Dirty ...
... du kannst die notes.ini von Hand bearbeiten und dann auf ein Netzwerk-Share legen
... danach baust du z.b. ein Autostart-Script das beim Anmelden des Users die angepasste Notes.INI ins Programm-Verzeichnis kopiert

Gruß
@kontext
Member: Protektor
Protektor May 03, 2013 at 09:02:40 (UTC)
Goto Top
Erst mal vielen Dank zanko,

genau dieses Problem soll ich bearbeiten. Funktioniert das mit dem Autostart-Script auch in Anbetracht der verschiedenen Dateipfade?
Member: kontext
kontext May 03, 2013, updated at May 19, 2016 at 08:19:16 (UTC)
Goto Top
Kein Ding ...
... wenn man mit errorlevel arbeitet, dann sicherlich face-smile
... leider kann ich dir kein konkretes Tutorial liefern (hab mit Scripts eher weniger am Hut)
... aber ein paar User (unser Script-Experts) können dir sicher zur Seite stehen ...

Wir nutzen eine Software-Verteilung und handeln solche Probleme meistens über diese ab ...
... alternativ ein wenig googlen nach scripten mit errorlevel ...
... gibt ja mehrere Wege (Batch, VBS, Powershell, etc)

Gruß
@kontext
Member: Protektor
Protektor May 03, 2013 at 09:25:43 (UTC)
Goto Top
nochmals danke,
aber in der notes.ini stehen auch Werte, die sich von User zu User unterscheiden, weswegen die Autostart-Variante nicht in Frage kommt. Sonst könnte ich auch die Datei bearbeiten und dann direkt zu den allen Usern schieben.
deswegen brauch ich ein batch-script, das nur diese drei Werte überschreibt.

Gruß
Protektor
Member: bastla
bastla May 03, 2013 at 09:38:22 (UTC)
Goto Top
Hallo Protektor und willkommen im Forum!

Wenn es die entsprechenden Zeilen in jeder "notes.ini" gibt, sollte ein einfaches Script wie zB in Mehrere Textstellen innerhalb einer TXT-Datei per Batch austauschen schon reichen ...

Grüße
bastla
Member: kontext
kontext May 03, 2013, updated at May 19, 2016 at 08:19:29 (UTC)
Goto Top
Hi Protektor,

sry - dann bin ich leider raus face-wink
@bastla - ja auf sowas wird es wohl hinaus laufen ...
... AFAIK gibt es die 3 Zeilen in jeder notes.INI

Gruß
@kontext
Member: Protektor
Protektor May 03, 2013 at 09:52:39 (UTC)
Goto Top
danke euch beiden,

@bastla - die drei zeilen stimmen in jeder notes.ini überein, nur viele andere Parameter nicht.
Den verlinkten Foreneintrag habe ich auch schon gesehen, aber ich verstehe ihn nicht. Wie gesagt, ich bin blutiger Anfänger.

Gruß
Protektor
Member: bastla
bastla May 03, 2013 updated at 10:25:58 (UTC)
Goto Top
Hallo Protektor!

Eigentlich hätte ich gehofft, dass das Script nachvollziehbar wäre, aber gut:
@echo off & setlocal
set "Datei=C:\Program Files\IBM\Lotus\Notes\notes.ini"  

set R=%temp%\Replace5.vbs
>%R%  echo F = WScript.Arguments(0)
>>%R% echo Set fso = CreateObject("Scripting.FileSystemObject")  
>>%R% echo T = fso.OpenTextFile(F).ReadAll
>>%R% echo T = Replace(T, "EnableJavaApplets=1", "EnableJavaApplets=0")  
>>%R% echo T = Replace(T, "EnableLiveConnect=1", "EnableLiveConnect=0")  
>>%R% echo T = Replace(T, "EnableJavaScript=1", "EnableJavaScript=0")  
>>%R% echo fso.CreateTextFile(F).Write T 

cscript //nologo %R% "%Datei%" 
Die letzte Zeile ist gekürzt, da ja immer nur eine Datei zu verarbeiten ist ...

[Edit] Um auch das Thema 32 oder 64 Bit (oder genauer: die jeweiligen Pfade) zu berücksichtigen, sollte es genügen, die Zeile 2 auf
set "Datei=%ProgramFiles%\IBM\Lotus\Notes\notes.ini"
abzuändern.
[/Edit]

Grüße
bastla
Member: colinardo
colinardo May 03, 2013 updated at 11:37:48 (UTC)
Goto Top
Hallo Protektor,

hier ein VB-Script mit Unterscheidung ob 64bit oder 32bit:

Dim ini_pfad
Set fso = WScript.CreateObject("Scripting.Filesystemobject")  
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")  
Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")  
For Each objOS in colOSes
	osArch = objOS.OSArchitecture
Next
If LCase(osArch) = "64-bit" Then  
	ini_pfad = "C:\Program Files (x86)\IBM\Lotus\Notes\notes.ini"  
Else
	ini_pfad = "C:\Program Files\IBM\Lotus\Notes\notes.ini"  
End If

Set f_read = fso.OpenTextFile(ini_pfad,1)
ini_text = f_read.ReadAll
f_read.Close
ini_text = Replace(ini_text,"EnableJavaApplets=1","EnableJavaApplets=0")  
ini_text = Replace(ini_text,"EnableLiveConnect=1","EnableLiveConnect=0")  
ini_text = Replace(ini_text,"EnableJavaScript=1","EnableJavaScript=0")  
Set f_write = fso.OpenTextFile(ini_pfad,2)
f_write.Write(ini_text)
f_write.Close
Set fso = Nothing

Das Script kannst du dann von einer Autostart-Batch auf den jeweiligen Rechnern aufrufen ...
Grüße Uwe

-edit-
oder du machst die Unterscheidung (32/64bit) in der Batch (s. Beitrag von Bastla):

if exist "C:\Program Files (x86)\" (  
   set "Datei=C:\Program Files (x86)\IBM\Lotus\Notes\notes.ini"  
) else (
   set "Datei=C:\Program Files\IBM\Lotus\Notes\notes.ini"  
)
Member: bastla
bastla May 03, 2013 at 10:28:50 (UTC)
Goto Top
@ colinardo
... oder gleich die Sicherheitsvariante:
for %%i in ("C:\Program Files" "C:\Program Files (x86)") do if exist "%%i\IBM\Lotus\Notes\notes.ini" cscript //nologo %R% "%%i\IBM\Lotus\Notes\notes.ini"
Grüße
bastla
Member: Protektor
Protektor May 03, 2013 at 11:04:42 (UTC)
Goto Top
ok vielen dank euch allen erstmal.

ich werde es gleich mal ausprobieren.

Gruß
protektor
Member: Protektor
Protektor May 03, 2013 at 11:36:02 (UTC)
Goto Top
Vielen dank leute.
Hat einwandfrei funktioniert.
Nochmals danke für die schnelle Hilfe und die aufgebrachte Geduld.
Habt Nachsicht, ich kenn mich in der Progammiersprache nicht sonderlich gut aus.

Gruß
Protektor