flowermen
Goto Top

Clientname aus Datei auslesen und mit Variable vergleichen

3 geclusterte Windows 2003 Terminalserver

Hallo ich brauche ein VBScript das mir aus einer Datei Clientnamen ausliest und mit der echten Variable %Clientname% vergleicht. Anschliesend werden bestimmten Befehle ausgeführt,z.B Wenn %Clientname% =pcxxxxx1 dann setze variable XY und installiere Drucker XYZ. Das Ganze hat den Sinn weil ich 5 Räume a 20 Terminalclients habe, die sich an 3 geclusterte Windows2003 Terminalserver anmelden, und jeder Raum einen Drucker hat, die eben nur der Benutzer benutzen soll, der auch wirklich in dem Raum angemeldet ist.

Vielen Dank für jede Hilfe

Christian Kuchlmeier

Content-Key: 8116

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

Printed on: April 26, 2024 at 04:04 o'clock

Member: NetzAdmin
NetzAdmin Mar 14, 2005 at 14:46:15 (UTC)
Goto Top
Und wieso schreibst du's dir nicht ??? *fg*

Ich mein, erwartest du ein fix fertig geliefertes Script von uns ???
Member: Flowermen
Flowermen Mar 14, 2005 at 15:02:22 (UTC)
Goto Top
weil ich eben von VBScipt programmieren nicht viel Ahnung habe, sonst wär ich ja auch nicht hier. Ich denke das ist der Sinn eines Forums, daß man sich gegenseitig hilft und nicht anmotzt.

christian
Member: NetzAdmin
NetzAdmin Mar 14, 2005 at 18:20:30 (UTC)
Goto Top
OK OK .

Wie hast du dir's vorgestellt?????
Hab ich richtig verstanden - du hast 5 * 20 Client's - und 5 Drucker ????

Dann würde ich 5 Dateien machen und in jede der Datei die Clients reinschreiben die diesen Drucker bekommen sollen.
"Printer01.INI"
clientname1
clientname3
clientname7

"Printer02.INI"
clientname2
clientname6

usw.


Dann mit einer batch Datei in den Dateien "printer01.ini" und "printer02.ini" nach %clientname% suchen - und wenn gefunden - verbinden.
Member: gemini
gemini Mar 14, 2005 at 19:23:12 (UTC)
Goto Top
Damit hier nicht nur Hilfe zur Selbsthilfe geleistet wird, eine Anregung.
Ist ein Teil aus einem anderen Script, drum passen die Variablennamen nicht.
Getestet ist es in diesem Zusammenhang auch nicht.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
' Voraussetzungen:
' Je Raum eine INI mit den Clientnamen zeilenweise
' Durchgehende Druckernamen Drucker-1, Drucker-2, Drucker-n
Option Explicit

Dim objFSO, objWshNetwork, objFile
Dim strWorkDir, strText, strLine, strPathFind, strExt, i, strPrintSRV, strPrinter
Const ForReading = 1, ForWriting = 2, ForAppending = 8

strWorkDir = "\\Pfad\zu\RaumINI"
strExt = ".ini"
strText = ""
strPathFind = %CLIENTNAME%
strPrintSRV = "PrintServer"
strPrinter = "Drucker"

Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")

For i = 1 To 5
strText = strWorkDir & i & strExt
  If objFSO.FileExists(strText) Then
  Set objFile = objFSO.OpenTextFile(strText, ForReading)
    Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
        If strLine = strPathFind Then
        Set objWshNetwork = Wscript.CreateObject("WScript.Network")
            WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\" & strPrinter & i
        End If
    Loop
    objFile.Close
  End If
i = i + 1
Next i
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Allerdings möchte ich doch mein Erstaunen zum Ausdruck bringen.
Du administrierst eine Domäne mit 100 Usern, mit Cluster, TS und wer weiß noch was und scheinst hier überhaupt keinen Ansatz gehabt zu haben.
Member: gemini
gemini Mar 14, 2005 at 19:29:40 (UTC)
Goto Top
Noch ein Ansatz, etwas eleganter face-wink

Du könntest die Eigenschaft 'location' des Computerobjektes aus dem AD verwenden.
Setzt natürlich voraus, dass das Feld auch richtig ausgefüllt ist.
Member: Flowermen
Flowermen Mar 15, 2005 at 11:43:03 (UTC)
Goto Top
Ja, so hab ichs mir auch vorgestellt, eine Batchdatei wird bei der Anmeldung des Benutzers gestartet, die in 1 Datei den Clientname mit %Clientname% vergleicht und dann wird zu einer Zeile gesprungen die den richtigen Drucker verbindet. Sollte ja irgendwie mit dem IF Then Befehl zu machen sein, oder?

christian
Member: NetzAdmin
NetzAdmin Mar 15, 2005 at 14:47:57 (UTC)
Goto Top
Hm, und warum machst du dann nicht gleich eine BatchDatei wie folgt ???


IF "%Clientname%" == "Computername1" CON2PRT /CD \\FILESERVER\PRINTERNAME
IF "%Clientname%" == "Computername2" CON2PRT /CD \\FILESERVER\PRINTERNAME
IF "%Clientname%" == "Computername3" CON2PRT /CD \\FILESERVER\PRINTERNAME
IF "%Clientname%" == "Computername4" CON2PRT /CD \\FILESERVER\PRINTERNAME
usw.