Jump to content

User auslesen mit KIX


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar
  • 8 Monate später...

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...