Jump to content

MAJEG

Members
  • Gesamte Inhalte

    16
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von MAJEG

  1. Danke schon mal für die schnelle Antwort.

     

    Überlegung:

    Es wird versucht über die Software OCS (Inventarisierungs/Verteilungssoftware) Pakete zu verteilen, die bei der Installation aber Administratorenrechte benötigt. Diese sind leider keine MSI Pakete, da wir ansonsten dies über GPO erledigen würden.

     

    Bei dieser OCS Software wird somit das Paket mit der Software im Hintergrund auf den Client übertragen, in weiterer Folge sollt dann das Runas-Script das Installationsscript aufrufen wobei die Installation dann im Silentmodus verläuft (ist nur im Taskmanager ersichtlich).

     

    Das Runas-Dos-Fenster wird sofort nach dem Aufruf des Installationsscripts geschlossen, somit kann auch keiner auf dieses Zugreifen.

     

     

    Dies wäre unsere Idee gewesen, sind naürlich für andere Informationen offen.

    Vermutlich gibt es für solch eine Überlegung viel einfachere Lösungen, uns ist derzeit nur diese im Kopf.

  2. Hallo Forum,

     

    könntet Ihr mir mit einer kleinen Info weiterhelfen, bitte danke.

     

    Ich hab da ein Script mit dem über eine Runas-Funktion ein anderes Script aufrufe. Bei dem Runas-Aufruf, wird User und Passwort übergeben. Ist zwar nicht sicher, jedoch wird dieses für eine einmalige Umstellung verwendet, und der eingetragen user dann wieder gelöscht.

     

    Dieses Runas-Script sollte dann eine "test.cmd" aufrufen, jedoch passiert dabei nichts. Wenn man anstatt dem "test.cmd" eine Programm wie "notepad.exe" eintragt und das script ausführt, dann wird auch das programm notepad gestartet.

    Wieso kann man kein anderes Script aufrufen, ist der aufruf falsch? oder funktioniert dies nur mit *.exe?

     

     

    Folgendes script ist vorhanden:

     

    test.vbs

    
    sUser="musteruser"
    sPass="musterpass"&"{ENTER}"
    strCmd = "test.Cmd"
    
    set WshShell = CreateObject ("WScript.Shell")
    rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & strCmd & CHR (34),1,FALSE)
    Wscript.Sleep 1000
    WshShell.AppActivate("runas.exe")
    WshShell.SendKeys sPass
    set WshShell=Nothing
    wscript.quit
    
    

     

    Als Versuchscript lautet das test.cmd wie folgt:

     

    echo "ping absetzten" >> test.txt
    ping 127.0.0.1 -n 30
    echo "ping erledigt" >> test.txt
    
    
    
    

  3. :) Die 2 Codes sind mir klar, diese hab ich verstanden.

     

    :confused:

    Nur wie kann ich die gefundenen Dateien der schleife an das Script (siehe Code so übergeben das dieser Code durchgeführt wird, dann die Schleife die nächste Datei findet, und wieder den Code durchführt?

     

    Den ich habe z.B. die Dateien:

    service.ini

    service2.ini

    service3.ini

    usw.

     

     

    Set MyFiles = CreateObject("Scripting.FileSystemObject")
    
    varDatei="C:\Programme\OCS Inventory Agent\service.ini"
    Set f = MyFiles.OpenTextFile(varDatei, 1)
    Text = f.ReadAll
    
    varSearch="Miscellaneous= /S /server:test.net /pnum:80"
    varReplace="Miscellaneous= /S /server:test.net /pnum:80 /NB"
    varReplace = varReplace & CHR(13) & "Ne Zeile unter Misc"
    varReplace = varReplace & CHR(13) & "Noch ne Zeile unter Misc"
    
    If Instr(Text,varReplace)=0 then
     Set f = MyFiles.OpenTextFile(varDatei, 2, True)
     f.Write Replace(Text, varSearch, varReplace,1,-1,1)
    End If
    

  4. Sorry, ja stimmt, habe das Besipiel mit dem Pfad C:\Programme... erläutert, weil ich ein das vorherige beispiel übernommen habe.

    Damit ich das Script testen und verstehen kann, ist es doch egal in welche Datei geschrieben wird und wio diese liegt.

     

    Wenn ich es verstanden habe und das script anwende, werden die pfad noch anpassen.

     

    Aber danke für ein Aufmerkstames lesen, es sollte in Echtbetrieb wirklich kein user im Ordner C:\Programme\.... schreiben dürfen.

    Danke Cybquest, ;)

     

    das hat super funktioniert, das einzige das ich schon mal gesucht habe ist wie man ein Enter in Textfeld ausgibt, dabei bin ich auf dies gestossen

    Chr(13) & Chr(10).

     

    Habe das Script auf dies erweitert, und es hat super funktioniert.

    varReplace = varReplace & CHR(13) & CHR(10) & "Ne Zeile unter Misc"

    varReplace = varReplace & CHR(13) & CHR(10) & "Noch ne Zeile unter Misc"

  5. Danke für die Info, das schreiben in die Datei funktioniert, jedoch wurden die Zeilen am Ende angefügt wie du auch dazugeschrieben hast, ohne Zeilenschaltung:

    [OCS_SERVICE]
    NoProxy=1
    Server=test.net
    Pnum=80
    Miscellaneous= /S /server:test.net /pnum:80 /NB
    PROLOG_FREQ=4
    OLD_PROLOG_FREQ=4
    TTO_WAIT=2940[b]Ne Zeile am Ende[/b]
    [b]Noch ne Zeile am Ende[/b]
    

     

     

     

    Ich wollte die 2 Zeilen aber nach "Miscellaneous= " einfüg

    en.

     

    Damit es so aussieht:

    [OCS_SERVICE]
    NoProxy=1
    Server=test.net
    Pnum=80
    Miscellaneous= /S /server:test.net /pnum:80 /NB
    [b]Ne Zeile am Ende[/b]
    [b]Noch ne Zeile am Ende[/b]
    PROLOG_FREQ=4
    OLD_PROLOG_FREQ=4
    TTO_WAIT=2940
    

     

    Ich habe es nur mit einer Zeile geschafft und diese auf eine Testdatei auszugeben. Hier steht der Text aber vor dem "Miscellaneous= "

     

    Const SuchText = "Miscellaneous= /S /server:test.net /pnum:80 /NB"
    Const Neu = "Ne Zeile am Ende"
    
    Const Q = "C:\Test\service.ini"
    Const Z = "C:\Test\serviceNEU.ini"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Set OldFile = fso.OpenTextFile(Q, 1)
    Lines = Split(OldFile.ReadAll, vbCrLF)
    OldFile.Close
    
    Set NewFile = fso.OpenTextFile(Z, 2, True)
    For i = 0 To UBound(Lines)
    If Instr(LCase(Lines(i)), LCase(SuchText)) Then          NewFile.WriteLine Neu
    NewFile.WriteLine Lines(i)
    Next
    NewFile.Close
    

     

    Mein Ergebnis serviceNEU.ini:

    [OCS_SERVICE]
    NoProxy=1
    Server=test.net
    Pnum=80
    [b]Ne Zeile am Ende[/b]
    Miscellaneous= /S /server:test.net /pnum:80 /NB
    PROLOG_FREQ=4
    OLD_PROLOG_FREQ=4
    TTO_WAIT=2940
    

     

    Könnte man hier z.b. eine

     

    Const Neu2 = "Noch ne Zeile am Ende"

     

    und die If Abfrage so ändern, dass diese Const auch eingefügt wird?

     

    Danke für die Hilfe

  6. Hallo Cybquest,

     

    ich habe das Script bei dem du mir geholfen hast bereits per GPO verteilt, hat wunderbar funktioniert. Danke nochmals.

     

    Jetzt hätte ich dazu eine neue Frage, hab schon in einigen Foren nachgestöbert aber so richtig bin ich nich zu einem Ende gekommen.

     

    Wie kann man das Script so umbauen das man einen Text ersetz (dies funktioniert bereits) und 2 weitere Zeilen in die Datei schreiben (gleich angefügt und ohne Zeilen in der Datei zu löschen)?

     

     

    Funktioniert das eventuell mit ??

    
    Const SuchText = "bestimmter Text" 
    Const NeuText= "einzufügender Text" 
    
    For i = 0 To UBound(Lines) 
    If Instr(LCase(Lines(i)), LCase(SuchText)) Then NewFile.WriteLine Neutext	NewFile.WriteLine Lines(i) 
    

     

    Ich wollte dies beim derzeitigen Script anfügen:

    Derzeitiger Code:

     

    Set MyFiles = CreateObject("Scripting.FileSystemObject")
    
    varDatei="C:\Programme\OCS Inventory Agent\service.ini"
    Set f = MyFiles.OpenTextFile(varDatei, 1)
    Text = f.ReadAll
    
    varSearch="Miscellaneous= /S /server:test.net /pnum:80"
    varReplace="Miscellaneous= /S /server:test.net /pnum:80 /NB"
    
    If Instr(Text,varReplace)=0 then
     Set f = MyFiles.OpenTextFile(varDatei, 2, True)
     f.Write Replace(Text, varSearch, varReplace,1,-1,1)
    End If
    

  7. @Frr. Sorry das ich nicht gleich geantwortet habe, aber es sind nicht alle Clienst WinXp. Es gibt nioch ein paar Raritäten die unter Win200 laufen.

     

    Aber trotzdem danke für die Antwort und dein angebotene Holfe. :)

    @Cybquest:

     

    Ich hätte da noch eine Frage zu vbs Scripts ->

    Kann man eine Setup.exe via vbs Script starten, und auch überprüfen ob dieses Programm bereits installiert ist?

     

    Das Programm besitzt den Namen SingleLogon und wird unter dem Standardpfad C:\Programme\SingleLogon\... installiert.

     

    Dies würde wieder via GPO auf Win2000 und WinXp Maschinen durchgeführt werden müssen. Dazu hätte ich dieses vbs Script und die Setup.exe in die GPO abgelegt und beim starten der Clients wird dieses aktiviert.

  8. @Cybquest:

     

    Danke das Script funktioniert wunderbar. Jetzt hätte ich noch eine Frage, wenn ich nun dieses Script per GPO beim starten eines Clients verteile.

     

    Wie kann man nun eine Abfrage vor das Script setzen, ob dieses schon mal durchgeführt wurde, und wenn "ja" - > dann abgebrochen wird.

     

    Sonst wird immer die die gewünschte zeile abgefragt, und durch die neue ersetzt.

     

    Danke für die Hilfe

  9. Hallo,

     

    bin in Script Programmierung ein Neuling deshalb die Frage:

     

    Wie kann man in einer ini-Datei eine Zeile ändern, oder einen Text anhängen?

    Pfad: C:\Programme\OCS Inventory Agent\service.ini

     

    Die Datei sieht wie folgt aus:

    [OCS_SERVICE]

    NoProxy=1

    Server=test.net

    Pnum=80

    Miscellaneous= /S /server:test.net /pnum:80

    PROLOG_FREQ=4

    OLD_PROLOG_FREQ=4

    TTO_WAIT=2940

     

     

    Ich bräuchte nun in der Zeile Miscellaneous einen Text hinzugefügt -> "/NP"

     

    Die neue Zeile sollte dann so aussehen:

    Miscellaneous= /S /server:test.net /pnum:80 /NP

     

    Weiters sollte man dieses Script per Gruppenrichtlinie einer Domäne verteilen können. Die Datei und der Programmpfad lautet auf allen Clients gleich.

     

    Kann mir jemand bitte weiterhelfen, Danke schön im voraus :)

×
×
  • Neu erstellen...