ActiveDirectory Basisordner per Batch-File verbinden

-]Dr.OeTz![-

Lt. Junior Grade
Registriert
Nov. 2009
Beiträge
509
Hallo Zusammen,

habe gerade folgendes Problem:

Normalerweise hat jeder Benutzereinen eigenen Basisordner (\\FREIGABE\%username%). Innerhalb der Domäne, wird dieser Basisordner automatisch als Netzlaufwerk verbinden. Im HomeOffice funktioniert das jedoch nicht.

Für den Fall habe ich ein Batchfile bereitgestellt:
Code:
@echo off
if not exist "H:\." net use H: \\[FREIGABE]\%username% /user:[DOMEÄNE]\%username% /persistent:no


Funktioniert auch wunderbar ABER... ;)

Einige Benutzer sollen sich einen Basisordner teilen und genau da habe ich ein Problem.


Möglichkeit A:
Ich könnte diesen Nutzern ein anderes Batchfile zur Verfügung stellen und den Pfad anstatt mit %username% statisch eintragen. Besonders charmant ist das aber nicht.


Gibt es auch eine charmantere Lösung? Beispielsweise einen Befehl um anhand des Eintrags im AD das Netzlaufwerk zu verbinden so wie es auch innerhlab des Domänen-Netzwerks erfolgt?
 
Sind die PC's mitglied der Domäne?
 
Du könntest dich mit powershell und LDAP versuchen, mußt aber die auf dem Ziel installierte Version berücksichtigen.

Das wäre auf privaten PCs vermutlich Win7 und Powershell 2.
Von da aus kannst du das AD befragen, solange der DC über DNS aufgelöst werden kann und jeder Benutzer Domainmitglied ist, sprich mit seinem Domainaccount anmeldet.
 
forceafn schrieb:
Sind die PC's mitglied der Domäne?
ja

RalphS schrieb:
Du könntest dich mit powershell und LDAP versuchen, mußt aber die auf dem Ziel installierte Version berücksichtigen.

Das wäre auf privaten PCs vermutlich Win7 und Powershell 2.
Von da aus kannst du das AD befragen, solange der DC über DNS aufgelöst werden kann und jeder Benutzer Domainmitglied ist, sprich mit seinem Domainaccount anmeldet.
Sind alles Win10-PCs

DC kann auch über DNS aufgelöst werden...

Wie sähe denn sowas aus?
 
Wieso erstellst Du nicht eine Freigabe, richtest eine Gruppe mit den Leuten ein, die darauf zugreifen können sollen und gibst der Gruppe die entsprechenden Rechte?

Und was meinst Du damit, im Home Office funktioniert das nicht? Wenn sich die Leute per VPN auf den Server verbinden, sollten auch die Freigaben funktionieren. Ansonsten mal ein gpupdate /force probieren.

https://www.tech-faq.net/gruppenrichtlinien-aktualisieren/
https://docs.microsoft.com/de-de/wi...-guide/cncg/server-certs/refresh-group-policy

Vielleicht findest Du hier ein paar Tipps dazu: https://mntechblog.de/artikelserie-...s-server-2012-installieren-und-konfigurieren/
 
Wahrscheinlich funktioniert es nicht weil private PCs und VPN Client. Wie sollen die gpo kriegen?
 
Gut, dann sollte es wirklich funktionieren. 🤔

Dennoch, da ich grad nen WindowsPC und einen Moment Zeit vor mir hab:
in etwa folgendermaßen könnte man das mit PS (v2 clientseitig) angehen:

PowerShell:
# zunächst den Suchstamm. Exemplarisch der Standardpfad für Benutzerobjekte im AD; der ist natürlich anzupassen.
[adsi] $adSearchRoot = 'LDAP://cn=users,dc=home-sweet-home,dc=lan'

# PS versteht kein [typ]::new...
[adsisearcher] $adSearch = new-object -TypeName adsisearcher

# ... deswegen zimmern wir uns das Suchobjekt selber zusammen.
# A der Filterausdruck in LDAP-Syntax. Klammern sind wichtig. LDAP-Syntax ist stackbasiert, daher erst der Operand, dann alle Operatoren in Klammern.
# Hier: Suche Benutzerobjekte (objectClass) mit samacccountname= X.
# Mit LDAP geht aber sehr viel mehr, zB auch memberof (ob ein Konto Mitglied in Gruppe G ist). Dazu LDAP-Doku befragen.

$adSearch.Filter = '(&(objectClass=user)(samaccountname=ralphs))'

#Wirklich da suchen, wo gesucht werden soll.
# Protip: Intellisense verwenden für weitere konfigurierbare Eigenschaften,
zB "suche nur in X" / "suche in allen Unterstrukturen".
$adSearch.SearchRoot = $adSearchRoot

# Jetzt wird gesucht
# Note, es gibt außer FindOne() auch FindAll(). FindOne nur, wenn man sicher ist, daß es *ein*  Ergebnis ist; sonst lieber FindAll.

[System.DirectoryServices.SearchResult] $theUser = $adSearch.FindOne()

# Das Suchergebnis kann man dann durchsehen nach zugehörigen Eigenschaften.
# Für spezifische Properties, die standardmäßig nicht mitkommen, müssen diese in die Liste PropertiesToLoad aufgenommen werden (cf MSDN Doku dazu).

$theUser.Properties

Damit kann man dann weiterarbeiten. Erfordert aber Zugriff aufs AD, sprich es muß erreichbar sein und man muß auch (lesend) zugreifen dürfen, sonst gibt es Ausnahmen.
 
Zurück
Oben