Rechner Inventarisierung, Login Skript und Login Dokumentation mit Kix und Active Directory
CouchCoach (Level 1) - Jetzt verbinden
18.01.2006, aktualisiert 18.03.2016, 71724 Aufrufe, 35 Kommentare
Dieses Tutorial soll ein Beispiel für ein Domänen Anmelde- und Abmeldeskript sein, welches als nettes Abfallprodukt noch einige Rechner Informationen über die Hard- und Software erfasst.
Rechner Inventarisierung Login Skript und Dokumentation mit Kix und Active Directory.
Jeder Admin einer Domäne ist interessiert an den aktuellen Rechner Daten in seinem Netz. Aus diesem Grund habe ich vor drei bis vier Jahren mit Kix begonnen Skripte zu schreiben. Ich habe hier ein Kix Skript für die Anmeldung gebastelt, welches mir beim Login der User die Daten, der Rechner und die Infos wer sich An- bzw. Abgemeldet hat, in zwei Log-Files schreibt. Je eine für die Rechner Daten und eine für die Anmeldeinformationen.
Somit habe ich immer aktuelle Daten über die Konfiguration meiner Rechner im Netz und habe für jeden Tag eine Datei mit den An- und Abmeldungen. Ein weiterer Vorteil besteht darin das ich nun auch kontrollieren kann was alles an Software im Netz eingesetzt wird.
Was macht dieses Skript alles:
Wobei zu sagen bleibt, dass dies bei weitem nicht alles ist was mit Kix möglich ist.
So nun fangen wir mal an
Als erstes laden wir uns mal das aktuelle Kix Paket von http://www.kixtart.org herunter. Derzeitig ist die aktuelle Version 4.51. Nach dem entpacken der Datei benötigen wir erstmal nur die Datei "Kix32.exe" welche wir uns in einen neuen Ordner auf unserer Platte kopieren.
In diesem Ordner erstellen wir eine neue Datei welche wir "login.kix" nennen.
Diese Datei öffnen wir nun mit dem Notepad oder einem beliebigen anderen Editor, Tipp: ich würde die Endung .kix direkt dem Editor zuordnen denn beim arbeiten wird doch öfters mal getestet und dann kann man die Datei mit einem einfachen Doppelklick wieder bearbeiten.
Um unser Skript später zu testen ziehen wir per Drag and Drop unser Skript auf die kix32.exe oder direkt in der DOS Eingabeauffordung
mit "kix32.exe login.kix".
Zur Funktion:
Bereich Variablen
Hier werden die jeweiligen Servernamen gesetzt. In den meisten Fällen wird zwar alles auf einem einzigen Server durchgeführt, sollte es jedoch eine größeres LAN mit mehreren Servern sein, kann es durch aus Sinn machen die einzelnen Funktionen (File-, Druckserver, etc.) auf verschiedene Maschinen zu verteilen
Bereich Netzlaufwerke
Als erstes werden alle vorhandenen Netzlaufwerke getrennt, ganz klar erstmal reinen Tisch machen. Anschließend werden vom Fileserver die Freigaben Benutzer und / oder Gruppen bezogen gemappt. Sollte es mal einen Account "Gast" geben, was ich ja kaum glaube, dann soll dieser nur das Laufwerk "Public" gemappt bekommen. Aus diesem Grund wird direkt nach dem Mapping der Standard Block übersprungen "goto EndSharing" und an der Sprungmarke <:EndSharing> mit dem Skript fortgefahren.
Etwas spezielles ist noch die Freigabe <use z: "\\"+$Fileserver+"\"+@userid+"$">. Hier wird für jeden User ein individuell eine Freigabe, auf die nur er Zugriff hat, gemappt. Ich Verbinde mit dieser Funktion für jeden User ein persönliches Laufwerk, auf welchen er persönliche Dinge ablegen kann. Durch das $ hinter der Freigabge wird diese als nicht sichtbar deklariert und wird beim browsen in der Netzwerk Umgebung auf den Servern nicht angezeigt.
Druck Warteschlangen verbinden
Wenn ich auf dem einem Server Drucker Freigegeben habe, werden diese hier verbunden. Da alte Drucker, welche nicht mehr vorhanden sind, nicht automatisch auf den Clients gelöscht werden, kann ich die Löschung auch per Skript vornehmen. Hier wird Beispielhaft ein nicht mehr vorhandener Laser Drucker von den Clients gelöscht. Anschließend werden noch zwei weitere Drucker verbunden. Die Druckertreiber werden in der Regel automatisch vom Server auf die Clients übertragen. Wenn sich die Clients das erste mal mit dem Server verbinden dauert die Anmeldung etwas länger da die Druckertreiber komplett mit übertragen werden müssen. Bei weiteren Anmeldungen geht der Anmeldevorgang dann zügiger von statten.
Bereich Hardware
Kix stellt einige Variablen zur Verfügung, welche Informationen über das System enthalten. Diese Variablen an einem beginnenden @ Zeichen (Bsp.: @CPU) zu erkennen. Hier verweise ich auf die Dokumentation "Kix2010.doc" welche im Download enthalten ist. Die Hardware Informationen sind bis auf die IP-Adresse (@IPADRESS0) selbsterklärend. Bei @IPADRESSx muß das x durch einen Wert zwischen 0 und 3 ersetzt werden. Dieser gibt an welche IP-Adresse angezeigt werden soll. Ich habe mich in diesem Skript auf die erste Adresse beschränkt da es leider nur eine Möglichkeit gibt die MAC Adresse der ersten NIC anzuzeigen. Die einzelnen Blöcke der IP-Adresse werden mit führenden Leerzeichen dargestellt (z.B. 192.168. 2. 12). Wer dieses umgehen möchte, da die Daten eventuell weiterverarbeitet werden sollen, der sollte sich einmal den Befehl Split und Element anschauen. Hiermit ist es möglich die Leerzeichen zu entfernen. Ich habe diesen Code aus dem Skript rausgelassen, habe ihn jedoch am Ende der Doku angefügt. Diesen Code bei Bedarf mit der Stelle mit der Ausgabe der IP-Adresse ersetzen.
Bereich Software
Um zu erfahren welche Software installiert ist, liest das Skript die Registry Einträge aus dem Pfad "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" aus. Wie hier zum auslesen der Software, ist es auch möglich eigene Registry Einträge zu erstellen, auszulesen, zu ändern oder zu löschen. Ich hatte diese einmal genutzt um in Zeiten wo es noch keinen SUS bzw. WSUS gab erfahren ob Microsoft Patche installiert sind (Jaja die guten alten Würmer). Bitte in der Doku nach "DELKEY, DELVALUE, ENUMKEY, ENUMVALUE, KEYEXIST, READTYPE, READVALUE, WRITEVALUE" suchen.
Bereich Anmeldung und Abmeldung
Hier wird lediglich zu Beginn geschaut, ob es für den aktuellen Tag bereits eine Login Datei gibt. Wenn die Datei noch nicht existiert wird zusätzlich zu den Anmeldeinformationen ein Header geschrieben, damit die Datei übersichtlicher wird. Auch hier werden wieder System Variablen welche Kix zu Verfügung stellt angewendet um Informationen zu erhalten. In meinem Beispiel wird für jeden Tag eine neue Login Datei generiert. In kleineren Domänen könnte man sich auch auf eine Datei Pro Woche bzw. Pro Monat beschränken. Hierfür muß lediglich der Datei name angepasst werden (z.B. Anmeldungen "+" @YEAR+"."+@MONTHNO+".TXT" für eine Datei Pro Monat).
Für die Abmeldung wird der gleiche Code verwendet wie für die Anmeldung, wobei zu beachten ist das in der Zeile <? "¦"$user"¦ "$client" ¦ "@DATE" ¦ "@TIME" ¦ "$lserver" ¦ i ¦"> das kleine i durch ein o ersetzt wird. Es ist natürlich möglich hier einen x-beliebigen Begriff für Login und Logoff einzusetzen.
Wo setze ich nun die Skripte ein und wie aktiviere ich diese?
Die drei Dateien kix32.exe, login.kix und die logoff.kix kopieren wir in die NETLOGON Freigabe in unserer Domäne. Jetzt erstellen wir noch eine Gruppenrichtlinie die für alle User greift. Am besten eine eigene OU a la "Firmen User" erstellen und alle User Konten hierher verschieben wenn noch nicht geschehen. Für diese OU eine GPO erstellen. In dieser GPO folgende Eigenschaften eintragen.
Jeder Admin einer Domäne ist interessiert an den aktuellen Rechner Daten in seinem Netz. Aus diesem Grund habe ich vor drei bis vier Jahren mit Kix begonnen Skripte zu schreiben. Ich habe hier ein Kix Skript für die Anmeldung gebastelt, welches mir beim Login der User die Daten, der Rechner und die Infos wer sich An- bzw. Abgemeldet hat, in zwei Log-Files schreibt. Je eine für die Rechner Daten und eine für die Anmeldeinformationen.
Somit habe ich immer aktuelle Daten über die Konfiguration meiner Rechner im Netz und habe für jeden Tag eine Datei mit den An- und Abmeldungen. Ein weiterer Vorteil besteht darin das ich nun auch kontrollieren kann was alles an Software im Netz eingesetzt wird.
Was macht dieses Skript alles:
- verbinden und trennen von Netzwerk Freigaben
- verbinden und trennen von Netzwerk Druckern (Druckwarteschlangen auf Domänen Rechnern oder Servern)
- erfassen aller Benutzer An- und Abmeldungen (für die Abmeldung ist ein zweites Skript mit gleichem Inhalt notwendig welches unterhalb der >>Login.kix<< steht)
- erstellen einer Datei für Alle An- und Abmeldungen pro Tag
- erfassen aller Rechner von denen sich angemeldet wird (nur Domänen Rechner)
- was wird erfasst:
- Hardware (CPU, Betriebssystem, NetBios Name, RAM, MAC Adresse, IP Adresse)
- Software (Alle installierten Programme sowie Patche)
Wobei zu sagen bleibt, dass dies bei weitem nicht alles ist was mit Kix möglich ist.
So nun fangen wir mal an
Als erstes laden wir uns mal das aktuelle Kix Paket von http://www.kixtart.org herunter. Derzeitig ist die aktuelle Version 4.51. Nach dem entpacken der Datei benötigen wir erstmal nur die Datei "Kix32.exe" welche wir uns in einen neuen Ordner auf unserer Platte kopieren.
In diesem Ordner erstellen wir eine neue Datei welche wir "login.kix" nennen.
Diese Datei öffnen wir nun mit dem Notepad oder einem beliebigen anderen Editor, Tipp: ich würde die Endung .kix direkt dem Editor zuordnen denn beim arbeiten wird doch öfters mal getestet und dann kann man die Datei mit einem einfachen Doppelklick wieder bearbeiten.
Um unser Skript später zu testen ziehen wir per Drag and Drop unser Skript auf die kix32.exe oder direkt in der DOS Eingabeauffordung
mit "kix32.exe login.kix".
Zur Funktion:
Bereich Variablen
Hier werden die jeweiligen Servernamen gesetzt. In den meisten Fällen wird zwar alles auf einem einzigen Server durchgeführt, sollte es jedoch eine größeres LAN mit mehreren Servern sein, kann es durch aus Sinn machen die einzelnen Funktionen (File-, Druckserver, etc.) auf verschiedene Maschinen zu verteilen
Bereich Netzlaufwerke
Als erstes werden alle vorhandenen Netzlaufwerke getrennt, ganz klar erstmal reinen Tisch machen. Anschließend werden vom Fileserver die Freigaben Benutzer und / oder Gruppen bezogen gemappt. Sollte es mal einen Account "Gast" geben, was ich ja kaum glaube, dann soll dieser nur das Laufwerk "Public" gemappt bekommen. Aus diesem Grund wird direkt nach dem Mapping der Standard Block übersprungen "goto EndSharing" und an der Sprungmarke <:EndSharing> mit dem Skript fortgefahren.
Etwas spezielles ist noch die Freigabe <use z: "\\"+$Fileserver+"\"+@userid+"$">. Hier wird für jeden User ein individuell eine Freigabe, auf die nur er Zugriff hat, gemappt. Ich Verbinde mit dieser Funktion für jeden User ein persönliches Laufwerk, auf welchen er persönliche Dinge ablegen kann. Durch das $ hinter der Freigabge wird diese als nicht sichtbar deklariert und wird beim browsen in der Netzwerk Umgebung auf den Servern nicht angezeigt.
Druck Warteschlangen verbinden
Wenn ich auf dem einem Server Drucker Freigegeben habe, werden diese hier verbunden. Da alte Drucker, welche nicht mehr vorhanden sind, nicht automatisch auf den Clients gelöscht werden, kann ich die Löschung auch per Skript vornehmen. Hier wird Beispielhaft ein nicht mehr vorhandener Laser Drucker von den Clients gelöscht. Anschließend werden noch zwei weitere Drucker verbunden. Die Druckertreiber werden in der Regel automatisch vom Server auf die Clients übertragen. Wenn sich die Clients das erste mal mit dem Server verbinden dauert die Anmeldung etwas länger da die Druckertreiber komplett mit übertragen werden müssen. Bei weiteren Anmeldungen geht der Anmeldevorgang dann zügiger von statten.
Bereich Hardware
Kix stellt einige Variablen zur Verfügung, welche Informationen über das System enthalten. Diese Variablen an einem beginnenden @ Zeichen (Bsp.: @CPU) zu erkennen. Hier verweise ich auf die Dokumentation "Kix2010.doc" welche im Download enthalten ist. Die Hardware Informationen sind bis auf die IP-Adresse (@IPADRESS0) selbsterklärend. Bei @IPADRESSx muß das x durch einen Wert zwischen 0 und 3 ersetzt werden. Dieser gibt an welche IP-Adresse angezeigt werden soll. Ich habe mich in diesem Skript auf die erste Adresse beschränkt da es leider nur eine Möglichkeit gibt die MAC Adresse der ersten NIC anzuzeigen. Die einzelnen Blöcke der IP-Adresse werden mit führenden Leerzeichen dargestellt (z.B. 192.168. 2. 12). Wer dieses umgehen möchte, da die Daten eventuell weiterverarbeitet werden sollen, der sollte sich einmal den Befehl Split und Element anschauen. Hiermit ist es möglich die Leerzeichen zu entfernen. Ich habe diesen Code aus dem Skript rausgelassen, habe ihn jedoch am Ende der Doku angefügt. Diesen Code bei Bedarf mit der Stelle mit der Ausgabe der IP-Adresse ersetzen.
Bereich Software
Um zu erfahren welche Software installiert ist, liest das Skript die Registry Einträge aus dem Pfad "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" aus. Wie hier zum auslesen der Software, ist es auch möglich eigene Registry Einträge zu erstellen, auszulesen, zu ändern oder zu löschen. Ich hatte diese einmal genutzt um in Zeiten wo es noch keinen SUS bzw. WSUS gab erfahren ob Microsoft Patche installiert sind (Jaja die guten alten Würmer). Bitte in der Doku nach "DELKEY, DELVALUE, ENUMKEY, ENUMVALUE, KEYEXIST, READTYPE, READVALUE, WRITEVALUE" suchen.
Bereich Anmeldung und Abmeldung
Hier wird lediglich zu Beginn geschaut, ob es für den aktuellen Tag bereits eine Login Datei gibt. Wenn die Datei noch nicht existiert wird zusätzlich zu den Anmeldeinformationen ein Header geschrieben, damit die Datei übersichtlicher wird. Auch hier werden wieder System Variablen welche Kix zu Verfügung stellt angewendet um Informationen zu erhalten. In meinem Beispiel wird für jeden Tag eine neue Login Datei generiert. In kleineren Domänen könnte man sich auch auf eine Datei Pro Woche bzw. Pro Monat beschränken. Hierfür muß lediglich der Datei name angepasst werden (z.B. Anmeldungen "+" @YEAR+"."+@MONTHNO+".TXT" für eine Datei Pro Monat).
Für die Abmeldung wird der gleiche Code verwendet wie für die Anmeldung, wobei zu beachten ist das in der Zeile <? "¦"$user"¦ "$client" ¦ "@DATE" ¦ "@TIME" ¦ "$lserver" ¦ i ¦"> das kleine i durch ein o ersetzt wird. Es ist natürlich möglich hier einen x-beliebigen Begriff für Login und Logoff einzusetzen.
Wo setze ich nun die Skripte ein und wie aktiviere ich diese?
Die drei Dateien kix32.exe, login.kix und die logoff.kix kopieren wir in die NETLOGON Freigabe in unserer Domäne. Jetzt erstellen wir noch eine Gruppenrichtlinie die für alle User greift. Am besten eine eigene OU a la "Firmen User" erstellen und alle User Konten hierher verschieben wenn noch nicht geschehen. Für diese OU eine GPO erstellen. In dieser GPO folgende Eigenschaften eintragen.
- Benutzerkonfiguration -> Windows-Einstellungen -> Skripts (Anmeldn/Abmelden)
- Anmelden-
- Skriptname = "\\DeinDomänenname\SYSVOL\DeinDomänenname\scripts\kix32.exe"
- Skriptparameter "login.kix"
- Abmelden-
- Skriptname = "\\DeinDomänenname\SYSVOL\DeinDomänenname\scripts\kix32.exe"
- Skriptparameter "logoff.kix"
So jetzt nur noch speichern der GPO und anschließen testen.
Wenn man nur das Anmeldeskript benötigt (warum auch immer) kann man das Skript auch für jeden User in den Benutzereinstellungen auf der Reiterkarte Profil einrichten ("kix32.exe login.kix"). Zum testen kann man das Skript auch erstmal in einem DOS Fenster laufen lassen um zu prüfen ob alles einwandfrei funktioniert.
Hier nochmal der Link zur offiziellen Kixtart Seite http://www.kixtart.org
So das war es erstmal soweit von mir, ich denke jetzt schickts auch. Ich habe in diesem Skript nicht alles umgesetzt was möglich ist, lediglich die Dinge welche bei mir aus der Praxis heraus wichtig sind. Deshalb sollte dieses Tutorial bitte nicht als Versuch einer Komplett Dokumentation von Kix und dessen Möglichkeiten gesehen werden sondern nur als Anregung und Starthilfe für An- und Abmeldeskripte in Windows Domänen. Eine interessante Erweiterung wäre z.B. eine Erweiterung dahin, das für Lizenzpflichtige Softwarepakete ein Datei mit den aktuell installierten Lizenzen generiert wird. Naja Ihre habt bestimmt auch noch ettliche Ideen was Sinnvoll ist oder auch nicht. Ich hoffe das im Forum noch ein wenig darüber diskutiert wird damit wir alle nach kurzer Zeit mit einer optimierten Skript Lösung arbeiten können. Denn eigentlich haben wir doch alle das gleiche Ziel?
Grüße und viel Spaß beim Skripten
PS: Ich bitte um nachsehen für eventuelle Fehler, für unklare Beschreibungen und ich hoffe ich habe nichts wichtiges vergessen. Because pobody is nerfect!
!!!Die Namen für die / den Server sowie die Freigaben, User- und Gruppennamen müssen natürlich an Eure Struktur angepasst werden!!!
login.kix - Ab hier den Inhalt markieren und in die Datei login.kix kopieren.
01.
; ### Das Anmeldeskript soll sichtbar ausgeführt werden und das Fenster für das Skript erhält mit SETTITLE eine Bezeichnung.
02.
; ### Hier könnte stehen der Firmenname, auch Datum und Uhrzeit oder Informationen für Mitarbeiter.
03.
; ### Wobei diese auch mit einer MessageBox realisiert werden können.
04.
;
05.
SETCONSOLE("show")
06.
SETCONSOLE("maximized")
07.
SETTITLE("Anmeldeskript für Meine Domäne 2006")
08.
;
09.
;
10.
; *********************
11.
; Variablen deklarieren
12.
; *********************
13.
;
14.
$FileServer="ServerNameFileServer"
15.
; ### Name des Servers auf welchem sich die Freigaben befinden
16.
; ### alternativ kann auch natürlich auch eine IP-Adresse angegeben werden
17.
;
18.
$ProtokollServer="ServerNameProtokollServer"
19.
; ### Name des Servers auf welchem die Freigabe für die Dokumentation
20.
; ### der An- und Abmeldungen sowie der Rechner Infos liegt
21.
;
22.
$PrintServer="ServerNameDruckWarteSchlangen"
23.
; ### Name des Servers auf welchem (falls vorhanden) die Drucker
24.
; ### eingerichtet und freigegeben sind die verbunden werden sollen
25.
;
26.
; **************************************
27.
; Alle vorhandenen Netzlaufwerke löschen
28.
; **************************************
29.
use "*" /delete
30.
;
31.
;
32.
; ***************************************
33.
; Netzlaufwerke Gruppen bezogen verbinden
34.
; ***************************************
35.
if ingroup("grpBuchhaltung")
36.
use f: "\\"+$Fileserver+"\Buchhaltung"
37.
endif
38.
if ingroup("grpLeitung")
39.
use l: "\\"+$FileServer+"\Leitung"
40.
endif
41.
; ### Für weitere Freigaben einfach einen oberen Block kopieren und anfügen
42.
;
43.
;
44.
; ****************************************
45.
; Netzlaufwerke Benutzer bezogen verbinden
46.
; ****************************************
47.
if @userid="Administrator"
48.
use x: "\\"+$ProtokollServer+"\login$"
49.
;das ist die Freigabe wo die Login Protokolle abgelegt werden
50.
;natürlich soll diese nur der Admininstrator sehen
51.
endif
52.
if @userid="Gast"
53.
use p: "\\"+$Fileserver+"\public"
54.
goto EndSharing
55.
endif
56.
;
57.
;
58.
; **************************************
59.
; Netzlaufwerke für jeden User verbinden
60.
; **************************************
61.
use g: "\\"+$Fileserver+"\Gemeinsames"
62.
use s: "\\"+$Fileserver+"\Schriftverkehr"
63.
use v: "\\"+$Fileserver+"\Vorlagen"
64.
use z: "\\"+$Fileserver+"\"+@userid+"$"
65.
:EndSharing
66.
;
67.
;
68.
; ********************
69.
; Alte Drucker löschen
70.
; ********************
71.
If DELPRINTERCONNECTION ("\\"+$PrintServer+"\LaserJet") = 0
72.
? "Alter Laserdrucker wurde erfolgreich entfernt"
73.
Endif
74.
;
75.
;
76.
; *****************
77.
; Drucker verbinden
78.
; *****************
79.
If ADDPRINTERCONNECTION ("\\"+$PrintServer+"\LaserJetColor") = 0
80.
? "Drucker Farblaserdrucker wurde verbunden"
81.
Endif
82.
If ADDPRINTERCONNECTION ("\\"+$PrintServer+"\LaserZentrale") = 0
83.
? "Drucker Laserdrucker Zentrale wurde verbunden"
84.
Endif
85.
;
86.
;
87.
; *******************************
88.
; Hardware Informationen auslesen
89.
; *******************************
90.
;
91.
: ### Ausgabe auf die Datei "Rechnername_info.txt" umleiten anstelle des Bildschirmes
92.
$result=ReDirectOutput ("\\"+$ProtokollServer+"\login$\"+@Hostname+"_info.txt" ,1)
93.
;
94.
; ### Ab jetzt werden alle Printanweisungen in die Datei "Rechnername_info.txt" ausgegeben
95.
? "Stand "@DATE" - "@TIME
96.
? ""
97.
? "*** Rechner Information ***"
98.
?"NetBIOS Name: "@WKSTA
99.
?"Letzter Login von: "@USERID
100.
?"OS: "@PRODUCTTYPE" with "@CSD
101.
?"CPU Modell: " @CPU
102.
?"CPU Takt: "@MHZ " MHz"
103.
?"Speicher: "MemorySize(0)" MB"
104.
?"IP Adresse: " @IPADRESS0
105.
?"MAC Adresse: "@ADDRESS
106.
?""
107.
;
108.
; *******************************
109.
; Software Informationen auslesen
110.
; *******************************
111.
;
112.
; ### die installierte Software wird anhand der Uninstall Informationen der Registry ausgelesen, es wird
113.
; ### solange gelesen bis im Reg Pfad keine Einträge mehr vorhanden sind, durch den Error wird dann die
114.
; ### Schleife zur Sprungmark :Login verlassen
115.
116.
;
117.
?"*** installierte Software ***"
118.
$Index = 0
119.
:Loop1
120.
$KeyName = EnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", $Index)
121.
If @ERROR = 0
122.
Goto DisplayCheck
123.
Else
124.
Goto Login
125.
EndIf
126.
:DisplayCheck
127.
$Displayname = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Keyname","DisplayName")
128.
If @ERROR = 0
129.
$Index = $Index + 1
130.
?$Displayname
131.
Goto Loop1
132.
Else
133.
Goto Login
134.
endif
135.
:Login
136.
;
137.
; ****************************
138.
; Login Informationen pro User
139.
; ****************************
140.
;
141.
; ### hier wird die Ausgabe wieder auf die Protokoll Datei für den jeweiligen Tag umgeleitet
142.
$result=ReDirectOutput ("\\"+$ProtokollServer+"\login$\Anmeldungen " + @YEAR + "."+ @MONTHNO + "." + @MDAYNO + ".txt" ,0)
143.
;
144.
; ### jetzt wird geprüft ob die Datei bereits existiert, wenn ja wird der Header nicht noch einmal in die Datei geschrieben
145.
; ### da dieser bereits vorhanden ist.
146.
$logExist=Exist("\\"+$ProtokollServer+"\login$\Anmeldungen " + @YEAR + "."+ @MONTHNO + "." + @MDAYNO + ".txt")
147.
if $logExist = 0
148.
? "+-------------------------------------------------------------------------------------------------+"
149.
? "¦Benutzername ¦ Client ¦ Datum ¦ Uhrzeit ¦ Anmeldeserver ¦ i=login o=logout¦"
150.
? "¦-------------+----------------------+------------+----------+------------------+-----------------¦"
151.
endif
152.
$user = @userid+left(" ",(13-len(@userid)))
153.
$client = @WKSTA+left(" ",(20-len(@WKSTA)))
154.
$lserver = @LSERVER+left(" ",(18-len(@LSERVER)))
155.
$lserver = right($lserver,(len($lserver)-2))
156.
? "¦"$user"¦ "$client" ¦ "@DATE" ¦ "@TIME" ¦ "$lserver" ¦ i ¦"
157.
Exit
158.
</font>
159.
>>Ende Login.kix<<
160.
161.
<u><b>>>Logoff.kix<<</u></b>-- Ab hier den Inhalt markieren und in die Datei logoff.kix kopieren.
162.
<font class="code">
163.
; *****************************
164.
; Logoff Informationen pro User
165.
; *****************************
166.
;
167.
$result=ReDirectOutput ("\\"+$ProtokollServer+"\login$\Anmeldungen " + @YEAR + "."+ @MONTHNO + "." + @MDAYNO + ".txt" ,0)
168.
$logExist=Exist("\\"+$ProtokollServer+"\login$\Anmeldungen " + @YEAR + "."+ @MONTHNO + "." + @MDAYNO + ".txt")
169.
if $logExist = 0
170.
? "+-------------------------------------------------------------------------------------------------+"
171.
? "¦Benutzername ¦ Client ¦ Datum ¦ Uhrzeit ¦ Anmeldeserver ¦ i=login o=logout¦"
172.
? "¦-------------+----------------------+------------+----------+------------------+-----------------¦"
173.
endif
174.
$user = @userid+left(" ",(13-len(@userid)))
175.
$client = @WKSTA+left(" ",(20-len(@WKSTA)))
176.
$lserver = @LSERVER+left(" ",(18-len(@LSERVER)))
177.
$lserver = right($lserver,(len($lserver)-2))
178.
? "¦"$user"¦ "$client" ¦ "@DATE" ¦ "@TIME" ¦ "$lserver" ¦ o ¦"
Funktion zum entfernen der Leerzeichen in der IP Adresse
Den Code
<?"IP Adresse: " @IPADRESS0>
01.
; ### Dieser Code entfernt Leerzeichen aus der @IPADRESS0
02.
$a = 0
03.
$Myarray = Split(@IPADDRESS0 , " ")
04.
For Each $Element In $MyArray
05.
if $a = 0
06.
$IP0 = $Element
07.
endif
08.
if $a= 1
09.
$IP1= $Element
10.
endif
11.
if $a= 2
12.
$IP2= $Element
13.
endif
14.
if $a = 3
15.
$IP3 = $Element
16.
endif
17.
if $a = 4
18.
$IP4 = $Element
19.
endif
20.
if $a = 5
21.
$IP5 = $Element
22.
endif
23.
if $a = 6
24.
$IP6 = $Element
25.
endif
26.
if $a= 7
27.
$IP7 = $Element
28.
endif
29.
if $a= 8
30.
$IP8 = $Element
31.
endif
32.
if $a = 9
33.
$IP9 = $Element
34.
endif
35.
if $a = 10
36.
$IP10 = $Element
37.
endif
38.
$a = $a + 1
39.
Next
40.
?"IP Adresse: " + +$IP0 + $IP1 + $IP2 + $IP3 + $IP4 + $IP5 + $IP6 + $IP7 + $IP8 + $IP9 + $IP10
35 Kommentare
- LÖSUNG Biber schreibt am 18.01.2006 um 22:00:52 Uhr
- LÖSUNG CouchCoach schreibt am 19.01.2006 um 13:43:32 Uhr
- LÖSUNG 6741 schreibt am 23.01.2006 um 12:00:36 Uhr
- LÖSUNG CouchCoach schreibt am 23.01.2006 um 12:03:09 Uhr
- LÖSUNG 6741 schreibt am 23.01.2006 um 12:15:04 Uhr
- LÖSUNG CouchCoach schreibt am 23.01.2006 um 12:46:09 Uhr
- LÖSUNG 6741 schreibt am 23.01.2006 um 12:15:04 Uhr
- LÖSUNG CouchCoach schreibt am 23.01.2006 um 12:03:09 Uhr
- LÖSUNG CouchCoach schreibt am 23.01.2006 um 12:46:57 Uhr
- LÖSUNG stash schreibt am 30.01.2006 um 13:58:11 Uhr
- LÖSUNG CouchCoach schreibt am 01.02.2006 um 09:01:02 Uhr
- LÖSUNG stash schreibt am 30.01.2006 um 13:58:11 Uhr
- LÖSUNG knolli75 schreibt am 13.04.2006 um 11:09:04 Uhr
- LÖSUNG CouchCoach schreibt am 13.04.2006 um 11:22:08 Uhr
- LÖSUNG knolli75 schreibt am 13.04.2006 um 12:16:29 Uhr
- LÖSUNG CouchCoach schreibt am 13.04.2006 um 11:22:08 Uhr
- LÖSUNG knolli75 schreibt am 19.04.2006 um 11:30:58 Uhr
- LÖSUNG backfight schreibt am 16.01.2007 um 14:25:59 Uhr
- LÖSUNG CouchCoach schreibt am 16.01.2007 um 15:40:00 Uhr
- LÖSUNG CouchCoach schreibt am 16.01.2007 um 15:40:51 Uhr
- LÖSUNG backfight schreibt am 17.01.2007 um 07:56:04 Uhr
- LÖSUNG CouchCoach schreibt am 17.01.2007 um 09:15:07 Uhr
- LÖSUNG backfight schreibt am 17.01.2007 um 10:12:04 Uhr
- LÖSUNG CouchCoach schreibt am 17.01.2007 um 10:22:33 Uhr
- LÖSUNG backfight schreibt am 17.01.2007 um 15:09:20 Uhr
- LÖSUNG backfight schreibt am 18.01.2007 um 07:11:52 Uhr
- LÖSUNG backfight schreibt am 18.01.2007 um 12:46:00 Uhr
- LÖSUNG CouchCoach schreibt am 18.01.2007 um 12:57:07 Uhr
- LÖSUNG backfight schreibt am 18.01.2007 um 13:50:20 Uhr
- LÖSUNG CouchCoach schreibt am 18.01.2007 um 13:56:19 Uhr
- LÖSUNG backfight schreibt am 18.01.2007 um 14:14:22 Uhr
- LÖSUNG backfight schreibt am 19.01.2007 um 07:14:36 Uhr
- LÖSUNG Biber schreibt am 19.01.2007 um 08:27:56 Uhr
- LÖSUNG backfight schreibt am 19.01.2007 um 08:40:57 Uhr
- LÖSUNG backfight schreibt am 22.01.2007 um 07:22:29 Uhr
- LÖSUNG backfight schreibt am 19.01.2007 um 08:40:57 Uhr
- LÖSUNG Biber schreibt am 19.01.2007 um 08:27:56 Uhr
- LÖSUNG backfight schreibt am 19.01.2007 um 07:14:36 Uhr
- LÖSUNG backfight schreibt am 18.01.2007 um 14:14:22 Uhr
- LÖSUNG CouchCoach schreibt am 18.01.2007 um 13:56:19 Uhr
- LÖSUNG backfight schreibt am 18.01.2007 um 13:50:20 Uhr
- LÖSUNG CouchCoach schreibt am 18.01.2007 um 12:57:07 Uhr
- LÖSUNG backfight schreibt am 18.01.2007 um 12:46:00 Uhr
- LÖSUNG backfight schreibt am 18.01.2007 um 07:11:52 Uhr
- LÖSUNG backfight schreibt am 17.01.2007 um 15:09:20 Uhr
- LÖSUNG CouchCoach schreibt am 17.01.2007 um 10:22:33 Uhr
- LÖSUNG backfight schreibt am 17.01.2007 um 10:12:04 Uhr
- LÖSUNG CouchCoach schreibt am 17.01.2007 um 09:15:07 Uhr
- LÖSUNG backfight schreibt am 17.01.2007 um 07:56:04 Uhr
- LÖSUNG backfight schreibt am 16.01.2007 um 14:25:59 Uhr
- LÖSUNG ceng.de schreibt am 24.07.2010 um 19:29:22 Uhr
- LÖSUNG TxWcA schreibt am 11.08.2010 um 13:38:29 Uhr
- LÖSUNG Biber schreibt am 11.08.2010 um 22:20:08 Uhr
- LÖSUNG TxWcA schreibt am 12.08.2010 um 08:18:43 Uhr
- LÖSUNG Biber schreibt am 11.08.2010 um 22:20:08 Uhr
- LÖSUNG TxWcA schreibt am 11.08.2010 um 13:38:29 Uhr
LÖSUNG 18.01.2006, aktualisiert 18.03.2016
Moin CoachCoach,
auch wenn man/frau eigentlich keine Kommentare unter Tutorials schreiben sollte...
Vielen Dank!
@alle zur Info:
Wegen des erhöhten Interesses an KiX in letzter Zeit werde ich mich für die Einrichtung eines Bereichs "KiX" unterhalb "Entwicklung->Programmierung" einsetzen.
Zum besseren Wiederfinden.
Gruß Biber
P.S.
auch wenn man/frau eigentlich keine Kommentare unter Tutorials schreiben sollte...
Vielen Dank!
@alle zur Info:
Wegen des erhöhten Interesses an KiX in letzter Zeit werde ich mich für die Einrichtung eines Bereichs "KiX" unterhalb "Entwicklung->Programmierung" einsetzen.
Zum besseren Wiederfinden.
Gruß Biber
P.S.
01.
; ### Auch dieser Code entfernt Leerzeichen aus der @IPADRESS0
02.
Dim $Myarray = Split(@IPADDRESS0 , " ")
03.
$IP =""
04.
For Each $Element In $MyArray
05.
$IP = $IP + Trim($Element)
06.
Next
07.
? "IP Adresse: " + $IP
08.
;--oder dieser:
09.
; ### Auch dieser Code entfernt Leerzeichen aus der @IPADRESS0
10.
Dim $Myarray = Split(@IPADDRESS0 , ".")
11.
$IP =Trim($MyArray[0])+"." +Trim($MyArray[1])+"." Trim($MyArray[2])+"." +Trim($MyArray[3])
12.
? "IP Adresse: " + $IP
LÖSUNG 19.01.2006 um 13:43 Uhr
Tja so isses halt nunmal, viele Wege führen nach Rom doch kann man immer nur einen gehen.
Nach dem Motto "Der Weg ist das Ziel" bin ich halt mal den längeren gegangen
Grüße
Nach dem Motto "Der Weg ist das Ziel" bin ich halt mal den längeren gegangen
Grüße
LÖSUNG 23.01.2006 um 12:00 Uhr
Ist der Einsatz der Software auch unter NT4.0 möglich, oder nur mit Active Directory ???
LÖSUNG 23.01.2006 um 12:03 Uhr
Kix läuft auch ab Win95 jedoch werden Einige Funktionen erst ab Windows NT unterstützt. Und wenn das OS kleiner wie NT ist benötigt man noch eine spezielle DLL damit KIX unter Win9x / ME läuft.
Also kein Problem mit Windows NT+++
Also kein Problem mit Windows NT+++
LÖSUNG 23.01.2006 um 12:15 Uhr
Hi,
danke für die Info.
Würden denn auch die Scripts laufen, bzw die Abfrage der Rechner nach Software und An und Abmeldezeiten.
Ich habe ein DC NT4.0 auf laufen ...
danke für die Info.
Würden denn auch die Scripts laufen, bzw die Abfrage der Rechner nach Software und An und Abmeldezeiten.
Ich habe ein DC NT4.0 auf laufen ...
LÖSUNG 23.01.2006 um 12:46 Uhr
juppt, wo es Probleme geben wird ist bei der Verteilung der Drucker, falls du z.B. Windows 2000 oder Pro Clients hast weil der Druckertreiber dann nicht passt.
Grüße
Grüße
LÖSUNG 23.01.2006 um 12:46 Uhr
das ist gemein, wasser im Auge
LÖSUNG 30.01.2006 um 13:58 Uhr
Hallo,
ersteinmal vielen Dank für die Bereitstellung des Skriptes. Ich habs direkt mal bei uns eingebaut und getestet. Eine Frage hab ich aber noch:
Bei der Abfrage der Software-Keys gibt es unter WinXP welche, die einen richtigen Namen haben und auch andere, die ebend nach dem Muster {000-000-000-usw} aufgebaut sind.
Bei mir listet er diese z.b. garnicht auf, obwohl unter jedem einzelnen auch unter "DisplayName" ein Softwarename steht. Desweiteren komtm das Skript ein bisschen ins stocken, wenn auf einmal der Wert "DisplayName" nicht gefüllt ist:
Hier ein Beispiel:
Der Eintag DirectDrawEx hat z.B. keinen Wert. Deswegen gibt das Skript auch einen Fehler zurück und die Schleife beendet sich.
Vielleicht könnt Ihr dieses Problem lösen, da ich just heute erst mit Kix angefangen habe.
Wäre zumindest echt gut für die Einführung.
Ansonsten scheint Kix aber trotzalledem sehr mächtig zu sein. Naja, auf jedenfall mehr, als wie die alten Batch-Skripte.
Gruß, Stash
ersteinmal vielen Dank für die Bereitstellung des Skriptes. Ich habs direkt mal bei uns eingebaut und getestet. Eine Frage hab ich aber noch:
Bei der Abfrage der Software-Keys gibt es unter WinXP welche, die einen richtigen Namen haben und auch andere, die ebend nach dem Muster {000-000-000-usw} aufgebaut sind.
Bei mir listet er diese z.b. garnicht auf, obwohl unter jedem einzelnen auch unter "DisplayName" ein Softwarename steht. Desweiteren komtm das Skript ein bisschen ins stocken, wenn auf einmal der Wert "DisplayName" nicht gefüllt ist:
Hier ein Beispiel:
Der Eintag DirectDrawEx hat z.B. keinen Wert. Deswegen gibt das Skript auch einen Fehler zurück und die Schleife beendet sich.
Vielleicht könnt Ihr dieses Problem lösen, da ich just heute erst mit Kix angefangen habe.
Wäre zumindest echt gut für die Einführung.
Ansonsten scheint Kix aber trotzalledem sehr mächtig zu sein. Naja, auf jedenfall mehr, als wie die alten Batch-Skripte.
Gruß, Stash
LÖSUNG 01.02.2006 um 09:01 Uhr
Hi Stash,
habe eben deinen Kommentar gelesen, ich werde mich am WE mal dran setzen, da ich zurzeit etwas im Arbeitsstreß bin.
Grüße
habe eben deinen Kommentar gelesen, ich werde mich am WE mal dran setzen, da ich zurzeit etwas im Arbeitsstreß bin.
Grüße
LÖSUNG 13.04.2006 um 11:09 Uhr
Hallo,
ich habe das Script eingesetzt. Es funktioniert auch ziemlich gut.
Allerdings wird bei mir in der Hardwaredoku bei der IPAdresse nur ein 0 angezeigt.
Unter Installierte Software wird kein Eintrag angelegt.
Wo kann denn da das Problem liegen ?
ich habe das Script eingesetzt. Es funktioniert auch ziemlich gut.
Allerdings wird bei mir in der Hardwaredoku bei der IPAdresse nur ein 0 angezeigt.
Unter Installierte Software wird kein Eintrag angelegt.
Wo kann denn da das Problem liegen ?
LÖSUNG 13.04.2006 um 11:22 Uhr
Hi Knolli,
es wird hier nur die IP der 1. NIC Karte bzw. Verbindung ausgelesen. Wenn du mehrere NIC´s einsetzt bzw. DFÜ Verbindungen eingerichtet hast könnte hier das Problem liegen.
Versuche einmal anstelle von @IPADRESS0 @IPADRESS1 oder 2 etc..
Die installierte Software wird aus der Registry ausgelesen. Welches OS setzt du denn ein? Vielleicht ist bei dir der Reg-Pfad etwas anders (NT 4.0?).
Grüße Kai
es wird hier nur die IP der 1. NIC Karte bzw. Verbindung ausgelesen. Wenn du mehrere NIC´s einsetzt bzw. DFÜ Verbindungen eingerichtet hast könnte hier das Problem liegen.
Versuche einmal anstelle von @IPADRESS0 @IPADRESS1 oder 2 etc..
Die installierte Software wird aus der Registry ausgelesen. Welches OS setzt du denn ein? Vielleicht ist bei dir der Reg-Pfad etwas anders (NT 4.0?).
Grüße Kai
LÖSUNG 13.04.2006 um 12:16 Uhr
Das nenne ich aber eine schnelle Antwort.
Ich versuche mal die Nr. für die Netzwerkkarte anzupassen.
Mit der Software sieht es so aus, dass die ersten Einträge nicht als Wort sondern als {000-000-000-usw} angezeigt werden. Ich denke dass diese eventuell als error ausgeworfen werden. Wenn dem so ist, wie kann ich es am besten umgehen ?
Ich versuche mal die Nr. für die Netzwerkkarte anzupassen.
Mit der Software sieht es so aus, dass die ersten Einträge nicht als Wort sondern als {000-000-000-usw} angezeigt werden. Ich denke dass diese eventuell als error ausgeworfen werden. Wenn dem so ist, wie kann ich es am besten umgehen ?
LÖSUNG 19.04.2006 um 11:30 Uhr
Was ist denn wenn die ersten Einträge unter der Software-Übersicht im Format {00000407-78E1-11D2-B60F-006097C998E7} aufgebaut sind ? Die werden wahrscheinlich als Fehler angezeigt und werden in der Übersicht nicht angezeigt, bzw. die Darstellung wird ab dem Eintrag gestoppt. Wie kann ich diese Einträge aber trotzdem mit protokollieren lassen oder vielleicht auslassen ?
LÖSUNG 16.01.2007, aktualisiert 18.03.2016
Hi,
Super Script! Muss ich schon sagen. Die einzige Stelle die mir Probleme macht ist diese hier:
Da speichert er mir nix aufm Server.
Nur wenn ich es so abändern:
Aber dann legt er mir die Datein jeweils auf den Rechnern an
Ich vermute es ist nur nen simpler Syntax fehler aber kann mir da jemand helfen?
Gruß
Backfight
Super Script! Muss ich schon sagen. Die einzige Stelle die mir Probleme macht ist diese hier:
$result=ReDirectOutput ("\\"+$ProtokollServer+"\login$\"+@Hostname+"_info.txt" ,1)
Nur wenn ich es so abändern:
$result=ReDirectOutput ("C:\Inventar\"+@Hostname+"_info.txt" ,1)
Ich vermute es ist nur nen simpler Syntax fehler aber kann mir da jemand helfen?
Gruß
Backfight
LÖSUNG 16.01.2007 um 15:40 Uhr
Hi Backfight,
hast du auf dem Protokollserver eine Ordner Freigabe die login$ heißt?
Grüße Kai
hast du auf dem Protokollserver eine Ordner Freigabe die login$ heißt?
Grüße Kai
LÖSUNG 16.01.2007 um 15:40 Uhr
Hi Backfight,
hast du auf dem Protokollserver eine Ordner Freigabe die login$ heißt?
Grüße Kai
hast du auf dem Protokollserver eine Ordner Freigabe die login$ heißt?
Grüße Kai
LÖSUNG 17.01.2007 um 07:56 Uhr
Kommando zurück. Habs hinbekommen.
Mich würde freun, das wenn das Script abgearbeitet ist auf einem Client der sich an der domain anmeldet, so ein kleines fenster kommt mit:
Datum
Zeit
User ID
Full Name
Privilegien
OS Vers.
Computername
Und dann Irgendwie sowas Guten Morgen/ Guten Tag %Username%
Je nach Zeit
Ist das möglich? Wenn ja wie? Ich bekomme die Syntax immernur irgendwie falsch hin *g*
Gruß
Backfight
Mich würde freun, das wenn das Script abgearbeitet ist auf einem Client der sich an der domain anmeldet, so ein kleines fenster kommt mit:
Datum
Zeit
User ID
Full Name
Privilegien
OS Vers.
Computername
Und dann Irgendwie sowas Guten Morgen/ Guten Tag %Username%
Je nach Zeit
Ist das möglich? Wenn ja wie? Ich bekomme die Syntax immernur irgendwie falsch hin *g*
Gruß
Backfight
LÖSUNG 17.01.2007 um 09:15 Uhr
Moin Backfight,
also mit einer Messagebox (kleines Fenster halt) würde ich die User nicht belästigen, so was wird aus der Erfahrung heraus einfach weggeklickt und basta. Wenn du, zwecks Help Desk, von den Usern Infos zu deren Rechnern benötigst würde ich die das Tool Background Info (bginfo) empfehlen. Damit kannst du genau die Infos die du genannt hast beim Start des Rechners bzw. nach der Anmeldung auf den Desktop projezieren. Somit sind die Informationen immer griffbereit
Grüße Kai
also mit einer Messagebox (kleines Fenster halt) würde ich die User nicht belästigen, so was wird aus der Erfahrung heraus einfach weggeklickt und basta. Wenn du, zwecks Help Desk, von den Usern Infos zu deren Rechnern benötigst würde ich die das Tool Background Info (bginfo) empfehlen. Damit kannst du genau die Infos die du genannt hast beim Start des Rechners bzw. nach der Anmeldung auf den Desktop projezieren. Somit sind die Informationen immer griffbereit
Grüße Kai
LÖSUNG 17.01.2007 um 10:12 Uhr
Gut hast mich überzeugt.
Kannst du mir denn sagen wie man am besten ein Userlaufwerk auf einem Fileserver mappt?
irgendwie so nach dem motto: use H: \\fileserver\%username%
??
Ich komme mit der syntax nicht klar desswegen frage ich
Oder kann man das noch besser realisieren?
Gruß
Backfight
Kannst du mir denn sagen wie man am besten ein Userlaufwerk auf einem Fileserver mappt?
irgendwie so nach dem motto: use H: \\fileserver\%username%
??
Ich komme mit der syntax nicht klar desswegen frage ich
Oder kann man das noch besser realisieren?
Gruß
Backfight
LÖSUNG 17.01.2007 um 10:22 Uhr
Für was soll das Laufwerk den dienen, Profile oder Dateiablage wo nur der jeweilige Benutzer zugriff hat?
LÖSUNG 17.01.2007 um 15:09 Uhr
Habs wieder hinbekommen.
Jetzt stehe ich aber vor dem Problem Drucker anzulgen Pro Gruppe im ADS.
Die Drucker sind alle auf dem DomainController installiert.
Wie lautet das Script und wie muss ich vorgehen?
Bitte helft mir noch einmal
Ich denke das werd ich nicht so schnell lösen
Jetzt stehe ich aber vor dem Problem Drucker anzulgen Pro Gruppe im ADS.
Die Drucker sind alle auf dem DomainController installiert.
Wie lautet das Script und wie muss ich vorgehen?
Bitte helft mir noch einmal
Ich denke das werd ich nicht so schnell lösen
LÖSUNG 18.01.2007 um 07:11 Uhr
Kann das sein das das Script nur arbeitet wenn man die Drucker im ADS angelegt hat?
Oder geht das auch wenn sie lokal aufm ADS Controller angelegt sind?
Kann mir jemand helfen?
Gruß
Backfight
Oder geht das auch wenn sie lokal aufm ADS Controller angelegt sind?
Kann mir jemand helfen?
Gruß
Backfight
LÖSUNG 18.01.2007 um 12:46 Uhr
Hi Kai,
kannst du mir wohl noch einmal helfen? Ich komm da einfach nicht weiter mit der Druckerzuordnung pro abteilung.
wo könnte der fehler liegen? Kannst du mir ein bsp Script hier posten?
Bin ein wenig unter zeitdruck
Gruß
Backfight
kannst du mir wohl noch einmal helfen? Ich komm da einfach nicht weiter mit der Druckerzuordnung pro abteilung.
wo könnte der fehler liegen? Kannst du mir ein bsp Script hier posten?
Bin ein wenig unter zeitdruck
Gruß
Backfight
LÖSUNG 18.01.2007, aktualisiert 18.03.2016
Hi Backfight,
also die Drucker müssen nicht im ADS freigegeben sein, werden sie aber in einer Domäne standardmäßig.
Also als erstes den Printserver definieren (bei die dein DC)
So jetzt die einzelnen Gruppen abfragen und die Drucker zuweisen
if ingroup("grpLaserDruckerColor")
If ADDPRINTERCONNECTION ("\\"+$PrintServer+"\LaserColor") = 0
? "Drucker Laserdrucker Zentrale wurde verbunden"
Endif
goto EndeDrucker
endif
:EndeDrucker
und weiter mit deinem Script.....
Grüße Kai
PS.: Wenns noch nicht so klappen will, poste einfach nochmal dein Problem, am besten packst du mal dein script mit rein!!!
also die Drucker müssen nicht im ADS freigegeben sein, werden sie aber in einer Domäne standardmäßig.
Also als erstes den Printserver definieren (bei die dein DC)
$PrintServer = "MeinDC"
01.
if ingroup("grpLaserDruckerMono")
02.
If ADDPRINTERCONNECTION ("\\"+$PrintServer+"\LaserMono") = 0
03.
? "Drucker Laserdrucker Zentrale wurde verbunden"
04.
Endif
05.
goto EndeDrucker
06.
endif
If ADDPRINTERCONNECTION ("\\"+$PrintServer+"\LaserColor") = 0
? "Drucker Laserdrucker Zentrale wurde verbunden"
Endif
goto EndeDrucker
endif
:EndeDrucker
und weiter mit deinem Script.....
Grüße Kai
PS.: Wenns noch nicht so klappen will, poste einfach nochmal dein Problem, am besten packst du mal dein script mit rein!!!
LÖSUNG 18.01.2007, aktualisiert 18.03.2016
Funktioniert nicht
Hier der Code:
da mach ich doch sicher was mit der syntax falsch oder?
Gruß
Backfight
Hier der Code:
01.
;*
02.
; Drucker den Abteilungen zuordnen
03.
;*
04.
05.
$PrintServer = "DC"
06.
07.
if ingroup("TestGruppe")
08.
If ADDPRINTERCONNECTION ("\\"+$PrintServer+"\NRG DSm725 Test") = 0
09.
? "Drucker Laserdrucker Test wurde verbunden"
10.
Endif
11.
goto EndeDrucker
12.
endif
13.
14.
:EndeDrucker
Gruß
Backfight
LÖSUNG 18.01.2007, aktualisiert 18.03.2016
Probier mal das script hier aus
Klappt das, dann ersetzte ? "Ja Benutzer.... durch die AddPrinterConnection Anweisung.
Prüfe nach ist der DC eintrag korrekt, stimmt der Freigabename, hast du rechte dich mit dem Drucker zu verbinden.....
Grüße
01.
if ingroup("TestGruppe")
02.
? "JA Benutzer ist in der Gruppe
03.
endif
Prüfe nach ist der DC eintrag korrekt, stimmt der Freigabename, hast du rechte dich mit dem Drucker zu verbinden.....
Grüße
LÖSUNG 18.01.2007, aktualisiert 18.03.2016
Geht immer noch nicht
Kannst du mir nochmal genau die Syntax sagen?
Wie meinst du das mit Berechtigung? Wo setzt man die denn?
Kannst du mir nochmal genau die Syntax sagen?
Wie meinst du das mit Berechtigung? Wo setzt man die denn?
01.
$PrintServer = "DC"
02.
03.
if ingroup("TestGruppe")
04.
? "ADDPRINTERCONNECTION ("\\"+$PrintServer+"\NRG DSm725 Test")
05.
endif
LÖSUNG 19.01.2007 um 07:14 Uhr
Hi,
oder kann man die Syntax wirklich so weit ausdehnen? Weil ich hab mal gegoogelt und jeder schreibt den ADPRINTERCONNECTION Befehl irgendwie anders!!??!
Kann mir nochmal jemand helfen?
Gruß
Backfight
oder kann man die Syntax wirklich so weit ausdehnen? Weil ich hab mal gegoogelt und jeder schreibt den ADPRINTERCONNECTION Befehl irgendwie anders!!??!
Kann mir nochmal jemand helfen?
Gruß
Backfight
LÖSUNG 19.01.2007 um 08:27 Uhr
Moin backfive,
CoachCoach hat doch die "richtige" Syntax vorgekaspert. Ist doch ein Tutorial hier.
"Richtig" in obigem Sinne heißt: konform mit den beiden üblichen KiX-Referenzen "kix2010.doc" und "KiXhelp451.chm", die auf www.Kixtart.org empfohlen werden.
Siehe oben bei CoachCoach.
Um nochmal eine mögliche Fehlerquelle anzugeben:
Und bei Deinem letzten geposteten Beispiel ist entweder ein Anführungszeichen zuviel oder zuwenig.
Geht Dein Programm nun in diese InGroup-Verzweigung oder nicht oder weißt Du es nicht?
Gruß
Biber
Weil ich hab mal gegoogelt ...
WTF is "google"?...und jeder schreibt den ADPRINTERCONNECTION Befehl irgendwie anders!!??!
Ist das deren Problem oder Deins?CoachCoach hat doch die "richtige" Syntax vorgekaspert. Ist doch ein Tutorial hier.
"Richtig" in obigem Sinne heißt: konform mit den beiden üblichen KiX-Referenzen "kix2010.doc" und "KiXhelp451.chm", die auf www.Kixtart.org empfohlen werden.
Siehe oben bei CoachCoach.
Um nochmal eine mögliche Fehlerquelle anzugeben:
Syntax
ADDPRINTERCONNECTION ("printer name")
Parameters
Printer name
The (share)name of the printer to which to connect.
----------> das heißt, Du musst den Drucker unter seinem Freigabe-Namen ansprechen. Und...ADDPRINTERCONNECTION ("printer name")
Parameters
Printer name
The (share)name of the printer to which to connect.
When Windows NT connects to the printer, it may copy printer driver files to the local computer.
If the user does not have permission to copy files to the appropriate location, ADDPRINTERCONNECTION fails, and @16034 returns ERROR_ACCESS_DENIED
----------> Und das wäre auch das sinnvollste: erstmal den (Fehler-)Rückgabewert zu erfahren.If the user does not have permission to copy files to the appropriate location, ADDPRINTERCONNECTION fails, and @16034 returns ERROR_ACCESS_DENIED
Und bei Deinem letzten geposteten Beispiel ist entweder ein Anführungszeichen zuviel oder zuwenig.
Geht Dein Programm nun in diese InGroup-Verzweigung oder nicht oder weißt Du es nicht?
Gruß
Biber
LÖSUNG 19.01.2007 um 08:40 Uhr
Ich weiß es nicht ob das Script in die verzweigung geht. Ich weiß nicht mal wo der Wert dann ausgegeben wird wenn er nicht in den Zweig geht. Ich muss dazu sagen das ich Kix seid 4 oder 5 Tagen kenne/Benutze. Daher keinerleih Ahnung davon habe. Das ich meine vorherigen Probleme hinbekommen habe ist Glück gewesen. Erschwerend kommt dazu das ich auch das erste mal eine Domäne hochziehe / Daher nicht viel Ahnung habe. Also was kann ich machen?
Sorry wenn ich hier nerve
Gruß
Backfight
Sorry wenn ich hier nerve
Gruß
Backfight
LÖSUNG 22.01.2007 um 07:22 Uhr
Hi all,
kann mir vielleicht nochmal jemand helfen? Bin leider nicht weitergekommen und bekomme somit noch immer keinen Drucker einer Gruppe zugeordnet
Danke im vorraus
Gruß
Backfight
kann mir vielleicht nochmal jemand helfen? Bin leider nicht weitergekommen und bekomme somit noch immer keinen Drucker einer Gruppe zugeordnet
Danke im vorraus
Gruß
Backfight
LÖSUNG 24.07.2010, aktualisiert 18.03.2016
Hat jemand eine Idee, warum dieses Script bei Windows 7 im Bereich Softwareinventar nicht mehr funktioniert?
--> Der Pfad besteht noch so in Windows 7
Hier zum Vergleich ein Eintrag aus meinem Uninstall Hive...
01.
; Software Informationen auslesen
02.
; *
03.
;
04.
; ### die installierte Software wird anhand der Uninstall Informationen der Registry ausgelesen, es wird
05.
; ### solange gelesen bis im Reg Pfad keine Einträge mehr vorhanden sind, durch den Error wird dann die
06.
; ### Schleife zur Sprungmark :Login verlassen
07.
08.
;
09.
?"* installierte Software *"
10.
$Index = 0
11.
:Loop1
12.
$KeyName = EnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", $Index)
13.
If @ERROR = 0
14.
Goto DisplayCheck
15.
Else
16.
Goto Login
17.
EndIf
18.
:DisplayCheck
19.
$Displayname = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Keyname","DisplayName")
20.
If @ERROR = 0
21.
$Index = $Index + 1
22.
?$Displayname
23.
Goto Loop1
24.
Else
25.
Goto Login
26.
endif
Hier zum Vergleich ein Eintrag aus meinem Uninstall Hive...
01.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinRAR archiver]
02.
"DisplayName"="WinRAR"
03.
"UninstallString"="C:\\Program Files\\WinRAR\\uninstall.exe"
04.
"DisplayIcon"="C:\\Program Files\\WinRAR\\WinRAR.exe"
05.
"NoModify"=dword:00000001
06.
"NoRepair"=dword:00000001
LÖSUNG 11.08.2010 um 13:38 Uhr
Hallo zusammen
Ich habe versucht das Script nachzubauen, jedoch ohne Erfolg.
Hab zuerst die Version von Kix 461 runtergeladen und die kix32.exe in einen Ordner lokal mit dem Namen kix gelegt. Dorthin habe ich dann die login.kix erstellt, welche wie folgt aussieht.
Auf dem FileServer habe ich eine Freigabe login$ erstellt welche per \\ FileServer\login$ erreichbar ist und jeder User reinschreiben darf und kann.
Wenn ich nun eine CMD öffne mich auf den Ordner per CMD stelle wo die kix32.exe sich drin befindet und das login.kix und ich den Befehl absetzte:
Kix32.exe login.kix
Bekomme ich folgende Meldung:
ERROR: unexepected command!
Script: C:\Kix\login.kix
Line: 1
Hier mein Script:
>>Ende Login.kix<<
Auch wäre es super Toll wenn ich z.b. die Keys von Windows, Office usw. auslesen könnte.
[Edit Biber] <font class=code> duch heutige Codeformatierung ersetzt. Siehe unten [/Edit]
Ich habe versucht das Script nachzubauen, jedoch ohne Erfolg.
Hab zuerst die Version von Kix 461 runtergeladen und die kix32.exe in einen Ordner lokal mit dem Namen kix gelegt. Dorthin habe ich dann die login.kix erstellt, welche wie folgt aussieht.
Auf dem FileServer habe ich eine Freigabe login$ erstellt welche per \\ FileServer\login$ erreichbar ist und jeder User reinschreiben darf und kann.
Wenn ich nun eine CMD öffne mich auf den Ordner per CMD stelle wo die kix32.exe sich drin befindet und das login.kix und ich den Befehl absetzte:
Kix32.exe login.kix
Bekomme ich folgende Meldung:
ERROR: unexepected command!
Script: C:\Kix\login.kix
Line: 1
Hier mein Script:
01.
; ### Das Anmeldeskript soll sichtbar ausgeführt werden und das Fenster für das Skript erhält mit SETTITLE eine Bezeichnung.
02.
; ### Hier könnte stehen der Firmenname, auch Datum und Uhrzeit oder Informationen für Mitarbeiter.
03.
; ### Wobei diese auch mit einer MessageBox realisiert werden können.
04.
;
05.
SETCONSOLE("show")
06.
SETCONSOLE("maximized")
07.
SETTITLE("Anmeldeskript für Meine Domäne ")
08.
;
09.
;
10.
; *
11.
; Variablen deklarieren
12.
; *
13.
;
14.
$FileServer="FileServer"
15.
; ### Name des Servers auf welchem sich die Freigaben befinden
16.
; ### alternativ kann auch natürlich auch eine IP-Adresse angegeben werden
17.
;
18.
$ProtokollServer="FileServer"
19.
; ### Name des Servers auf welchem die Freigabe für die Dokumentation
20.
; ### der An- und Abmeldungen sowie der Rechner Infos liegt
21.
;
22.
$PrintServer="FileServer"
23.
; ### Name des Servers auf welchem (falls vorhanden) die Drucker
24.
; ### eingerichtet und freigegeben sind die verbunden werden sollen
25.
;
26.
;
27.
; Alle vorhandenen Netzlaufwerke löschen
28.
;
29.
use "*" /delete
30.
;
31.
;
32.
; *
33.
; Netzlaufwerke Gruppen bezogen verbinden
34.
; *
35.
;
36.
if ingroup("grpFibu")
37.
use f: "\\"+$FileServer+"\Fibu"
38.
endif
39.
if ingroup("grpITadministration")
40.
use z: "\\"+$ FileServer +"\admin-win"
41.
endif
42.
if ingroup ("grpMarketing")
43.
if m: "\\"+$ FileServer +"\marketing"
44.
endif
45.
if ingroup ("grpGef")
46.
use n: "\\"+$ FileServer +"\gef"
47.
endif
48.
if ingroup ("grpControlling")
49.
use k: "\\"+$ FileServer +"\controlling"
50.
endif
51.
if ingroup ("grpfile-sek-gf")
52.
use o: "\\"+$ FileServer +"\file-sek-gef"
53.
endif
54.
55.
; ### Für weitere Freigaben einfach einen oberen Block kopieren und anfügen
56.
;
57.
;
58.
;
59.
; Netzlaufwerke Benutzer bezogen verbinden
60.
;
61.
if @userid="Administrator"
62.
use x: "\\"+$ FileServer +"\login$"
63.
;das ist die Freigabe wo die Login Protokolle abgelegt werden
64.
;natürlich soll diese nur der Admininstrator sehen
65.
endif
66.
;
67.
;Netzlaufwerk für Admin1 und Admin2 weil dies ein IT-Administrations-Laufwerk ist
68.
if @userid="Admin1"
69.
use y: "\\"+$ FileServer +"\it-administration$"
70.
endif
71.
if @userid="Admin2"
72.
use y: "\\"+$ FileServer +"\it-administration$"
73.
endif
74.
if @userid="Gast"
75.
use p: "\\"+$Fileserver+"\public"
76.
goto EndSharing
77.
endif
78.
;
79.
;
80.
;
81.
; Netzlaufwerke für jeden User verbinden
82.
;
83.
use p: "\\"+$ FileServer +"\ablage"
84.
use r: "\\"+$ FileServer +"\Projekte"
85.
use t: "\\"+$ FileServer +"\Technik"
86.
use u: "\\"+$ FileServer +"\"+@userid+"$"
87.
:EndSharing
88.
;
89.
;
90.
;
91.
; Alte Drucker löschen
92.
;
93.
;If DELPRINTERCONNECTION ("\\"+$FileServer +"\LaserJet") = 0
94.
;? "Alter Laserdrucker wurde erfolgreich entfernt"
95.
;Endif
96.
;
97.
;
98.
; *
99.
; Drucker verbinden
100.
; *
101.
;If ADDPRINTERCONNECTION ("\\"+$FileServer +"\LaserJetColor") = 0
102.
;? "Drucker Farblaserdrucker wurde verbunden"
103.
;Endif
104.
;If ADDPRINTERCONNECTION ("\\"+$FileServer +"\LaserZentrale") = 0
105.
;? "Drucker Laserdrucker Zentrale wurde verbunden"
106.
;Endif
107.
;
108.
;
109.
; *
110.
; Hardware Informationen auslesen
111.
; *
112.
;
113.
: ### Ausgabe auf die Datei "Rechnername_info.txt" umleiten anstelle des Bildschirmes
114.
$result=ReDirectOutput ("\\"+$FileServer +"\login$\"+@Hostname+"_info.txt" ,1)
115.
;
116.
; ### Ab jetzt werden alle Printanweisungen in die Datei "Rechnername_info.txt" ausgegeben
117.
? "Stand "@DATE" - "@TIME
118.
? ""
119.
? "* Rechner Information *"
120.
?"NetBIOS Name: "@WKSTA
121.
?"Letzter Login von: "@USERID
122.
?"OS: "@PRODUCTTYPE" with "@CSD
123.
?"CPU Modell: " @CPU
124.
?"CPU Takt: "@MHZ " MHz"
125.
?"Speicher: "MemorySize(0)" MB"
126.
?"IP Adresse: " @IPADRESS0
127.
?"MAC Adresse: "@ADDRESS
128.
?""
129.
;
130.
; *
131.
; Software Informationen auslesen
132.
; *
133.
;
134.
; ### die installierte Software wird anhand der Uninstall Informationen der Registry ausgelesen, es wird
135.
; ### solange gelesen bis im Reg Pfad keine Einträge mehr vorhanden sind, durch den Error wird dann die
136.
; ### Schleife zur Sprungmark :Login verlassen
137.
138.
;
139.
?"* installierte Software *"
140.
$Index = 0
141.
:Loop1
142.
$KeyName = EnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", $Index)
143.
If @ERROR = 0
144.
Goto DisplayCheck
145.
Else
146.
Goto Login
147.
EndIf
148.
:DisplayCheck
149.
$Displayname = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$Keyname","DisplayName")
150.
If @ERROR = 0
151.
$Index = $Index + 1
152.
?$Displayname
153.
Goto Loop1
154.
Else
155.
Goto Login
156.
endif
157.
:Login
158.
;
159.
;
160.
; Login Informationen pro User
161.
;
162.
;
163.
; ### hier wird die Ausgabe wieder auf die Protokoll Datei für den jeweiligen Tag umgeleitet
164.
$result=ReDirectOutput ("\\"+$FileServer +"\login$\Anmeldungen " + @YEAR + "."+ @MONTHNO + "." + @MDAYNO + ".txt" ,0)
165.
;
166.
; ### jetzt wird geprüft ob die Datei bereits existiert, wenn ja wird der Header nicht noch einmal in die Datei geschrieben
167.
; ### da dieser bereits vorhanden ist.
168.
$logExist=Exist("\\"+$FileServer +"\login$\Anmeldungen " + @YEAR + "."+ @MONTHNO + "." + @MDAYNO + ".txt")
169.
if $logExist = 0
170.
? "+-------------------------------------------------------------------------------------------------+"
171.
? "¦Benutzername ¦ Client ¦ Datum ¦ Uhrzeit ¦ Anmeldeserver ¦ i=login o=logout¦"
172.
? "¦-------------+----------------------+------------+----------+------------------+-----------------¦"
173.
endif
174.
$user = @userid+left(" ",(13-len(@userid)))
175.
$client = @WKSTA+left(" ",(20-len(@WKSTA)))
176.
$lserver = @LSERVER+left(" ",(18-len(@LSERVER)))
177.
$lserver = right($lserver,(len($lserver)-2))
178.
? "¦"$user"¦ "$client" ¦ "@DATE" ¦ "@TIME" ¦ "$lserver" ¦ i ¦"
179.
Exit
Auch wäre es super Toll wenn ich z.b. die Keys von Windows, Office usw. auslesen könnte.
[Edit Biber] <font class=code> duch heutige Codeformatierung ersetzt. Siehe unten [/Edit]
LÖSUNG 11.08.2010 um 22:20 Uhr
Moin TxWcA,
möglicherweise hattest du die oben noch verwendete "alte" Codeformatierung für bare Münze bzw. für KiX-Code mit übernommen?
Diese <font class=code></font>-Klamotte?
ich habe deinen zitierten Code jedenfalls mal als "Code" formatiert, so dass du ihn mal jetzt kopieren kannst.
sollte es etwas anderes sein, dann machen wir natürlich weiter...
Grüße
Biber
möglicherweise hattest du die oben noch verwendete "alte" Codeformatierung für bare Münze bzw. für KiX-Code mit übernommen?
Diese <font class=code></font>-Klamotte?
ich habe deinen zitierten Code jedenfalls mal als "Code" formatiert, so dass du ihn mal jetzt kopieren kannst.
sollte es etwas anderes sein, dann machen wir natürlich weiter...
Grüße
Biber
LÖSUNG 12.08.2010 um 08:18 Uhr
Hallo BiBer
okay ich hab diese Font Sache nun entfernt.
Dies habe ich in der CMD als Antwort bekommen:
C:\kix>kix32.exe login.kix
0870
C:\kix>
Wenn ich nun auf dem Share \\FileServer\login$ nachschaue liegt da aber kein File.
okay ich hab diese Font Sache nun entfernt.
Dies habe ich in der CMD als Antwort bekommen:
C:\kix>kix32.exe login.kix
0870
C:\kix>
Wenn ich nun auf dem Share \\FileServer\login$ nachschaue liegt da aber kein File.
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte