d-farm
Goto Top

Ein Anmeldeskript mit KiXtar zum Verteilen von Desktopverknüpfungen für zwei Terminalserverfarmen

Hallo zusammen,

ich habe ein kleines Problem und würde dies gerne über KiXtart lösen.
Bin hierbei leider noch ein Neuling und bräuchte etwas Unterstützung.

Umgebung:

Terminalserverfarm 1 mit 40 Servern (2003 Datacenter) - Citrix
Terminalserverfarm 2 mit 5 Servern (2008R2 Datacenter) - Citrix
(beide Farmen befinden sich in der gleichen Domäne / gleichem Netzt es gibt nur ein Anmeldekonto pro User)

Momentan nutze ich als Test dieses Anmeldeskript mit KiXtart um eine einzelne Verknüpfung auf den Desktop des Users zu verteilen
und ein logoff.cmd zur Löschung bei der Abmeldung:

[logon.cmd]
%logonserver%\netlogon\kix32.exe %logonserver%\netlogon\gl.kix

[gl.kix]
use Q: "\\servername\freigabe"
use R: "\\servername\desktop$\%username%\desktop"
if ingroup("Programm_xy") copy Q:\xy.lnk R:\
endif
use Q: /delete
use R: /delete

[logoff.cmd]
del \\servername\desktop$\%username%\desktop\xy.lnk


Ich möchte das Anmeldeskript nun gerne etwas verbessern und in mehrere Abschnitte aufteilen z.b .:


1.Prüfung in welcher Farm ist der User angemeldet? (evtl. über Hostname oder IP)
- Aufbau Hostname Farm 1 = Servername-XA-PVS001 bis Servername-XA-PVS040
- Aufbau Hostname Farm 2 = Servername-XA6-PVS001 bis Servername-XA6-PVS005
- Alle Server befinden sich in der gleichen IP Range 192.168.1.0 / 24

2.Nachdem man nun weiß auf welcher Farm der User angemeldet ist soll das entsprechende KiXtart Skript abgearbeitet werden
Farm1.kix (Prüfung – Löschen – Verteilen)
Farm2.kix (Prüfung – Löschen – Verteilen)

Prüfung auf Mitgliedschaft in der Gruppe, Prüfung auf Vorhandensein der Verknüpfung, wenn die Verknüpfung nicht vorhanden ist soll sie erstellt oder Kopiert werden und
wenn der User nicht in der Gruppe ist aber sich die Verknüpfung auf den Desktop befindet soll diese gelöscht werden.
Im groben und ganzem müssen bei der Anmeldung ca. 10 Gruppenmitgliedschaften geprüft und danach die Verknüpfungen verteilt oder gelöscht werden.

Wie kann ich das ganze Anpassen um dieses Ziel zu erreichen?

Vorab schon mal vielen Dank.

Content-ID: 167756

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

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

60730
60730 09.06.2011 um 14:26:59 Uhr
Goto Top
Moin,

tja - viele Wege führen nach ROM....


 echo %computername%| find "XA-PV" && call %logonserver%\netlogon\kix32.exe %logonserver%\netlogon\Farm1.kix  
 echo %computername%| find "XA6-PV" && call %logonserver%\netlogon\kix32.exe %logonserver%\netlogon\Farm2.kix  

Wäre ein Beispiel, dass den Nachteil hat - du hast 2 kix Scripte, die du immer beide ändern mußt....

Das "dumme" ist - du hast die Servernamen komplett schräg benamst...
Servername-XA6-PVS001 bis Servername-XA6-PVS005

Also irgendwo mittendrin das Erkennungsmerkmal und nicht an einer bestimmten stelle.

SELECT
		CASE LEFT(@WKSTA,6) = "XA-PVS"  
			?"Farm1"  
ENDSELECT

Adhock fällt mir nämlich kein eleganter Weg ein, nur die Stelle 3-6 auszulesen.
Von daher mußt du wohl die doppelten Scripte nutzen (war ja eh deine Intension)


Gruß
D-Farm
D-Farm 09.06.2011 um 15:30:31 Uhr
Goto Top
Hallo Timo,

schon mal vielen Dank für die Info. Die Servernamen ergeben sich aus der Citrixumgebung in der sie sich befinden und da habe ich
noch nicht daran gedacht das diese durch ein Script auseinander gehalten werden müssten.
( XenApp 5 - Server2003 Farm und XenApp6 - Server 2008R2 Farm).

echo %computername%| find "XA-PV" && call %logonserver%\netlogon\kix32.exe %logonserver%\netlogon\Farm1.kix  
echo %computername%| find "XA6-PV" && call %logonserver%\netlogon\kix32.exe %logonserver%\netlogon\Farm2.kix  

Wird diese Anfrage bei nicht übereinstimmenden Computernamen abgebrochen?


Könntest Du mir bitte bei den *.kix Dateien auch behilflich sein?
Farm1.kix (Prüfung – Löschen – Verteilen der Icons)
Farm2.kix (Prüfung – Löschen – Verteilen der Icons)

Prüfung auf Mitgliedschaft in der Gruppe, Prüfung auf Vorhandensein der Verknüpfung, wenn die Verknüpfung nicht vorhanden ist soll sie erstellt oder Kopiert werden und
wenn der User nicht in der Gruppe ist aber sich die Verknüpfung auf den Desktop befindet soll diese gelöscht werden.
Im groben und ganzem müssen bei der Anmeldung ca. 10 Gruppenmitgliedschaften geprüft und danach die Verknüpfungen verteilt oder gelöscht werden.


Gruß D-Farm
60730
60730 09.06.2011 um 21:19:48 Uhr
Goto Top
moinsen,

Die Servernamen ergeben sich aus der Citrixumgebung in der sie sich befinden und da habe ich noch nicht daran gedacht das diese durch ein Script auseinander gehalten werden müssten.

So wie ich das sehe ist das (die Serverfarm) was neues - und ganz ehrlich...
Servername-XA-PVS001 bis Servername-XA-PVS040
Bei meinen Systemen ist die Ordnungszahl am Ende und alles zusammen ergibt einen eindeutigen Servername
FirmaStandortFunktionzahlenkombi
ADMDWeb01 wäre im übertragenen Sinn z.B der erste Webserver von Administrator.de in Düsseldorf - Beispiel aus der Luft gegriffen.

  • von daher -einen Server umzubenamsen macht kaum Stress, den ganzen zusätzlichen Firlefanz deswegen einfach kappen, du wirst dich nur ärgern und unnötig komplexe Loginscripte hasse ich.

Wird diese Anfrage bei nicht übereinstimmenden Computernamen abgebrochen?
  • Wenn ich Demoschnippsel schreibe, dann verlange ich - ohne das explizit zu schreiben, dass derjenige, dem ich unter die Arme greife - das probiert.
(Du wirst hier niemals ein @echo off von mir in einem Script lesen)

Grundsätzlich stellt sich auch bei deiner anderen Frage die Überlegung - welcher Weg nach Rom.

  • Entweder du fragst tatsächlich das ab, was du oben beschreibst, oder du machst immer Tabularasa.

  • alle Links löschen
  • Wenn in Gruppe, dann Link anlegen

Das "kann" deutlich schneller sein, als das oben skizzierte, oder aber eben nicht - aber das mußt du selber testen.

if ingroup wäre übrigens der Ansatz Gruppenspezifische Anweisungen durchzukauen.

Gruß
D-Farm
D-Farm 09.06.2011 um 23:36:47 Uhr
Goto Top
Moin Timo,

die Umbenennung der Server ist leider nicht in 5 Minuten erledigt und zieht auch einen größeren Arbeitsaufwand nach sich (die Server sind unter Citrix Provisioniert und werden über vDisk‘s
ausgerollt). So muss ich momentan mit der Bezeichnung der Server leben, aber zum Ende des Jahres soll die 2003 Farm der 2008 weichen und dann gibt es nur noch eine.
(wobei das auch eindeutige Servernamen sind / XA = XenApp Server - PVS (provisionierter Server) 001 - 040 (Nummer des Servers und XA6 bedeutet halt Betriebssystem 2008R2 da XenApp6 nur mit diesem BS funktiniert)

Abgesehen davon kann ich mit dem Codeschnipsel zum Unterscheiden der Farmen leben (sofern er das macht was er soll face-wink ).

Wenn ich Demoschnippsel schreibe, dann verlange ich - ohne das explizit zu schreiben, dass derjenige, dem ich unter die Arme greife - das probiert

Naja, das sollte Morgen geschehen – möchte den zweiten Teil noch fertig bekommen und mit testen.

Wo sich wieder die Frage stellt: Wie kann ich über if ingroup diese Abfrage (Prüfung – Löschen – Verteilen) tätigen?

* alle Links löschen
  • Wenn in Gruppe, dann Link anlegen

- Alle *.lnk können nicht gelöscht werden, da der User ja noch eigene Verknüpfungen auf den Desktop hat
- Wenn ich die Verknüpfungen einzeln über das Logoff.cmd entferne lasse ist das doppelte Pflegearbeit und bei
jeder Anmeldung neu erstellen lasse wird sich die Anordnung der Verknüpfungen auf dem Desktop jedes Mal
erneuern und das werden unsere User nicht gerade schön finden wenn sie die Icon’s auf dem Desktop selbst
angeordnet haben.


Also wäre so ein Kixtart Skipt glaube ich wohl das beste und ich spare mir noch das Logoff.cmd

Prüfe ob der User in der Gruppe ist
Nein > prüfe ob das Icon auf dem Desktop ist "Ja" = Icon Löschen und wenn "Nein" = weiter zur nächsten if ingroup Abfrage
Ja > prüfe ob das Icon auf dem Desktop ist "Ja" = weiter zur nächsten if ingroup Abfrage und wenn "Nein" = erstelle / kopiere das Icon auf den Desktop und danach weiter zur nächsten if ingroup Abfrage


(Bin natürlich für Verbesserungsvorschläge immer offen)
Danke & Gruß D-Farm
60730
60730 10.06.2011 um 08:39:48 Uhr
Goto Top
Moin,

ganz kurz und knapp (weil mir die Zeit wegrennt)

  • Ich lege keine Links auf dem Desktop ab, dazu gibt es das Startmenü.
Nix ist grausamer, als [Windoof] [D] drücken zu müssen, um ein Programm zu starten.
  • Links die eine bestimmte [!namen.lnk] haben - die kann ich doch löschen, wie ich mag face-wink

  • Für die Fiesen Sonderfälle gibt es ja auch "Arange by Penis" face-wink

gruß
D-Farm
D-Farm 10.06.2011 um 09:30:16 Uhr
Goto Top
Moin Timo,

•Ich lege keine Links auf dem Desktop ab, dazu gibt es das Startmenü.
Nix ist grausamer, als [ Windows ] [D] drücken zu müssen, um ein Programm zu starten.

•Links die eine bestimmte [!namen.lnk] haben - die kann ich doch löschen, wie ich mag


Vielen Dank für die Infos, aber die Frage ist doch nicht wie jemand anderes (in diesem Fall Du) seine Icon's verteilt oder diese nicht auf dem Desktop ablegt sondern wie derjenige der den Post öffnet dies gerne tun würde und hier im Forum um Hilfe bittet um dieses Ziel zu erreichen.

Bitte nicht falsch verstehen, ich danke Dir für die Hilfe zur Selektierung der Hostnamen, möchte aber immer noch die Icon's auf dem Desktop haben. Wenn ich diese mit den Kix Skrip auch noch im Startmenü ablegen kann umso besser.

Wie gesagt ich bin für Vorschläge offen, aber das Ziel möchte ich im Auge behalten.


Gruß D-Farm