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

OU des User Abfragen

Frage Entwicklung Batch & Shell

Mitglied: unique24

unique24 (Level 2) - Jetzt verbinden

16.04.2007, aktualisiert 23.04.2007, 14170 Aufrufe, 12 Kommentare

über Script

Hallo

Ich möchte gerne über ein vbs Script, Netzwerk Freigaben mappen.

Beispiel:
User x aus der OU:Personal,OU:Elektrik soll mit Freigabe \\w03team3\Elektrik und LW U: verbunden werden.

per Batch:
net use U: \\w03team3\Elektrik /p:n

Nun möchte ich aber Variablen nutzen. Dazu müßte ich über das Script die OU´s herausbekommen, welcher der User angehört, der das Script ausführt.

Ich programmiere zwar mit vb.net aber die OU´s kann ich nicht auslesen.
Hat hier jemand eine kurze Hilfe?
Das Zuweisen in vb der Freigaben ist mir auch noch unbekannt ... aber da könnte ich ein .cmd mit Paramter des OU starten.
Den Rest müßte ich dann schon sellbst heraus bekommen.

Für einen Tipp den OU des Users zu bekommen, der das Script startet, wäre ich dankbar!

Hannes

PS: Wäre das auch mit reinem Batch möglich?

[Edit Biber 29.5.07] Wegen des Verlaufs des Beitrags und der schönen Skripting-Links am Ende (THX @bastla) verschoben von "Windows Server" nach "Batch & Shell" (dem Sammelbecken für Script-Lösungen hier im Forum).
[/Edit]
Mitglied: datasearch
16.04.2007 um 17:01 Uhr
ich hab KA von VB, aber für andere zwecke mache ich einen ldap-query nach dem DN und nutze "=" und "," als trennzeichen. zb. die ausgabe "cn=user user,cn=builtin,dc=irgendwas,dc=irgendwas" zuerst per "," trennen und die benötigten felder dann nochmal mit "=" als trennzeichen zerlegen.

1. Stufe - Trennen mit "," als Feldtrenner
"cn=user user"
"cn=builtin" <<< Benötigte OU
"dc=rgendwas"
"dc=irgendwas"
2. Stufe - Die benötigten felder mit "=" nochmal trennen
"builtin"

Naja, ist nur nen ansatz. Vieleicht kannst das ja irgendwie in dem VB einsetzen.
Bitte warten ..
Mitglied: problemsolver
16.04.2007 um 17:24 Uhr
Hi!

vielleicht geht es einfacher, wenn Du alle Benutzer der OU in eine Sicherheitsgruppe packst und dann mit ifmember die Gruppenzugehörigkeit abfragst? Hierbei kannst Du dann auch die Zugehörigkeit zu mehreren Gruppen geschickt im Script ausnutzen.

Gruß

Markus
Bitte warten ..
Mitglied: unique24
16.04.2007 um 18:05 Uhr
Hallo Markus

Beschäftige mich mit Win 2003 Server erst seit 2 Wochen ... im Moment lerne ich mir Active Directory.
Daher sind meine Kenntnisse noch sehr bescheiden.

In Punkto Sicherheitsgruppe wollt ich mich auch schon einlesen .. werde ich heute noch machen!

ifmember werde ich einmal googlen ... oder hast du eventuell ein Beispiel?

@datasearch
ein LDAP Query ist mir neu ... machst du das in einer Batch Umgebung?
Leider kann ich dadurch dein Beispiel nicht auflösen

Gruß
Hannes
Bitte warten ..
Mitglied: problemsolver
16.04.2007 um 20:50 Uhr
Hi!

Klar hab ich ein Beispiel... Sorry. Hätte ich auch schon längst posten können

01.
%logonserver%\netlogon\tools\ifmember "Geschaeftsleitungsteam" 
02.
if %errorlevel% EQU 1 @net use g: \\fileserver\geschaeftsleitung$ /yes /persistent:yes
Sobald ein Benutzer ein Mitglied der Gruppe ist, wird von ifmember der errorcode 1 zurückgeliefert.
Durch eine Errorlevelabfrage kannst du somit bestimmen, ob jemand Mitglied ist oder nicht und dann dementsprechend einen nachfolgenden Befehl ausführen:
01.
@net use g: \\fileserver\geschaeftsleitung$ /yes /persistent:yes
Schau dir einfach mal den Syntax von "net use" an. Start->Ausführen->CMD->net use /?
Ein Tipp: Ein $-Zeichen am Ende einer Freigabe versteckt die Freigabe vor allzu neugierigen Mitarbeitern, dich sich im Netz umschauen möchten. (aber man sollte dennoch die richtigen Sicherheitsberechtigungen stets setzen...)

Das Tool ifmember ist ein Bestandteil des Resource Kits von Microsoft. Das Tool lädst du hier herunter:

Ifmember Download

Lege Tools im Netlogon Verzeichnis deines Anmeldeservers in der Domäne ab. Für mich hat es sich bewährt ein Unterverzeichnis Tools anzulegen, so dass man den Überblick nicht verliert.

Ansonsten wünsch ich noch viel Erfolg. Eventuell würde ich dir noch ein paar Batch-Tutorials empfehlen, wenn Du dich dort einlesen möchtest.

Gruß

Markus
Bitte warten ..
Mitglied: unique24
17.04.2007 um 07:00 Uhr
Guten Morgen Markus

Ok, ifmember verstanden, vielen Dank.

Führt mich aber noch nicht zu meinem Ziel.
Ich möchte ja die Freigabe mit dem Namen der OU des Users verknüpfen.
Somit bräuchte ich die OU in einer Variable, welches ich dann in net use einsetzen kann:
net use U: \\w03team3\Abteilung\%1% /p:n

wobei %1 die OU darstellt ... eventuell starte ich das Script mit Parameter und trage es in jeder Abteilung ein.
Somit bekommt jeder das Netzlaufwerk verbunden, für seine Abteilung.

Interessant wäre eben gewesen, die OU auszulesen und somit ohne Paramter zu starten, was den Arbeitsaufwand eben etwas reduziert.

In Batch Tutorials würde ich mich SEHR gerne einlesen!

Gruß

Hannes
Bitte warten ..
Mitglied: Biber
17.04.2007 um 20:01 Uhr
Moin unique24,

willkommen im Forum.

Für Deine zuletzt gepostete Strategie gibt es ein paar Standalone-ListGroup-Tools, aber das ist ja so schnell per VBS zusammengeklimpert, da lohnt sich ein Downloaden gar nicht.

Schnelles .VBS-Beispiel:
01.
'----Snipp ListGroups.vbs [gedacht in einem Login/Mapping-Skript] 
02.
Set objSysInfo = CreateObject("ADSystemInfo") 
03.
Set objNetwork = CreateObject("Wscript.Network") 
04.
 
05.
strUserPath = "LDAP://" & objSysInfo.UserName 
06.
Set objUser = GetObject(strUserPath) 
07.
 
08.
For Each strGroup in objUser.MemberOf 
09.
    strGroupPath = "LDAP://" & strGroup 
10.
    Set objGroup = GetObject(strGroupPath) 
11.
    strGroupName = objGroup.CN 
12.
    wscript.echo strGroupName 
13.
'    Select Case strGroupName 
14.
'        Case "Elektrik" 
15.
'            objNetwork.MapNetworkDrive "U:" , "\\w03team3\Elektrik"  
16.
'         
17.
' eventuell Home-Laufwerk ?         
18.
'            objNetwork.MapNetworkDrive "H:", "\\w03team\Users\" & objUser.sAMAccountName 
19.
'             
20.
'        Case "Beschwerdeabteilung" 
21.
'            objNetwork.MapNetworkDrive "X:", "\\server666\Garbage 
22.
' ........             
23.
'    End Select 
24.
Next
Der Schnipsel OHNE die mit "'" auskommentierten Zeilen würde nur die Gruppen auflisten, denen der User angehört.
Und das könntest Du dann wiederum im Batch mit einer FOR/F-Anweisung abfackeln.

Aufruf im Batch:
01.
cscript //nologo DerSchipselOben.vbs 
02.
-bzw-  
03.
For /f %%i in ('cscript //nologo DerSchipselOben.vbs') do ( 
04.
   if /i [%%i] == [Elektrik] net use U: \\w03team3\Elektrik /p:n 
05.
   if /i [%%i] == [Kantine] net use U: \\wuergteam\Reste /p:n 
06.
   .... 
07.
)

[ungetestete Skizzen!]

Gruss
Biber
Bitte warten ..
Mitglied: datasearch
19.04.2007 um 18:02 Uhr
hallo biber,

nicht schlecht, soviel zu VB.
Da kannst du sicher auch die OU aus dem LDAP$ parsen.

Denn, wenn das im VB geht kann ich mein for /f ... batch-konstrukt wegschmeissen -g-. (frag nicht für was aber ich brauch ne liste aller OU´s in der User liegen)

grüße,

datasearch
Bitte warten ..
Mitglied: Biber
19.04.2007 um 19:18 Uhr
Moin datasearch,

alle OUs auflisten, in denen User sind? *kopfkratz*
Ungewöhnlich... weil, eigentlich müsstest Du die doch kennen...

Aber what shalls, wie der Lateiner sagt...

Schnell hingeschreddert wäre dieser Schnipsel für den Zweck:
01.
'-----ListAllOUs.vbs 
02.
Dim cn, rs, root, domain, strdomain, strtest 
03.
Set cn = CreateObject("ADODB.Connection") 
04.
set rs = CreateObject("ADODB.Recordset") 
05.
Set root = GetObject("LDAP://rootDSE")  
06.
strdomain = root.Get("defaultNamingContext")  
07.
 
08.
Set domain = GetObject("LDAP://" & strdomain)  
09.
 
10.
cn.ConnectionString = "Data Source=Active Directory Provider;Provider=ADsDSOObject"  
11.
cn.Open  
12.
 
13.
rs.ActiveConnection = cn  
14.
rs.Source = "<" & domain.ADsPath & ">;(&(objectCategory=OrganizationalUnit));distinguishedName"  
15.
' Anmerkung --- vielleicht reicht Dir statt "distinguishedname" auch einfach "name". Ausprobieren. 
16.
rs.Open  
17.
 
18.
Do While Not rs.EOF  
19.
    wscript.echo rs.Fields(0) 
20.
    rs.MoveNext  
21.
Loop  
22.
 
23.
rs.Close  
24.
cn.Close  
25.
Set rs = Nothing  
26.
Set cn = Nothing 
...aufzurufen wieder mit
01.
cscript //nologo [Lw:\Pfad\]ListOUs.vbs
Auf die Gefahr hin, dass ich verkalkt erscheine.... wie ist denn Dein geplantes Vorgehen??
Ich dachte, Du wolltest über eine Gruppenzugehörigkeit der Benutzer (sprich: Benutzername ist der einzig feste Punkt im Raum) irgendwelche Mappings machen.

Kannst Du noch mal kurz den Plan/ die Anforderung skizzieren?

Gruss
Biber
Bitte warten ..
Mitglied: unique24
21.04.2007 um 15:42 Uhr
Hallo

Vielen Dank für das vb Beispiel. Werde ich mir demnächst genauer anschauen.

Ich benötige den Namen der OU, weil die Freigaben der einzelnen OU´s genau so heißen.
Daher möchte ich mit einem einzigen Script jeden User das zugehörige Laufwerk seiner OU (Abteilung) mappen.

Gruß

Hannes
Bitte warten ..
Mitglied: datasearch
23.04.2007 um 10:18 Uhr
Hallo Biber,

es funktioniert einfach nur. Ich sollte mich doch mal intensiv mit VB befassen.

Warum ich das brauche? Lange Geschichte, kurz gesagt, es geht um automatisierte Dokumentation der AD-Strukturen in mehreren Gesammtstrukturen.

Hast du vieleicht eine Buchempfehlung für VB Scripting? Sollte schon Deutsch sein. Der scriptingGuide der bei den PSPress Büchern dabei ist finde ich nicht unbedingt so ausführlich.
Bitte warten ..
Mitglied: Biber
23.04.2007 um 11:12 Uhr
Moin datasearch,

bei Deiner Frage nach Literaturempfehlungen zu VBScripting muss ich auch passen - da könnte eventuell Kollege bastla besser weiterhelfen.

Ich habe gerade mal nachgeschaut, ob bei uns im Forum eventuell Buchtipps unter "Links" gepostet sind, bin aber nicht wirklich fündig geworden.

Als Einstiegspunkt für weitere Recherchen wäre evtl noch M$ Skript Center oder die M$-Scripting Guy-Seiten geeignet.

Falls Dir Besseres empfohlen wird, dann könntest Du bitte einen entsprechenden Link ins Forum einstellen.

Gruss
Biber
Bitte warten ..
Mitglied: bastla
23.04.2007 um 14:35 Uhr
Hallo datasearch!

Mit einer Buchempfehlung kann ich leider nicht dienen, aber viel gebracht haben auch mir die von Biber genannten Codebeispiele bei MS selbst, ausgehend vom oben verlinkten Script Center die erwähnten Hey, Scripting Guy!-Kolumnen und natürlich das Script Center Script Repository (als Offline-Versionen: The Hey, Scripting Guy! Archive und TechNet Script Center Sample Scripts)

ergänzt durch WMI Tasks for Scripts and Applications sowie ADSI Scripting Primer (dazu als Downloads: WMI Code Creator v1.0 und ADSI Scriptomatic)

und viele weitere Code-Beispiele quer durch's Web:
Rob van der Woude's VBScript Scripting Techniques
JSWare VBScript Samples and Components
faq-o-matic.net

Die Bücher von Holger Schwichtenberg kenne ich nicht aus eigener Anschauung, aber seine Informationen zu Windows Scripting könntest Du vielleicht interessant finden.

Noch mehr Deutschsprachiges findest Du bei Frank's Exchange FAQ (verlinkt).

So, damit dürftest Du für die nächsten paar Stunden beschäftigt sein ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Exchange Server
Dynamische Verteilergruppe mit User aus anderer OU?
gelöst Frage von PeakExchange Server4 Kommentare

Hallo zusammen Wir haben auf einem Exchange 2010 mehrere Dynamische Verteilergruppen eingerichtet. Diese haben den Filter "Benutzer mit Exchange-Postfächern" ...

Windows Server
GPO auf User-OU greift nicht
gelöst Frage von eastfrisianWindows Server2 Kommentare

hey, bräuchte mal kurz eine Hilfestellung. wahrscheinlich bin ich irgendwo auf dem Holzweg, aber ich komme einfach nicht drauf. ...

Batch & Shell
Powershell - User aus OU in eine andere OU mit Variable verschieben
gelöst Frage von LemonjuiceBatch & Shell3 Kommentare

Hallo Zusammen Ich bin gerade dabei ein Powershell Script zu schreiben. Es geht darum, nicht mehr benötigte User mit ...

Windows 7
Computer OU auslesen bzw. abfragen
Frage von mexx991Windows 72 Kommentare

Hallo zusammen, gibt es eine Möglichkeit direkt am Client per Powershell oder CMD-Konsole die OU des Computers abzufragen? Vielen ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 103 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.