BJG 10 Geschrieben 5. Februar 2004 Melden Teilen Geschrieben 5. Februar 2004 Hallo Zusammen ich habe eine Frage zu KIX, habe es bisher geschafft beim Anmeldescript mit Hilfe der USERID und des FULLNAME den Vor und Nachnahmen sowie den Loginnamen aus den User Eigenschaften in unserer Domäne auszulesen. Ich bräuchte aber noch die Telefonnummer Fax, die Initialen, die e-mail sowie die Abteilung. Der Code bisher sieht so aus: if ingroup("Word") $debug_file="C:\@FULLNAME.xls" RedirectOutput($debug_file,1) ? "@FULLNAME" ? "@userid" endif Wenn sich jemand damit auskennt und vielleicht weiss wie man die oben angegeben Daten ebenfalls auslesen kann, wäre das Wahnsinn. Merci schon im voraus Gruß BJG Zitieren Link zu diesem Kommentar
fresch_heit2000 10 Geschrieben 11. Oktober 2004 Melden Teilen Geschrieben 11. Oktober 2004 versuchs mal damit ;) mfg stefan ;=============================================================================================== ;**** Created with KiXscripts Editor | http://KiXscripts.com **** Break ON CLS ;**** Last Modified on 2/22/2003 at 6:14:41 PM by chassan **** ;**** craighassan@techemail.com **** ;=============================================================================================== ; Create an Access database and populate with domain and PC info from Active Directory. Dim $accDB ; !!!!! Microsoft Access must exist on host PC !!!!! ; Create an instance of Access $accDB = CreateObject("Access.Application") ; Check for error If @ERROR <> 0 Gosub ACCESSERROR EndIf ; Path and File name $DBPath = @SCRIPTDIR + "\" $DBNameA = Split(@SCRIPTNAME, ".") For Each $Element In $DBNameA If $Element = "kix" Else $DBName = $Element + ".mdb" EndIf ; Create the Database $newTest = $accDB.NewCurrentDatabase($DBPath + $DBName) ; Wait for DB to be created Sleep 1 $ = SetTitle ("Information stored in: " + $DBPath + $DBName)? ; Connect to DB $db = CreateObject("ADODB.Connection") $db.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ="+ $DBPath + $DBName) ; !!!!! Active Directory? !!!!! ; Connect to AD to retrieve domain info $colInfo = CreateObject("ADSystemInfo") $rtn = $colInfo.DomainDNSName $rtn = Split($rtn, ".") $eNum = 0 For Each $Element In $rtn If $eNum = 0 $domName = $Element Else $domSuffix = $Element EndIf $eNum = $eNum + 1 Next ; Create table in DB to store domain info $sSQL = "CREATE TABLE DOMAIN (DOMAINNAME TEXT(255) PRIMARY KEY, DOMAINSUFFIX TEXT(255))" $rs = $db.Execute($sSQL) ; Populate table with domain info $sSQL = "INSERT INTO DOMAIN (DOMAINNAME, DOMAINSUFFIX) VALUES ('" + $domName + "', '" + $domSuffix + "')" $rs = $db.Execute($sSQL) ; Connect AD to retrieve domain PC info $ADS_SCOPE_SUBTREE = 2 $objConnection = CreateObject("ADODB.Connection") $objCommand = CreateObject("ADODB.Command") $objConnection.Provider = "ADsDSOObject" $objConnection.Open "Active Directory Provider" $objCOmmand.ActiveConnection = $objConnection $objCommand.CommandText = "Select Name, Location from 'LDAP://DC=" + $domName + ",DC=" + $domSuffix + "' " + "where objectClass='computer'" For Each $Element In $objCommand.Properties If $Element.Name = "Page Size" $Element.Value = "1000" EndIf If $Element.Name = "Timeout" $Element.Value = "30" EndIf If $Element.Name = "Searchscope" $Element.Value = $ADS_SCOPE_SUBTREE EndIf If $Element.Name = "Cache Results" $Element.Value = "False" EndIf Next $objRecordSet = $objCommand.Execute ; Count of PC's found $compCount ; !!!!! AD EXIST? !!!!! If @ERROR <> 0 Gosub ADERROR EndIf ; We made it this far... ; Create table to store PC from AD names in DB Table named AllComputers $sSQL = "CREATE TABLE AllComputers (id COUNTER, ComputerName TEXT(255) PRIMARY KEY, Location TEXT(255))" $rs = $db.Execute($sSQL) ; If the table exists delete it so we have fresh info If @ERROR <> 0 $sSQL = "DROP TABLE AllComputers" $rs = $db.Execute($sSQL) $sSQL = "CREATE TABLE AllComputers (id COUNTER, ComputerName TEXT(255) PRIMARY KEY, Location TEXT(255))" $rs = $db.Execute($sSQL) EndIf ; Move to first record in AD Recordset $objRecordSet.MoveFirst ; Loop through AD records to enum PC names Do $strComputer = $objRecordSet.Fields("Name").Value ? $strComputer ; Increment Count of PC's found $compCount = $compCount + 1 ; Populate table with PC names and locations $sSQL = "INSERT INTO AllComputers (ComputerName, Location) VALUES ('" + $objRecordSet.Fields("Name").Value + "', '" + $objRecordSet.Fields("Location").Value + "')" $rs = $db.Execute($sSQL) $objRecordSet.MoveNext Until $objRecordSet.EOF Sleep 5 $accDB.Visible = True $ = $accDB.OpenCurrentDatabase($DBPath + $DBName) ;$accDB.Quit ;Del $DBPath + $DBName CLS ??? " Information collected successfully." ?????? " Database located at: " + $DBPath + $DBName Sleep 10 Do Sleep 5 Until $accDB.Visible = False ; SUCCESS! Exit 0 ; !!!!! Access EXIST? !!!!! ; Error occurred we assume it is because of Microsoft Access not existing :ACCESSERROR CLS Color r+/n Beep Box (0, 1, 1, 75, "- ") ??? "Error: " + @ERROR ???? " This Script requires Microsoft Access to be installed!" ?? " If Microsoft Access is installed and working properly" ? " then there was an error creating a Microsoft Access instance object" ? " with this script." ?? " This script was designed to operate with Microsoft Access XP but should be backward compatible!" ????? " Script Exit Code - 998" Box (23, 1, 1, 75, "- ") Sleep 30 ; Exit with 998 ; Microsoft Access must exist for this script to work $accDB.Quit Exit 998 ; !!!!! AD EXIST? !!!!! ; Error occurred we assume it is because of AD or domain info :ADERROR CLS Color r+/n Beep Box (0, 1, 1, 75, "- ") ??? "Error: " + @ERROR ???? " This Script requires Active Directory!" ?? " If Active Directory is installed and working properly" ? " then domain information is being incorrectly reported" ? " by this script." ?? " This script is designed to operate in single domain environment!" ????? " Script Exit Code - 999" Box (23, 1, 1, 75, "- ") Sleep 30 ; Exit with 999 ; AD must exist for this script to work $accDB.Quit Exit 999 Zitieren Link zu diesem Kommentar
Ortlieb 10 Geschrieben 11. Oktober 2004 Melden Teilen Geschrieben 11. Oktober 2004 Warum nicht mit WSH und LDAP alles aus dem AD auslesen? So habe ich es zumindest gemacht. Beim anmelden läuft ein Script ab was den Anmeldenamen ausliest und dann eine Verbindung zum AD herstellt und dort die gewünschen Informationen ausliest und zur Weiterverarbeitung speichert. Setzt natürlich voraus, im AD sind diese Daten ordentlich hinterlegt. Gruß, Ortlieb Zitieren Link zu diesem Kommentar
fresch_heit2000 10 Geschrieben 11. Oktober 2004 Melden Teilen Geschrieben 11. Oktober 2004 oder so ;) das oben erstellt halt eine datenbank ;) ich selber logge z.b. anmelde zeiten anmelderechner, software inventarisierung und die hardware über mein anmeldescript mit und schreib alle daten in txt dateien und csv-files Zitieren Link zu diesem Kommentar
BJG 10 Geschrieben 15. Oktober 2004 Autor Melden Teilen Geschrieben 15. Oktober 2004 Hallo zusammen, vielen Dank für die Hilfe und die Mühe, hat mit beiden Möglichkeiten funktioniert. Gruß BJG Zitieren Link zu diesem Kommentar
Flare 12 Geschrieben 15. Oktober 2004 Melden Teilen Geschrieben 15. Oktober 2004 Hi Freshheit.. wir setzen auch kix ein. find dein script sehr gut und die idee mit der datenbank und softwareinventarisierung auch klasse. Wenn du nichts dagegen hast schick ich dir mal ne mail zu der email die oben im script angegeben ist :) Greetz Flare Zitieren Link zu diesem Kommentar
fresch_heit2000 10 Geschrieben 16. Oktober 2004 Melden Teilen Geschrieben 16. Oktober 2004 klar kannst mir ne mail schicken... nur die mail in dem script is nich von mir :) hab das scipt in netz gefunden ...und original gepostet ... hab hier in der firma auch noch einiges an scripten... kix hat mir das leben schon sehr erleichtert... wenn du lust hast können wir gern n paar infos austauschen freschheit2000@yahoo.de mfg stefan Zitieren Link zu diesem Kommentar
RalfG 10 Geschrieben 18. Oktober 2004 Melden Teilen Geschrieben 18. Oktober 2004 @Fresch_heit2000! Ich logge auch mit Kixtart diverse Infos in txt-Dateien und würde gerne Erfahrungen austauschen. Leider bin ich hier im Board gerade erst geboren worden und darf daher noch keine Mails schicken... vielleicht kannst Du mir mal mailen? Thanks! Ralf Zitieren Link zu diesem Kommentar
fresch_heit2000 10 Geschrieben 18. Oktober 2004 Melden Teilen Geschrieben 18. Oktober 2004 hi @ralf.. kannst mir doch ne mail schicken... hab doch xtra meine emailadresse mit reingeschieben ... mfg stefan Zitieren Link zu diesem Kommentar
Flare 12 Geschrieben 19. Oktober 2004 Melden Teilen Geschrieben 19. Oktober 2004 Hi, deine mail klappt net... mich interessiert bedonders deine lösung zur softwareinventarisierung. Greetz Flare Zitieren Link zu diesem Kommentar
RalfG 10 Geschrieben 19. Oktober 2004 Melden Teilen Geschrieben 19. Oktober 2004 Hi @fresch_heit2000 Ich kann Flare´s Aussage bestätigen - Du hast keine yahoo.de-Adresse - sagt jedenfalls die Message, die ich zurück bekomme ;) Ralf Zitieren Link zu diesem Kommentar
fresch_heit2000 10 Geschrieben 19. Oktober 2004 Melden Teilen Geschrieben 19. Oktober 2004 hi .. ups sorry stimmt hab mich vertippt fresch_heit2000@yahoo.de hab doch glatt den unterstrich vergessen sorry. ich schick dir gern mal n paar testscripte.. oder mein aktuelles anmeldescript. mfg stefan Zitieren Link zu diesem Kommentar
Flare 12 Geschrieben 21. Oktober 2004 Melden Teilen Geschrieben 21. Oktober 2004 Sie haben Post :) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.