Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst VB LDAP AD Computer Konto auslesen (managedBy)

Mitglied: win-hesse

win-hesse (Level 1) - Jetzt verbinden

23.08.2011 um 13:57 Uhr, 7463 Aufrufe, 20 Kommentare

Hallo Zusammen,

ich suche nach einem Script wie ich das Feld "managedBy" von einem einzelen AD Computer Konto auslesen kann

01.
Set objDomain = GetObject("LDAP://rootDse")
02.

03.
objDC = objComputer.Get("managedBy")
04.

05.
Wscript.Echo "Hier die Info:" & objDC



leider geht diese nicht so einfach oder was mach ich falsch ?

Gruß
Mitglied: bastla
23.08.2011 um 15:20 Uhr
Hallo win-hesse!

Wenn Du dem Script noch eine Zeile der Art
Set objComputer = GetObject("LDAP://CN=Der_PC,CN=Computers,DC=firma,DC=de")
spendierst (nur, damit vielleicht auch klar wird, welchen Computer Du meinst), sollte das Deine Chancen wesentlich verbessern ...

Grüße
bastla
Bitte warten ..
Mitglied: win-hesse
24.08.2011 um 12:44 Uhr
hi bastla,

leider bekomme ich es nicht so richtig hin

hast du noch eine idee oder tipp für mich ?

01.

02.
Set oWSH = CreateObject("WScript.Shell") 
03.
computer = oWSH.ExpandEnvironmentStrings("%COMPUTERNAME%")
04.
domain = oWSH.ExpandEnvironmentStrings("%USERDOMAIN%")
05.

06.
Set objComputer = GetObject ("LDAP://CN=computer,CN=Computers,DC=domain,DC=com")
07.

08.
objDC = objComputer.Get("managedBy")
09.

10.
Wscript.Echo "Hier die Info:" & objDC
11.

12.
Bitte warten ..
Mitglied: bastla
24.08.2011 um 15:08 Uhr
Hallo win-hesse!

Wenn es um den aktuellen Rechner geht, dann etwa so:
01.
Set objComputer = GetObject("LDAP://" & CreateObject("ADSystemInfo").ComputerName)
02.

03.
On Error Resume Next
04.
Manager = objComputer.Get("managedBy")
05.
On Error Goto 0
06.

07.
If Manager <> "" Then
08.
    WScript.Echo Manager
09.
    WScript.Echo Split(Split(Manager, ",")(0), "=")(1)
10.
Else
11.
    WScript.Echo "Kein Eintrag vorhanden!"
12.
End If
Grüße
bastla
Bitte warten ..
Mitglied: win-hesse
24.08.2011 um 15:39 Uhr
hi,

das läuft sehr gut

na ja ich dachte ich könne es dann ganz einfach anpassen an eine eingabe feld
davor basteln aber

ich bekomme immer einen fehler

meinst du könntest das kurz machen ?

danke
Bitte warten ..
Mitglied: bastla
24.08.2011 um 16:22 Uhr
Hallo win-hesse!

Vielleicht fängst Du ganz vorn vorne an und erklärst, was genau Du wie erreichen willst ...

Grüße
bastla
Bitte warten ..
Mitglied: win-hesse
25.08.2011 um 09:16 Uhr
Hi,

ok ist wohl das beste

bei uns läuft zur Zeit der Win7 Rollout
und wir haben ein Tool das den PC in die Domain aufnimmt und einen eine PC Namen vergibt
dieses war bis lang nicht so und man konnte aus der alten Syntax erkennen zu welcher Abteilung und Standort diese gerät gehört

die Infos stehen aber im AD Konto vom Computer
daher Baste ich gerade mit Visual Basic 2010 Express so ein kleine VB Anwendung
die uns die Arbeit erleichtern soll
zb. kann ich die User ID eingeben und gleich mehr Infos anzeigen lassen (Account gesperrt und so weiter)
durch den teil kann ich immer weiter User AD Infos raus bekommen... oUser.IsAccountLocked...
01.
       Vpuser = TB2.Text
02.
        getrimmt = Vpuser.Trim(" ")
03.

04.
        oUser = GetObject("WinNT://domain/" & Vpuser)
05.

06.
        TB9.Text = "Benutzer: " & oUser.FullName & vbCrLf
07.
        TB9.Text = TB9.Text & "Kennwortalter: " & (oUser.PasswordAge / 3600) \ 24.0
jetzt will ich das Computer Konto auch befragen können da die info im managedBy sehr Wichtig für uns ist
es soll so sein as ich Problem los weiter Infos herraus ziehen kann

verstanden ?

Gruß
Bitte warten ..
Mitglied: win-hesse
26.08.2011 um 09:40 Uhr
Hi,

ich brauch eigentlich nur eine erklärung zu dem Teil
bzw. wie ich hier die Computer Variabel hinzufügen kann

Set objComputer = GetObject("LDAP://" & CreateObject("ADSystemInfo").ComputerName)

danke für eure hilfe
Bitte warten ..
Mitglied: bastla
26.08.2011 um 11:04 Uhr
Hallo win-hesse!

Sorry - ich verstehe die Frage nicht ganz; mit der angegebenen Zeile (lass Dir einfach einmal das Ergebnis von
CreateObject("ADSystemInfo").ComputerName
anzeigen) wird ja das Computer-Objekt anhand des AD-Pfades erzeugt - wenn Du also einen anderen Computer ansprechen wolltest, wären wir wieder ganz oben in diesem Thread ...

Grüße
bastla
Bitte warten ..
Mitglied: win-hesse
26.08.2011 um 12:52 Uhr
habe ien Lösung gefunden

mit objCommand.CommandText = "Select ManagedBy from 'LDAP://

geht super bei Intresse PM
Bitte warten ..
Mitglied: bastla
26.08.2011 um 13:58 Uhr
Hallo win-hesse!

Wie ist
bei Intresse PM
gemeint?

Grüße
bastla
Bitte warten ..
Mitglied: BigWim
26.08.2011 um 14:58 Uhr
[OT]
@bastla

Vielleicht kannst Du ja noch etwas lernen

Ok, ich halt mich raus.

Schönes Wochenende
Markus

[/OT]
Bitte warten ..
Mitglied: bastla
26.08.2011 um 16:14 Uhr
[OT]
@BigWim
Vielleicht kannst Du ja noch etwas lernen
Das würde ich nie ausschließen - aber eigentlich ging's mir eher darum, wie win-hesse den Sinn eines Forums sieht ...

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: win-hesse
29.08.2011 um 10:30 Uhr
Hi,

so war das nicht gemeid...
hier ist die lösung aber ich kann diese nicht erklären bzw. verstehe diese auch nicht

Gruß

01.

02.
        Vpc = TB1.Text
03.

04.
        Const ADS_SCOPE_SUBTREE = 2
05.

06.
        objFSO = CreateObject("scripting.filesystemobject")
07.

08.
        objConnection = CreateObject("ADODB.Connection")
09.
        objCommand = CreateObject("ADODB.Command")
10.
        objConnection.Provider = "ADsDSOObject"
11.
        objConnection.Open("Active Directory Provider")
12.
        objCommand.ActiveConnection = objConnection
13.
        objCommand.CommandText = "Select ManagedBy from 'LDAP://OU=,DC=,DC=,DC=,DC=com' where Name='" & Vpc & "'"
14.
        objCommand.Properties("Page Size") = 1000
15.
        objCommand.Properties("Timeout") = 30
16.
        objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
17.
        objCommand.Properties("Cache Results") = False
18.
        objRecordSet = objCommand.Execute
19.
        Manager = (objRecordSet.Fields("ManagedBy").Value)
20.
        objRecordSet.MoveNext()
21.

22.
        TB9.Text = (Split(Split(Manager, ",")(0), "=")(1))
23.
Bitte warten ..
Mitglied: win-hesse
30.08.2011 um 20:38 Uhr
hi,
habt ihr das ganze verstanden ? kann es mir jemand in etwa erklären ?

hätte da noch eine frage

errorlevel wie und wo müsste ich diese einbauen
weil aktuell stürtzt das script ab wenn der PC nicht im AD ist

Gruß
Bitte warten ..
Mitglied: bastla
30.08.2011 um 21:32 Uhr
Hallo win-hesse!

Ich weiß ja nicht, wo Du das Script oben aufgetrieben hast, aber einige Details sind nicht ganz astrein - besser sollte es so gehen:
01.
Vpc = TB1.Text
02.

03.
Const ADS_SCOPE_SUBTREE = 2
04.

05.
Set objConnection = CreateObject("ADODB.Connection")
06.
Set objCommand = CreateObject("ADODB.Command")
07.
objConnection.Provider = "ADsDSOObject"
08.
objConnection.Open "Active Directory Provider"
09.
Set objCommand.ActiveConnection = objConnection
10.

11.
objCommand.CommandText = _
12.
    "Select Name, ManagedBy from " & _
13.
        "'LDAP://DC=firma,DC=com' where objectClass='computer'and name='" & Vpc & "'"
14.
objCommand.Properties("Page Size") = 1000
15.
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
16.

17.
Set objRecordSet = objCommand.Execute
18.

19.
If objRecordSet.EOF Then 
20.
    Manager = "Computer nicht gefunden"
21.
Else
22.
    objRecordSet.MoveFirst
23.
    Manager = objRecordSet.Fields("ManagedBy").Value
24.
    If Manager <> "" Then
25.
        Manager = Split(Split(Manager, ",")(0), "=")(1)
26.
    Else
27.
        Manager = "kein Eintrag"
28.
    End If
29.
End If
30.

31.
TB9.Text = Manager
Was das Script macht, ist relativ einfach - es wird, ausgehend von der angegebenen Ebene (eine OU bzw im Beispiel hier die gesamte Domäne) nach einem Computer mit dem vorgegebnen Namen gesucht. Die Abfrage ist dabei im SQL-Stil formuliert. Das Ergebnis ist ein RecordSet, das üblicher Weise mit einer Schleife der Art
01.
Do Until objRecordSet.EOF
02.
...
03.
Loop
durchlaufen wird. Wenn nur der erste (und einzige) Eintrag interessiert, kann dieser auch direkt abgefragt werden - falls er existiert und nicht bereits vorweg "EOF" erreicht ist.

Grüße
bastla
Bitte warten ..
Mitglied: win-hesse
31.08.2011 um 08:30 Uhr
langsamm komm ich dahinter

nur das mit der Schleife habe ich noch nicht so ganz verstanden
da ich mehre Wert ausgeben will

mit dem alten Teil von mir hatte ich immer das Problem das ich das Feld "serialNumber" nicht raus bekommen habe
bzw. das der Typ Object() nicht definiert ist

andere felder wie "operatingSystem" "whenCreated" "title" alle kein Problem

Gruß
Bitte warten ..
Mitglied: bastla
31.08.2011 um 10:22 Uhr
Hallo win-hesse!
nur das mit der Schleife habe ich noch nicht so ganz verstanden
da ich mehre Wert ausgeben will
Die Schleife läuft über alle Objekte - bei Abfrage eines bestimmten Computers anhand seines Namens ist das dann eben nur eines (oder keines) - wenn Du Computer mit einem bestimmten OS suchst, werden mehrere Objekte zurückgegeben. Welche und wieviele Werte Du für das jeweilige Objekt abfragen willst, hat mit der Schleife nix zu tun ...
Hinsichtlich der einzelnen Werte / Felder hat zB Yusuf hier eine Übersicht zusammengestellt ...

Grüße
bastla
Bitte warten ..
Mitglied: win-hesse
01.09.2011 um 18:36 Uhr
Also ist das so nicht richtig ??

klappt aber bis auf wenn ich Manager3 hinzufüge
dann bekomme ich immer FM: InvalidCastException wurde nicht behandel. Der Operator & ist für Zeichenfolge .... und Typ Objekte() nicht definiert.

hast noch eine idee für mich ?


01.
        objRecordSet = objCommand.Execute
02.

03.
        If objRecordSet.EOF Then
04.
            MsgBox("Computer nicht gefunden")
05.
            'Manager = "Computer nicht gefunden"
06.
        Else
07.
            objRecordSet.MoveFirst()
08.
            Manager = objRecordSet.Fields("ManagedBy").Value
09.
            Manager2 = (objRecordSet.Fields("Location").Value)
10.
            Manager3 = (objRecordSet.Fields("serialNumber").Value)
11.
            Manager4 = (objRecordSet.Fields("dNSHostName").Value)
12.
            Manager5 = (objRecordSet.Fields("operatingSystem").Value) & " " & (objRecordSet.Fields("operatingSystemVersion").Value)
13.
            Manager7 = (objRecordSet.Fields("whenCreated").Value)
14.
            Manager8 = (objRecordSet.Fields("title").Value)
15.

16.
            If Manager <> "" Then
17.
                Manager = Split(Split(Manager, ",")(0), "=")(1)
18.
            Else
19.
                Manager = "kein Eintrag"
20.
            End If
21.

22.
        End If
23.

24.
        TB9.Text = Manager & vbCrLf
25.
        TB9.Text = TB9.Text & Manager2 & vbCrLf
26.
        TB9.Text = TB9.Text & Manager3 & vbCrLf
27.
        TB9.Text = TB9.Text & Manager5 & vbCrLf
28.
        TB9.Text = TB9.Text & Manager7 & vbCrLf
29.
        TB9.Text = TB9.Text & Manager8 & vbCrLf
Bitte warten ..
Mitglied: bastla
01.09.2011 um 18:49 Uhr
Hallo win-hesse!

Versuch es mit folgender Zeile 10:
01.
Manager3 = Join(objRecordSet.Fields("serialNumber").Value)
BTW: Die (äußeren) Klammern in den Zeilen 9 und 11 - 14 solltest Du ersatzlos streichen können ...

Grüße
bastla
Bitte warten ..
Mitglied: win-hesse
08.09.2011 um 16:53 Uhr
hi,

habe das ganze mit den Klammer noch weg genommen und ein par keinigkeiten verbesser
super danke für deine top hilfe

Gruß
Bitte warten ..
Ähnliche Inhalte
Windows Server

LDAP Authentifizierungsproblem bei Gruppen eines AD

gelöst Frage von Monto1Windows Server17 Kommentare

Hallo zusammen, ich lerne mich gerade in LDAP ein, als Test möchte ich den Dokumentenscanner (Der die Benutzer über ...

PHP

LDAP (AD) per PHP erreichen - was fehlt?

Frage von QQR700PHP2 Kommentare

Hallo, ein Ubuntu-18-Server mit Apache und PHP7.1 versucht, eine LDAP-Verbindung zu einem Active-Directory Server aufzubauen. Problem: es geht nicht ...

Cloud-Dienste

Cloud-Speicher mit LDAP- und AD Integration

Frage von MasseschleifeCloud-Dienste5 Kommentare

Guten Tag zusammen, ich suche einen Anbieter für Cloud Storage mit LDAP- und AD Integration. Idealerweise läßt sich der ...

Linux Userverwaltung

AD,LDAP Gruppe auf Lokale Gruppe abbilden

Frage von Phill93Linux Userverwaltung9 Kommentare

Hallo, ich habe folgendes Problem: Ich nutze die Software OPSI diese benötigt für die Administration 2 Lokale Gruppen (pcpatch ...

Neue Wissensbeiträge
Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 13 StundenWindows 101 Kommentar

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 15 StundenSicherheit5 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Microsoft Office
TEAMS - Skype for business
Tipp von Nebellicht vor 15 StundenMicrosoft Office

Hallo, ms ersetzt Skype for business durch TEAMS. Also, nicht wundern wenn mit der OFFICE365 Umgebung kein Skype for ...

Windows 10

Windows 10: Cortana und die Suche gehen bald wieder eigene Wege

Information von Frank vor 19 StundenWindows 102 Kommentare

Microsoft hat einen neuen Insider Build von Windows 10 veröffentlicht (Fast Ring, Version 18317), wo die digitale Assistentin "Cortana" ...

Heiß diskutierte Inhalte
Windows Server
Uhren gehen immer wieder falsch
Frage von killtecWindows Server23 Kommentare

Hallo, ich habe folgende Konstellation: 1. Physischer DC Div. Virtuelle DC's auf Hyper-V Servern Die Hyper-V-Server, der Physische DC ...

Switche und Hubs
Medienkonverter mit 12 oder 24 Ports gesucht
Frage von wmuellerSwitche und Hubs22 Kommentare

Guten Morgen, ich bin auf der Suche nach einem größeren Medienkonverter, der "stumpf" 1:1 die Ports auf über ein ...

Debian
OpenSSH Login mit Public Key schlägt fehl, mit Passwort funktioniert
gelöst Frage von DKowalkeDebian19 Kommentare

Hallo zusammen, ich hatte hier schon nach einer Anleitung für einen SFTP Server mit Linux gefragt, habe dort auch ...

Windows 10
VM wächst schnell von 14 auf 35 GB an - warum?
Frage von degudejungWindows 1018 Kommentare

Hallo, ich bin ein Freund schlanker VMs und setze daher gerne mit dem Erscheinen einer neuen Win10 Version - ...