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-ID: 8116

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

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

NetzAdmin
NetzAdmin 14.03.2005 um 15:46:15 Uhr
Goto Top
Und wieso schreibst du's dir nicht ??? *fg*

Ich mein, erwartest du ein fix fertig geliefertes Script von uns ???
Flowermen
Flowermen 14.03.2005 um 16:02:22 Uhr
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
NetzAdmin
NetzAdmin 14.03.2005 um 19:20:30 Uhr
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.
gemini
gemini 14.03.2005 um 20:23:12 Uhr
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.
gemini
gemini 14.03.2005 um 20:29:40 Uhr
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.
Flowermen
Flowermen 15.03.2005 um 12:43:03 Uhr
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
NetzAdmin
NetzAdmin 15.03.2005 um 15:47:57 Uhr
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.