Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Logon Scrip Dateien ändern, ersetzen

Frage Microsoft Windows Netzwerk

Mitglied: 17867

17867 (Level 1)

12.01.2009, aktualisiert 13:16 Uhr, 6431 Aufrufe, 25 Kommentare

Ich möchte ein Logon Script erstellen um ein Skript zu starten, das bei der Windows Anmeldung eine "Service.ini" Datei editiert und speichert bzw. diese Datei ersetzt durch eine Datei die auf dem Logon Server liegt.
Es handelt sich um eine Datei in der ein Servername abgelegt ist, dieser Servername wurde geändert und nun soll auf jedem Windows Client (wenn er startet) diese service.ini ändern (also neuen Servernamen eintragen und speichern). Wie erstelle ich nun eine batch Datei???

service.ini sieht JETZT so aus:
PFAD: C:\Program Files (x86)\OCS Inventory Agent

[OCS_SERVICE]
NoProxy=1
Server=ceplx067
Pnum=80
Miscellaneous= /NP /server:xxx /pnum:80
PROLOG_FREQ=24
OLD_PROLOG_FREQ=1
TTO_WAIT=47580


und soll in Zukunft so aussehen:

PFAD: C:\Program Files (x86)\OCS Inventory Agent
[OCS_SERVICE]
NoProxy=1
Server=caeinventar.web.porsche.de
Pnum=80
Miscellaneous= /NP /server:xxx /pnum:80
PROLOG_FREQ=24
OLD_PROLOG_FREQ=24
TTO_WAIT=47580
Mitglied: 60730
12.01.2009 um 12:44 Uhr
Servus,

01.
fc \\server\freigabe\service.ini "C:\Program Files (x86)\OCS Inventory Agent\service.ini" 
02.
if not %errorlevel%==0 copy \\server\freigabe\service.ini "C:\Program Files (x86)\OCS Inventory Agent\service.ini" 
03.
:end
Gruß
Bitte warten ..
Mitglied: 17867
12.01.2009 um 12:51 Uhr
Fc \\server\freigabe\service.ini "C:\Program Files (x86)\OCS Inventory Agent\service.ini"
if not %errorlevel%==0 copy \\server\freigabe\service.ini "C:\Program Files (x86)\OCS Inventory Agent\service.ini"
:end

Das heisst jetzt hier das meine neue service.ini datei auf dem „Server“ im Ordner Freigabe steckt. Diese wird dann beim Windows Start vom „Server“ in das lokale Verzeichnis reinkopiert (hier: C:\Program Files (x86)\OCS Inventory Agent\service.ini).

Ist das so richtig? Das skript ersetzt also die aktuelle service.ini mit der neuen die auf dem Server unter Freigabe stehen?
Bitte warten ..
Mitglied: 60730
12.01.2009 um 12:54 Uhr
Servus,

yupp das war in der Antwort ohne beschreibung.

Überprüfe, ob Datei vom Server identisch mit der vom Client ist - wenn nicht kopiere die Serverdatei zum client.

Es gibt natürlich auch andere Wege z.B das auslesen der Datei und nachsehen, ob Porsche drinsteht usw. jedoch denke ich der FC Weg ist der schnellste und Falls sich ein anderer Wert in der Datei ändert - auch der flexibelste.

gruß
Bitte warten ..
Mitglied: 17867
12.01.2009 um 13:07 Uhr
danke dir für dein hilfe. es ist eben so das es diese service.ini datei auf jedem client gibt. Und in diesem file muss nur der server geändert werden. kann man es auch so machen das beim Start von Windows nach dieser Datei gesucht wird (suchen, weil es verscheidene installationsorte gibt, leider!) und wenn er die Datei findet diese überprüft ob der alte servername drinsteht, wenn ja soll er ersetzt werden durch den neuen, wenn er aber schon aktuell ist soll er es belassen.

SERVICE.INI:
NEUER SERVER: caeinventar.web.name.de

[OCS_SERVICE]
NoProxy=1
Server=ceplx067 (das ist der alte Servername!)
Pnum=80
Miscellaneous= /NP /server:ceplx067 /pnum:80 (das ist der alte Servername!)
PROLOG_FREQ=24
OLD_PROLOG_FREQ=1
TTO_WAIT=47580
Bitte warten ..
Mitglied: 60730
12.01.2009 um 13:28 Uhr
Servus,

du kannst natürlich auch nach der Service.ini suchen:

Jedoch kostet das suchen ansich ordentlich Zeit und von daher wäre es sinnvoller, die Suche in bestimmten Ordnern nach der ini durchzuführen.

Ergo
01.
fc \\server\freigabe\service.ini "C:\Program Files (x86)\OCS Inventory Agent\service.ini" 
02.
if %errorlevel%==2 rem echo in C:\Program Files (x86)\OCS Inventory Agent keine Service.ini 
03.
fc \\server\freigabe\service.ini "%Programfiles%\OCS Inventory Agent\service.ini" 
04.
if not %errorlevel%==0 copy \\server\freigabe\service.ini "C:\Program Files (x86)\OCS Inventory Agent\service.ini" 
05.
:end
oder noch anders:

01.
if exist "C:\Program Files (x86)\OCS Inventory Agent\service.ini" set "Pfad=C:\Program Files (x86)\OCS Inventory Agent" 
02.
if exist "%Programfiles\OCS Inventory Agent\service.ini" set "Pfad=%Programfiles%\OCS Inventory Agent" 
03.
fc \\server\freigabe\service.ini %Pfad%\service.ini"
Natürlich ist der 2. Pfad nur ein willkürlich als Beispiel herangenommener.

Gruß

Ps: Das suchen würde ich mir abschminken, denn gibt es aus irgendeinem Grund eine Service.ini in einem Pfad, der nichts mit deiner Anwendung (CAESAR?) zu tun hat, müßte auch die dann nicht nur nach dem alten Server sehen, sondern auch nach einem Wert, der Garantiert drin ist, wenn es "deine" Service.ini ist

Ergo Theoretisch machbar, aber bitte nicht im Loginscript, dass dauernd durchläuft und jede Anmeldung "blockiert"
Bitte warten ..
Mitglied: 17867
12.01.2009 um 15:22 Uhr
hey danke für deine Hilfe. Ich werde deinen Rat befolgen und nicht suchen! Ich werde dein erstes Skript nutzen um die Konfigurationsdatei zu erstzen. Aber eine Verfeinerung hätte ich noch. Kann man es so machen:

1. Rechner meldet sich an
2. Überprüfung ob in der Datei C:\Program Files (x86)\OCS Inventory Agent\service.ini der Server XXX drinsteht
3. Wenn nicht, erst dann soll die neue service.ini von Netlogon Server kopiert werden.

Hiermit würde erst ne Überprüfung stattfinden ob der Server aktualisiert wurde. Wenn er es ist so muss keine konfigurationsdatei auf den client kopiert werden. wenn aber in dieser Datei noch der alte drinsteht erst dann wird vom Netlogon Server auf den client kopiert.
Bitte warten ..
Mitglied: 60730
12.01.2009 um 15:33 Uhr
Servus für verfeinerungen bin ich ja grundsätzlich immer offen

Wenn du mal die Zeile(n) mit dem FC genauer ansiehst

  • FC ist ein Befehl der Filecompare in Langform lauten würde.

Ergo überprüft das Script bereits, ob die Datei auf dem Server identisch mit der vom Client ist und kopiert nur, wenn Sie nicht identisch ist

Gruß
Bitte warten ..
Mitglied: 17867
12.01.2009 um 15:40 Uhr
vergleicht sie auch den Inhalt der datei???also ob der inhalt gleich ist oder ob nur eine datei mit namen service.ini besteht???
Bitte warten ..
Mitglied: 60730
12.01.2009 um 15:58 Uhr
Zitat von 17867:
vergleicht sie auch den Inhalt der datei???also ob der inhalt gleich
ist oder ob nur eine datei mit namen service.ini besteht???



01.
rem vergleiche \\server\freigabe\service.ini mit "C:\Program Files (x86)\OCS Inventory Agent\service.ini" 
02.
fc \\server\freigabe\service.ini "C:\Program Files (x86)\OCS Inventory Agent\service.ini" 
03.
rem wenn Fehlerwert 2 ist die Datei nicht vorhanden 
04.
if %errorlevel%==2 rem echo in C:\Program Files (x86)\OCS Inventory Agent keine Service.ini 
05.
rem vergleiche \\server\freigabe\service.ini  mit "%Programfiles%\OCS Inventory Agent\service.ini" 
06.
fc \\server\freigabe\service.ini "%Programfiles%\OCS Inventory Agent\service.ini" 
07.
rem wenn Fehler nicht 0 (Dateien identisch) dann kopiere 
08.
if not %errorlevel%==0 copy \\server\freigabe\service.ini "C:\Program Files (x86)\OCS Inventory Agent\service.ini" 
09.
:end
Es wird also zuerst verglichen und im Fall eines Falles kopiert.

edit
Wobei untenstehender Schnippsel "Eleganter" formuliert ist und im Prinzip das gleiche macht:
01.
rem suche service.ini in "C:\Program Files (x86)\OCS Inventory Agent\" wenn ja setzte Variable Pfad dorthin. 
02.
if exist "C:\Program Files (x86)\OCS Inventory Agent\service.ini" set "Pfad=C:\Program Files (x86)\OCS Inventory Agent" 
03.
rem suche service.ini in "%Programfiles%\OCS Inventory Agent\" wenn ja setzte Variable Pfad dorthin. 
04.
if exist "%Programfiles\OCS Inventory Agent\service.ini" set "Pfad=%Programfiles%\OCS Inventory Agent" 
05.
rem vergleiche die Serverdatei mit der aus dem Pfad 
06.
fc \\server\freigabe\service.ini "%Pfad%\service.ini" 
07.
rem auch hier wieder wenn Fehler ungleich 0 kopiere 
08.
if not %errorlevel%==0 copy \\server\freigabe\service.ini "%Pfad%\service.ini"
Gruß
Bitte warten ..
Mitglied: 17867
20.01.2009 um 13:43 Uhr
hi,

bevor ichs nun auf den server lege wollt ich fragen ob das so nun alles ok ist....alle leerzeichen da? alle befehle richtig???Gross/Kleinschreibung???führt er das nun aus????
noch eins brauche ich. Er soll noch im folgendem Pfad nach dieser datei suchen: C:\Programme\OCS Inventory Agent\. Da es eben diese zwei Ordner gibt sollen die durchsucht werden.

rem suche service.ini in "C:\Program Files (x86)\OCS Inventory Agent\" wenn ja setzte Variable Pfad dorthin.
if exist "C:\Program Files (x86)\OCS Inventory Agent\service.ini" set "Pfad=C:\Program Files (x86)\OCS Inventory Agent"
rem suche service.ini in "%Programfiles%\OCS Inventory Agent\" wenn ja setzte Variable Pfad dorthin.
if exist "%Programfiles\OCS Inventory Agent\service.ini" set "Pfad=%Programfiles%\OCS Inventory Agent"
rem vergleiche die Serverdatei mit der aus dem Pfad
fc \\server\freigabe\service.ini %Pfad%\service.ini"
rem auch hier wieder wenn Fehler ungleich 0 kopiere
if not %errorlevel%==0 copy \\server.tech.test.domain.com\netlogon\service.ini %Pfad%\service.ini"
Bitte warten ..
Mitglied: 17867
20.01.2009 um 14:04 Uhr
gerade ausprobiert.....funktioniert nicht ich sehe zwar das auf die datei zugegriffen wird aber der alte inhalt der datei ist immer noch gleich.....das heisst die alte datei wird nicht ersetzt obbwohl sie sich von der zu ersetzenden datei unterscheidet...hiiiifleeee
Bitte warten ..
Mitglied: 60730
20.01.2009 um 14:07 Uhr
Zitat von 17867:
gerade ausprobiert.....funktioniert nicht ich sehe zwar das auf
die datei zugegriffen wird aber der alte inhalt der datei ist immer
noch gleich.....das heisst die alte datei wird nicht ersetzt obbwohl
sie sich von der zu ersetzenden datei unterscheidet...hiiiifleeee

Servus,

"was" siehst du und willst du das, was du sieht uns vorenthalten?

Kannst du überhaupt den Dateinamen ändern?
Liegt ein Schreibschutz drauf, weil das Program xyz gerade darauf zugreift?
Hat der Benutzer überhaupt schreibrechte auf %programfiles%\xyz?

Du wilst .hiiiifleeee - gut - ich will mehr input.

Gruß
Bitte warten ..
Mitglied: 17867
20.01.2009 um 14:22 Uhr
Also nochmals erklärt dann is ales klaro)) Es sieht folgendermassen aus:

Habe 80 Rechner auf denen es eine service.ini gibt. Diese liegt bei manchen Rechner in:
C:\Program Files (x86)\OCS Inventory Agent\service.ini
oder in
C:\Programme\OCS Inventory Agent\service.ini

Genau in dieser Datei steht ein Server drin sowie PROLOG_FREW und OLD_PROLOG_FREW die nun ersetzt werden sollen. so nun will ich ein batch haben das dies für mich automatisch ändert und nicht händisch. eigentlich muss nur der server abgeändert werden auf allen 80 Rechnern, damit sich die clients beim nächsten windows start am neuen server anmelden und nich mehr am alten.

alte service.ini sieht so aus:
[OCS_SERVICE]
NoProxy=1
Server=server.de
Pnum=80
Miscellaneous= /NP /server:server.de /pnum:80
PROLOG_FREQ=24
OLD_PROLOG_FREQ=24
TTO_WAIT=41640

neue service.ini soll so aussehen:
[OCS_SERVICE]
NoProxy=1
Server=domain.server.de
Pnum=80
Miscellaneous= /NP /server:domain.server.de /pnum:80
PROLOG_FREQ=1
OLD_PROLOG_FREQ=1
TTO_WAIT=41640

Natürlich haben alle User keine Admin rechte und deswegen klappt denke ich mal auch das Skript nicht. Ich habe mich aber mal als Admin angemeldet an einem Rechner und das Skript selber gestartet - es tat sich nichts ausser das drauf zugegriffen worden ist ohne irgendeine aktion. Auf diese Datei wird nicht zugegriffen, nur beim Systemstart um sich am Server zu registrieren (is ja ein inventar tool). Admin kann datei editieren, user nicht. So nun habe ich alles erklärt - aber habe noch keine Lösung
Bitte warten ..
Mitglied: 17867
20.01.2009 um 14:24 Uhr
Zitat von 17867:
Also nochmals erklärt dann is ales klaro)) Es sieht
folgendermassen aus:

Habe 80 Rechner auf denen es eine service.ini gibt. Diese liegt bei
manchen Rechner in:
C:\Program Files (x86)\OCS Inventory Agent\service.ini
oder in
C:\Programme\OCS Inventory Agent\service.ini

Genau in dieser Datei steht ein Server drin sowie PROLOG_FREW und
OLD_PROLOG_FREW die nun ersetzt werden sollen. so nun will ich ein
batch haben das dies für mich automatisch ändert und nicht
händisch. eigentlich muss nur der server abgeändert werden
auf allen 80 Rechnern, damit sich die clients beim nächsten
windows start am neuen server anmelden und nich mehr am alten.

alte service.ini sieht so aus:
[OCS_SERVICE]
NoProxy=1
Server=server.de
Pnum=80
Miscellaneous= /NP /server:server.de /pnum:80
PROLOG_FREQ=24
OLD_PROLOG_FREQ=24
TTO_WAIT=41640

neue service.ini soll so aussehen:
[OCS_SERVICE]
NoProxy=1
Server=domain.server.de
Pnum=80
Miscellaneous= /NP /server:domain.server.de /pnum:80
PROLOG_FREQ=1
OLD_PROLOG_FREQ=1
TTO_WAIT=41640
(DIESE NEUE SERVICE.INI liegt bereits auf dem Netlogon server, dachte am besten ist es die alten dateien auf den clients durch diese zu ersetzen.)

Natürlich haben alle User keine Admin rechte und deswegen klappt
denke ich mal auch das Skript nicht. Ich habe mich aber mal als Admin
angemeldet an einem Rechner und das Skript selber gestartet - es tat
sich nichts ausser das drauf zugegriffen worden ist ohne irgendeine
aktion. Auf diese Datei wird nicht zugegriffen, nur beim Systemstart
um sich am Server zu registrieren (is ja ein inventar tool). Admin
kann datei editieren, user nicht. So nun habe ich alles erklärt -
aber habe noch keine Lösung
Bitte warten ..
Mitglied: 60730
20.01.2009 um 15:03 Uhr
Servus,

also folgendes muß funktionieren:

Das Script muß mit Adminrechten laufen - erst wenn es "funktioniert" wird weiter spekulatiert - wie es weitergeht (Computerstartupscript oder PSexec)

Meine Frage:

"was" siehst du und willst du das, was du sieht uns vorenthalten?
bezog sich auf diese Zeile:
ich sehe zwar das auf die datei zugegriffen wird

Und irgendwie finde ich da keine Antwort - die hast du ganz gut versteckt oder vergessen?

Btw: Ich hab dir 2 Varianten zur Verfügung gestellt - welche benutzt du?

Gruß
Edit:
Was ist der Output - wenn du als Admin dieses Script laufen läßt?

01.
rem suche service.ini in "C:\Program Files (x86)\OCS Inventory Agent\" wenn ja setzte Variable Pfad dorthin. 
02.
if exist "C:\Program Files (x86)\OCS Inventory Agent\service.ini" set "Pfad=C:\Program Files (x86)\OCS Inventory Agent" 
03.
rem suche service.ini in "%Programfiles%\OCS Inventory Agent\" wenn ja setzte Variable Pfad dorthin. 
04.
if exist "%Programfiles\OCS Inventory Agent\service.ini" set "Pfad=%Programfiles%\OCS Inventory Agent" 
05.
rem vergleiche die Serverdatei mit der aus dem Pfad 
06.
fc \\server\freigabe\service.ini "%Pfad%\service.ini" 
07.
rem auch hier wieder wenn Fehler ungleich 0 kopiere 
08.
if not %errorlevel%==0 copy \\server\freigabe\service.ini "%Pfad%\service.ini" 
09.
echo %Pfad% 
10.
pause
Bitte warten ..
Mitglied: 17867
20.01.2009 um 15:21 Uhr
also was ich sehe ist folgendes. Wenn ich das Skript starte (manuell, lokal) auf dem client dann sehe ich das die Datei geändert worden ist (im Explorer unter modified). also findet ein Zugriff statt. Doch wenn ich in meine konfig datei reinschaue dann sind immer noch die alten werte drin.
PS: ich benutze die letzte DAtei die du gepostet hast.
Bitte warten ..
Mitglied: 60730
20.01.2009 um 15:41 Uhr
Servus,

das letzte mal, das ich dir auf eine Antwort schreibe - die komplett ohne Zeilenschaltung (Absätze) von dir geschrieben wurde.

Ich hab keinen Bock auf Augenkrebs

  • Starte eine Dosbox
  • schiebe die letzte Batch von mir in diese Dosbos
  • Schreibe das, was die Dosbos ausgibt - hier als Antwort rein.

Gruß
Bitte warten ..
Mitglied: 17867
20.01.2009 um 16:03 Uhr
@ECHO OFF
REM This batch program will install the OCS Service
REM and copy the initial service.ini that directory
REM in program files used by OCS
REM
REM first, check if directory exists, if so, service is already installed
:begin
ECHO Checking to see if OCS Service is Installed...
IF NOT EXIST "C:\Program Files (x86)\OCS Inventory Agent" GOTO install
ECHO Service already installed, copy service.ini to OCS directory...
copy "\\server\service.ini" "C:\Program Files (x86)\OCS Inventory Agent"
ECHO Service Installed
:stopstart
ECHO stopping OCS service
net stop "ocs inventory"
ECHO starting OCS Service
net start "ocs inventory"
IF ERRORLEVEL 0 GOTO end
REM
REM Install the OCS Service
REM
:install
ECHO OCS Directory Not Found, Installing OCS Service...
\\\\server\netlogon\OcsAgentSetup.exe /np /install IF ERRORLEVEL 0 GOTO :begin
:end
ECHO All Done!
pause
Bitte warten ..
Mitglied: 60730
20.01.2009 um 16:11 Uhr
Servus,

"schönes" Script - aber das hat mit dem, das ich für dich geschrieben habe - wohl eher weniger zu tun....

Du fragst ab jetzt besser deinen Ausbilder, ich hab die Lust verloren bei dir dauernd Nasebohrenderweise
ausführlich geREMte Scripts - die quasi selbsterklärend sind - noch weiter zu erklären.

Meine freiwillige Hilfe zur Selbsthilfe hab ich mehr als einmal erfüllt.
Von dir kam da leider nie das zurück, was ich mir erhofft habe.

Gruß
Bitte warten ..
Mitglied: 17867
20.01.2009 um 16:14 Uhr
C:\>"C:\Dokumente und Einstellungen\x106883\Desktop\Neu.bat"

C:\>if exist "C:\Program Files (x86)\OCS Inventory Agent\service.ini" set "Pfad=
C:\Program Files (x86)\OCS Inventory Agent"
Syntaxfehler.

C:\>if exist "Programfiles\OCS Inventory Agent"

C:\>


BAT-DATEI:
if exist "C:\Program Files (x86)\OCS Inventory Agent\service.ini" set "Pfad=C:\Program Files (x86)\OCS Inventory Agent"
if exist "%Programfiles\OCS Inventory Agent\service.ini" set "Pfad=%Programfiles%\OCS Inventory Agent"
fc \\server\freigabe\service.ini "%Pfad%\service.ini"
if not %errorlevel%==0 copy \\server\freigabe\service.ini "%Pfad%\service.ini"
echo %Pfad%
pause
Bitte warten ..
Mitglied: 17867
20.01.2009 um 16:18 Uhr
hey ich bin sehr für deine hilfe dankbar, nur hat es leider nicht geklappt das skript. bei dem hier wird die datei ersetzt und geprüft ob das OCS schon drauf ist...wenn nicht wird es installiert.

dein skript werde ich noch zum laufen bekommen..da bin ich hartnäckig
Bitte warten ..
Mitglied: 60730
20.01.2009 um 16:22 Uhr
passt schon...

hinter %Programfiles fehlte ein %
überall wo
\\server\freigabe\service.ini
steht - funktioniert das script logischerweised nicht, außer du hast einen Server namens Server und eine Freigabe namens Freigabe...

01.
if exist "C:\Program Files (x86)\OCS Inventory Agent\service.ini" set "Pfad=C:\Program Files (x86)\OCS Inventory Agent" 
02.
if exist "%Programfiles%\OCS Inventory Agent\service.ini" set "Pfad=%Programfiles%\OCS Inventory Agent" 
03.
fc \\server\freigabe\service.ini "%Pfad%\service.ini" 
04.
if not %errorlevel%==0 copy \\server\freigabe\service.ini "%Pfad%\service.ini" 
05.
echo %Pfad% 
06.
pause
Bitte warten ..
Mitglied: 17867
20.01.2009 um 16:42 Uhr
ahaaaaaaa interessant es funktioniert))) lag wohl wirklich am %...DAAAAANNKKEEEEe
(aber funktioniert nur wenn es der admin macht....nur is es ja so das sich der user anmeldet und dieses skript gestartet wird vom logon server...der user hat ja bekanntlich keine rechte...gibts dazu ne lösung???

genau so wollte ich es haben (vorausgesetzt das user/admin Problem kann behoben werden.
sag mal kann ich da noch 2 dinge einbauen?
er soll in zwei "möglichen" Installationsverzeichnissesn suchen:

1.
wie gewohnt : C:\Program Files (x86)\OCS Inventory Agent\ [native Maschinen]
aber auch in: C:\Programme\OCS Inventory Agent\ [Vmware WinXP]


2.
überprüfen ob OCS bereits installiert ist. unter:
C:\Program Files (x86)\
C:\Programme\
wenn nicht soll die installationsdatei auf dem server ausgeführt werden.
(besteht die Möglichkeit die installation ohne die Aktion des Users installieren zu lassen und 2 dinge automatisiert dem installationsprogramm zu übergeben??? diese wären:
Server Name: domain.server.de
no proxy (Häckchen setzen!)
Bitte warten ..
Mitglied: 60730
20.01.2009 um 17:31 Uhr
Zitat von 17867:
ahaaaaaaa interessant es funktioniert))) lag wohl wirklich am
%...DAAAAANNKKEEEEe
(aber funktioniert nur wenn es der admin macht....nur is es ja so das
sich der user anmeldet und dieses skript gestartet wird vom logon
server...der user hat ja bekanntlich keine rechte...gibts dazu ne
lösung???

Nachdem das Script nun ansich funktioniert - kann an der weiter "verbreitung" geforscht werden....
Aber ich sehe - wir vergessen mal alles bisherige und du nimmst nun dieses:

01.
:para 
02.
@setlocal 
03.
@Set "quelle=%logonserver%\netlogon" 
04.
echo check for installdir 
05.
if exist "C:\Program Files (x86)\OCS Inventory Agent\service.ini" set "Pfad=C:\Program Files (x86)\OCS Inventory Agent" && goto update 
06.
if exist "%Programfiles%\OCS Inventory Agent\service.ini" set "Pfad=%Programfiles%\OCS Inventory Agent" && goto update 
07.
 
08.
:install 
09.
ECHO OCS Directory Not Found, Installing OCS Service... 
10.
start /wait %quelle%\OcsAgentSetup.exe /np /install 
11.
 
12.
:update 
13.
ECHO stopping OCS service 
14.
net stop "ocs inventory" 
15.
fc \\server\freigabe\service.ini "%Pfad%\service.ini"   
16.
if not %errorlevel%==0 copy %quelle%\service.ini "%Pfad%\service.ini" 
17.
ECHO starting OCS Service 
18.
net start "ocs inventory" 
19.
IF ERRORLEVEL 0 GOTO end 
20.
 
21.
:end 
22.
ECHO All Done!

genau so wollte ich es haben (vorausgesetzt das user/admin Problem
kann behoben werden.
sag mal kann ich da noch 2 dinge einbauen?
er soll in zwei "möglichen"
Installationsverzeichnissesn suchen:

1.
wie gewohnt : C:\Program Files (x86)\OCS Inventory Agent\ [native
Maschinen]
aber auch in: C:\Programme\OCS Inventory Agent\ [Vmware WinXP]

Bitte - lass mich das nicht dauernd wiederholen, das Script sucht doch schon seit 12.1 in den beiden Ordnern...
Wenn ich merke, das ohne denken nur copy & paste gemacht wird und immer wieder die gleiche Frage gestellt und beantwortet wird...
Verstehst du das etwas?
Mein Wissen, das ich zur Verfügung stelle, hab ich auch nicht durch Daumenlutschen bekommen ...

2.
überprüfen ob OCS bereits installiert ist. unter:
C:\Program Files (x86)\
C:\Programme\
wenn nicht soll die installationsdatei auf dem server ausgeführt
werden.
(besteht die Möglichkeit die installation ohne die Aktion des
Users installieren zu lassen und 2 dinge automatisiert dem
installationsprogramm zu übergeben??? diese wären:
Server Name: domain.server.de
no proxy (Häckchen setzen!)

Die möglichkeit besteht, frag dazu den Hersteller nach den Parametern für silent install.
Aber ich dachte, die Daten stehen in der Service.ini

Gruß und nimm meinen Rat zu Herzen, ich überlege wirklich - ob ich ein selbstgespräch mit einem Lernresistenten habe.

Dein weiteres vorgehen ist also nach Computerstartupscripten und psexec zu googeln
Und dir selber eine Meinung zu bilden, ob du es per Computerstartupscript oder psexec lösen wirst.

Meine Gedanken sind bei dir, meine Finger und mein Hirn schweigen aber
Bitte warten ..
Mitglied: 17867
21.01.2009 um 15:23 Uhr
trotzdem danke für deine grosse hilfe. mein kollege der die batch skripte schreibt ist leider krank, ich kenne mich wenig aus damit deswegen so viele fragen.

naja das batch skript funktioniert einwandfrei im admin account lokal

Meine nächste Hürde wird es sein das Skript auf einem entfernten Server (Netlogon-Server abzulegen) und das es von dort aus ausgeführt wird wenn sich ein User ohne Adminrechte anmeldet.

Ich muss wohl ein weiteres batch skript schreiben (runas etc.) um meine eigentliche batch datei als admin vom Netlogon Server auszuführen ohne eine interaktion des users, denn die service.ini lässt sich nur vom admin editieren bzw. ersetzen.

recherchiere nun nach computerstartupskripten sowie psexec...danke für den tipp. hoffe ich bekomm das hin
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Per Batch FTP-Server Dateien ändern (1)

Frage von Marlon1 zum Thema Batch & Shell ...

Batch & Shell
gelöst For f - In vielen Dateien Komma durch Punkt ersetzen (2)

Frage von alleedx zum Thema Batch & Shell ...

VB for Applications
gelöst Wie mittels VBA beim Import von CSV dateien das Format aller Zellen auf "Zahl" ändern? (2)

Frage von Glibber4 zum Thema VB for Applications ...

Batch & Shell
gelöst XML-Datei: Pfade suchen, verlinkte Dateien kopieren und Pfade ändern (4)

Frage von ELEVATOR zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...