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)

Frage Microsoft Windows Userverwaltung

Mitglied: win-hesse

win-hesse (Level 1) - Jetzt verbinden

23.08.2011 um 13:57 Uhr, 7257 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 ...

Windows Server
Computer und User im AD verschieben
Frage von TrubadixWindows Server4 Kommentare

Hallo, Ich arbeite mich gerade in die Gruppenrichtlinien ein. Hierbei halte ich mich an die Anleitungen von . Bei ...

Windows Server
Primary Computer in der AD wird nicht angegnommen
Frage von weku85Windows Server8 Kommentare

Hallo Zusammen, nachdem ich sehr lange nun schon rumprobiere und es nicht gebacken bekommen hier mein Anliegen. Unsere Administratoren ...

Batch & Shell
Powershell Nicht AD Computer identifizieren
Frage von MarabuntaBatch & Shell5 Kommentare

Hallo, ich will Computer identifizieren und den Computern Aufgaben hinterlegen. Der Rohbau den ich gerade angefangen habe sieht so ...

Neue Wissensbeiträge
Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 2 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 3 TagenWebbrowser7 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Sicherheit

Teamviewer Sessions können gekapert werden - Update tw. verfügbar

Information von sabines vor 3 TagenSicherheit6 Kommentare

In bestimmten Konstellationen können Teamviewer Sessions gekapert werden, wahrscheinlich aber ein recht unwahrscheinliches Szenario. Da der Teamviewer gerne für ...

Digitiales Fernsehen

Apple TV: Amazon Prime App ist verfügbar

Information von Frank vor 4 TagenDigitiales Fernsehen4 Kommentare

Die Amazon Prime Video App kann ab sofort auf einem Apple TV ab der 3 Generation installiert werden. Einfach ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Windows Server
Server 2012 über Eingabeaufforderung devmgmt.msc geht nicht
gelöst Frage von achim222Windows Server9 Kommentare

Hallo, ich habe hier einen Server 2012 der im Reparaturmodus startet. Es liegt an einem falschen VirtIO Treiber für ...