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

VBScript Anzeigen aller Gruppen eines Benutzers im AD

Frage Entwicklung VB for Applications

Mitglied: Sandfish

Sandfish (Level 1) - Jetzt verbinden

27.10.2009 um 15:44 Uhr, 8027 Aufrufe, 8 Kommentare

Hallo zusammen habe die Frage bereits in einem anderen Forum gestellt, dort jedoch keine Antwort bekommen und hoffe nun hier auf Hilfe.

Ich habe folgendes Problem. Mein Auftrag ist es ein VB-Script zu schreiben, das das Active-Directory nach einem angegebenen Benutzerkreis durchsucht und in einem Excel-Sheet die Gruppen in denen die User enthalten sind sowie das Description/Beschreibungsfeld und den Pfad der jeweiligen Gruppe ausgibt.

Bisher ist mein Script soweit:
1. Zu scannede Benutzer über eine Textdatei festlegen
2. Excel-Sheet zur Ausgabe festlegen
3. Ausgabe von DSquery als Textdatei erstellen
4. Textdateien editieren (Umlaute etc.)
5. Dsquery von der Textdatei In ein Excel-Sheet portieren und speichern
6. Dateileichen / DSquery-Textdateien löschen

Ich werde die fertigen Komponenten des Scripts jetzt erstmal nicht posten, da sie mit dem eig. Problem nichts zu tun haben.

Es fehlen noch zwei Dinge:
1. Während das Script läuft sollen nach einigen vom User zu bestätigenden MsgBoxen sämtliche Tastatur- und Mauseingabe gesperrt werden. Soweit ich recherchiert habe funktioniert die BlockInput-Funktion von VB nicht bei VBS. Alternativ könnte man das Script über einen AutoIT-Zugriff sperren. Aber da hier nicht auf jedem Rechner AutoIT installiert ist, wird auch das schwierig. Ich habe von einem Kollegen erfahren, dass man aus AutoIT erstellte Scripte von AutoIT zu .exe-Dateien machen kann um so bespielsweise auch auf Rechnern wo kein AutoIT installiert ist die Tastatur / Mauseingabe sperren kann. Ich nehme allerdings an, dass man VB-Scripte nicht mit AutoIT zu .exe-Dateien mit Eingabesperre machen kann.
Kennt ihr noch eine Möglichkeit wie ich die Eingabesperre verwirklichen kann?

2. Ich bekomme es nicht hin das Description-Feld einer Gruppe auszulesen und in einem Excel-Sheet zu speichern. Ein Kollege hat dies direkt in Excel mit VBA realisiert. Ich möchte es allerdings in meinem bisherigen VBS-Script realisieren.

Hier gibt es bereits ein ähnliches Anliegen auch wenn es dabei um das Description-Feld eines Computers und nicht einer Gruppe geht.
Wenn ich allerdings die dort angegebene Lösung probiere und diese dann mit einer MsgBox ausgeben möchte, ist die Ausgabe leer.

Hier ist mein Versuch mit der oben angegebenen Lösung.
Allerdings kann doch "ADsPath" nicht "Description" enthalten oder?
Ich denke mal nur den Pfad.

On Error Resume Next

strCN = "Gruppenname"

Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT ADsPath FROM 'LDAP://DC=intra,DC=firmenname,DC=de' WHERE Name='" & strCN & "'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
strADsPath = objRecordSet.Fields("ADsPath").Value

MsgBox ADSPath

Vielen Dank im Vorraus
Mitglied: Logan000
27.10.2009 um 16:16 Uhr
Moin moin

Allerdings kann doch "ADsPath" nicht "Description" enthalten oder?
Nein der AdsPath ist der ADsPath und nur die Description ist die Description. nur wo Nutella draufsteht ist auch Nutella drin!

Ok Ernsthaft: Mir erscheint deine Herangehensweise etwas umständlich (so mit dem Umweg über die Text datei und so...)

Hast Du dich hier schon mal umgesehen?
http://gallery.technet.microsoft.com/ScriptCenter/en-us/site/search

Da soltest du eigentlich etwas finden.

Gruß L.
Bitte warten ..
Mitglied: Sandfish
27.10.2009 um 16:57 Uhr
Zitat von Logan000:
Nein der AdsPath ist der ADsPath und nur die Description ist die
Description. nur wo Nutella draufsteht ist auch Nutella drin!

So in dem von mir beschriebenen Link (http://www.mcseboard.de/windows-forum-ms-backoffice-31/computer-beschre ...) scheint der Benutzer es aber genau so zum laufen bekommen zu haben.
Ob das Hauptprogramm nun umständlich ist oder nicht (kann ja sein geht vermutlich auch alles über einen direkten AD-Zugriff) - Aber darum geht es doch garnicht.
Der Teil mit der Textdatei funktioniert ja! Es geht lediglich darum

1. Eine Benutzereingabe zu verhindern
2. Das Description-Feld auszulesen und in Excel zu speichern

Ein paar Artikel vom Scripting Guy habe ich gelesen.
Bitte warten ..
Mitglied: 2hard4you
27.10.2009 um 19:04 Uhr
Moin,

kurze Nachfrage - vertraust Du dir nicht, oder warum willst Du eine Benutzereingabe unterbinden?

was hat das für nen Sinn?

die Vorgehensweise ist schon okay, aber ich verstehe warum das geblockt werden soll?

Gruß

24
Bitte warten ..
Mitglied: Sandfish
28.10.2009 um 08:44 Uhr
@2hard4you - Ich möchte das der Benutzer weder absichtlich noch unabsichtlich das Script stoppt oder eingreift. Ich denke das ist bei Firmennetzwerken so sinnvoll.

Hat noch jemand eine Lösung parat ist echt sehr wichtig.
Bitte warten ..
Mitglied: Logan000
28.10.2009 um 11:33 Uhr
Moin Moin

1. Eine Benutzereingabe zu verhindern
Benutzereingabe im VBS Skript? Ich vermute du meinst im Excel Sheet. Das würde ich einfach ausblenden.
2. Das Description-Feld auszulesen und in Excel zu speichern
Das auslesen könnte so gehen:
01.
strCN =  "Controlling" 
02.
Set objGroup = GetObject _ 
03.
    ("LDAP://cn=" & strCN & ",DC=intra,DC=firmenname,DC=de") 
04.
WScript.Echo  objGroup.Description 
Gruß L.
Bitte warten ..
Mitglied: Sandfish
28.10.2009 um 16:25 Uhr
Hey vielen Danl Logan000!

Zu 1: Ausblenden ist schon eine gute Idee. Muss ich mal raussuchen wie das geht oder weißt du das aus dem Eff-Eff? Ich meinte allerdings das der Benutzer nicht unten auf die Taskleiste geht und das Script beendet oder gar dem Prozess killt.
Um zu verhindern, dass der ganze PC nicht mehr reagiert falls das Script abgestürzt ist und die Tastatur nicht wieder freigegeben hat kann man glaube ich bei der BlockInput-Funktion über STRG+ALT+ENTF die Tastatur wieder aktivieren. Nur geht die ja leider bei VBscript nicht.

Zu 2: Das war mir eine sehr große Hilfe. Vielen Dank! Habe das jetzt noch ein klein wenig angepasst und mit der Lösung des von mir gezeigten Links vereint, da man bei GetObject den gesamten AD-Pfad angeben muss und ich diesen nicht bei jedem Objekt einzeln raussuchen möchte.

Wofür sind deine Slashes eigentlich? Die scheinen bei VBscript nicht benötigt zu werden.

Hier das fertige Script:
On Error Resume Next

strCN = "GRUPPENNAME"

Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
"SELECT ADsPath FROM 'LDAP://DC=intra,DC=FIRMENNAME,DC=de' WHERE Name='" & strCN & "'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
strADsPath = objRecordSet.Fields("ADsPath").Value

Set objGroup = GetObject (strADsPath)
WScript.Echo objGroup.Description
Bitte warten ..
Mitglied: 2hard4you
28.10.2009 um 21:59 Uhr
Zitat von Sandfish:
@2hard4you - Ich möchte das der Benutzer weder absichtlich noch
unabsichtlich das Script stoppt oder eingreift. Ich denke das ist bei
Firmennetzwerken so sinnvoll.


das ist mir schon klar, aber ich denke DomAdmins oder Leute mit fast so großen Rechten, können wissen, wann sie ein Script rufen, warum, und das es durchlaufen sollte....

ansonsten haben die ihre Rechte nicht verdient wegen Unkenntnis

Gruß

24
Bitte warten ..
Mitglied: Logan000
29.10.2009 um 09:32 Uhr
Moin Moin

Was das ausblenden angeht, das folgende Bsp. solte so auch bei Excel funktionieren.
01.
Set objWord = CreateObject("Word.Application") 
02.
objWord.visible = False  
03.
objWord.visible = True 
04.
objWord.quit
Was das Prozess "killen" angeht kann ich mich 2hard4you nur anschliessen.

Wofür sind deine Slashes eigentlich?
Für nix. Die hab ich auch nicht getippt. Die sind wohl irgendwie beim kopieren mitreingehuscht.

Ich möchte dir noch die Formatierungshilfe ans Herz legen.
Inbesondere beim posten von Code.

Gruß L.
Bitte warten ..
Ähnliche Inhalte
Exchange Server
Exchange Online Kalender Anzeige eines anderen Benutzers
gelöst Frage von Hans3003Exchange Server4 Kommentare

Hallo, ich habe eine Frage zu den Kalendern im Office 365 mit Exchange Online. Als Client nutze ich Office ...

Batch & Shell
Powershellskript um AD-Gruppenmitgliedschaften eines Benutzers auf einen anderen anzupassen
gelöst Frage von igetyaallBatch & Shell1 Kommentar

Hallo Administratoren, folgender Wunsch: Ich möchte ein Skript schreiben, welches die AD-Gruppen eines Users ausliest, diese Ausgabe als Grundlage ...

Windows Userverwaltung
Alle Freigaben eines Benutzers innerhalb einer Domäne anzeigen
Frage von Thor01Windows Userverwaltung5 Kommentare

Hallo, gibt es eine Möglichkeit alle Freigaben eines Benutzers innerhalb einer Domäne zu sehen? Möchte für einen Benutzer eine ...

Windows Userverwaltung
AD Gruppen User auslesen
Frage von pgWindows Userverwaltung1 Kommentar

Guten Tag, ich bin auf der Suche nach einem Programm welches mit die User eines AD ausliest und mir ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 23 StundenBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Windows Store Apps
gelöst Frage von PeterleBWindows Server10 Kommentare

Gibt es einen Weg, auf Windows Server 2016 Windows Store Apps wie zum Beispiel die HP Smart App zu ...

Microsoft
Erfahrungen mit Webcam over RDP gesucht
Frage von DerWoWussteMicrosoft10 Kommentare

Moin Kollegen. Bekanntlich kann man Webcams nur mit Drittanbietersoftware in RDP reinschleifen. Was nutzt Ihr dazu? Wie stabil funktioniert ...