Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Rechner Inventarisierung, Login Skript und Login Dokumentation mit Kix und Active Directory

Anleitung Entwicklung KiXtart

Mitglied: CouchCoach

CouchCoach (Level 1) - Jetzt verbinden

18.01.2006, aktualisiert 18.03.2016, 71048 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:

  • 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               ¦"
    Ende Logoff.kix

    Funktion zum entfernen der Leerzeichen in der IP Adresse

    Den Code
    <?"IP Adresse:  " @IPADRESS0>
    mit diesem ersetzen.

    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
Mitglied: Biber
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.
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
Bitte warten ..
Mitglied: CouchCoach
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
Bitte warten ..
Mitglied: 6741
23.01.2006 um 12:00 Uhr
Ist der Einsatz der Software auch unter NT4.0 möglich, oder nur mit Active Directory ???
Bitte warten ..
Mitglied: CouchCoach
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+++
Bitte warten ..
Mitglied: 6741
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 ...
Bitte warten ..
Mitglied: CouchCoach
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
Bitte warten ..
Mitglied: CouchCoach
23.01.2006 um 12:46 Uhr
das ist gemein, wasser im Auge
Bitte warten ..
Mitglied: stash
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
Bitte warten ..
Mitglied: CouchCoach
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
Bitte warten ..
Mitglied: knolli75
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 ?
Bitte warten ..
Mitglied: CouchCoach
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
Bitte warten ..
Mitglied: knolli75
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 ?
Bitte warten ..
Mitglied: knolli75
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 ?
Bitte warten ..
Mitglied: backfight
16.01.2007, aktualisiert 18.03.2016
Hi,
Super Script! Muss ich schon sagen. Die einzige Stelle die mir Probleme macht ist diese hier:

$result=ReDirectOutput ("\\"+$ProtokollServer+"\login$\"+@Hostname+"_info.txt" ,1)
Da speichert er mir nix aufm Server.
Nur wenn ich es so abändern:
$result=ReDirectOutput ("C:\Inventar\"+@Hostname+"_info.txt" ,1)
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
Bitte warten ..
Mitglied: CouchCoach
16.01.2007 um 15:40 Uhr
Hi Backfight,

hast du auf dem Protokollserver eine Ordner Freigabe die login$ heißt?


Grüße Kai
Bitte warten ..
Mitglied: CouchCoach
16.01.2007 um 15:40 Uhr
Hi Backfight,

hast du auf dem Protokollserver eine Ordner Freigabe die login$ heißt?


Grüße Kai
Bitte warten ..
Mitglied: backfight
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
Bitte warten ..
Mitglied: CouchCoach
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
Bitte warten ..
Mitglied: backfight
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
Bitte warten ..
Mitglied: CouchCoach
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?
Bitte warten ..
Mitglied: backfight
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
Bitte warten ..
Mitglied: backfight
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
Bitte warten ..
Mitglied: backfight
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
Bitte warten ..
Mitglied: CouchCoach
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)

$PrintServer = "MeinDC"
So jetzt die einzelnen Gruppen abfragen und die Drucker zuweisen
01.
if ingroup("grpLaserDruckerMono") 
02.
  If ADDPRINTERCONNECTION ("\\"+$PrintServer+"\LaserMono") = 0 
03.
  ? "Drucker Laserdrucker Zentrale wurde verbunden" 
04.
  Endif 
05.
goto EndeDrucker 
06.
endif
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!!!
Bitte warten ..
Mitglied: backfight
18.01.2007, aktualisiert 18.03.2016
Funktioniert nicht

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
da mach ich doch sicher was mit der syntax falsch oder?


Gruß
Backfight
Bitte warten ..
Mitglied: CouchCoach
18.01.2007, aktualisiert 18.03.2016
Probier mal das script hier aus
01.
if ingroup("TestGruppe") 
02.
   ? "JA Benutzer ist in der Gruppe 
03.
endif
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
Bitte warten ..
Mitglied: backfight
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?
01.
$PrintServer = "DC" 
02.
 
03.
if ingroup("TestGruppe") 
04.
? "ADDPRINTERCONNECTION ("\\"+$PrintServer+"\NRG DSm725 Test") 
05.
endif
Bitte warten ..
Mitglied: backfight
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
Bitte warten ..
Mitglied: Biber
19.01.2007 um 08:27 Uhr
Moin backfive,

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...
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.

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
Bitte warten ..
Mitglied: backfight
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
Bitte warten ..
Mitglied: backfight
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
Bitte warten ..
Mitglied: ceng.de
24.07.2010, aktualisiert 18.03.2016
Hat jemand eine Idee, warum dieses Script bei Windows 7 im Bereich Softwareinventar nicht mehr funktioniert?
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
--> Der Pfad besteht noch so in Windows 7

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
Bitte warten ..
Mitglied: TxWcA
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:
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
>>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]
Bitte warten ..
Mitglied: Biber
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
Bitte warten ..
Mitglied: TxWcA
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.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst Active Directory File Extension - Associated Program (11)

Frage von adm2015 zum Thema Windows Server ...

Windows 8
gelöst Active Directory Default User.v2 Profile - Windows 8.1 Apps Error (4)

Frage von adm2015 zum Thema Windows 8 ...

Windows Server
Active Directory sinnvoll für kleine Firma (15)

Frage von WolfPeano zum Thema Windows Server ...

Windows Server
gelöst Verschlüsselungsmethode Active-Directory Domänen Usern (4)

Frage von User79 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...