Jump to content

Schweizerin

Members
  • Gesamte Inhalte

    114
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Schweizerin

  1. Beim testen ist mir aufgefallen, dass ich das Verzeichnis besser Nachname_Vorname nennen sollte (will man bei Nachname_V bleiben, dann bereinigt man den Vorname mittels set vorname=%vorname:~0,1% Allerdings bleibt dann bei "Hans Peter" nur H übrig). Das sieht dann ohne Fehlerbehandlung so aus (es wird nur ein Parameter %1=USER übergeben):

    rem "Full Name" via net user extrahieren
    FOR /F "tokens=*" %%G IN ('net user %1 /domain ^| find /i "Full Name"') DO SET fullname=%%G
    
    rem Alles vor Name+Vorname entfernen (29 Zeichen)
    SET fullname=%fullname:~29%
    
    rem Nachname, Vorname aufteilen in Nachname und Vorname mit Komma als Trennzeichen
    for /f "tokens=1,2 delims=," %%a in ("%fullname%") do set nachname=%%a&set vorname=%%b
    
    rem Leerzeichen in Nachname entfernen
    set nachname=%nachname: =%
    
    rem Leerzeichen vor und in Vorname entfernen
    set vorname=%vorname: =%
    
    set vzname=%nachname%_%vorname%
    
    if not exist %vzname% md %vzname%
    if exist %vzname% ICACLS %vzname% /grant %1:(OI)(CI)M
    

    Vielen Dank für die Tipps!

     

    Letzte Frage: Wie kann ich dafür sorgen, dass am Ende des Skripts alle Variablen wieder gelöscht sind. Einzeln geht es mit set variable= Gibt es einen pauschalen Weg alle gesetzten Variablen zu löschen?

  2. Und je nachdem, wie die Namen gepflegt sind, ginge auch net user.

     

    Gruß, Nils

     

     

     

    Vielen Dank. Der Befehl

     

    net user USER /domain | find /i "Full Name"

     

    liefert mir die Daten, die ich brauche. :jau:

     

    Die Ausgabe ist im Endeffektk ein String, aus dem ich mir jetzt "nur" noch das extrahieren muss, was ich einzeln benötige. Wie kann ich eine Variable mit der Ausgabe des Befehls belegen, also wie kann ich einer Variable innerhalb eines Batchscripts sagen, dass sie jetzt "Full Name                    Nachname, Vorname" ist?

  3. doch, natürlich. Wie kommst du auf diese Schlussfolgerung?

     

    Kannst du mir dann bitte noch verraten oder Hinweise geben, wie ich Nachname und Vorname von USER mit Bordmitteln abfragen kann?

    Naja, wenn du das einfach findest ... es soll ja auch Leute geben, die sich die Hose mit einer Kneifzange anziehen.

     

    Wenn ich User (Login), Nachname und Vorname kenne, dann sind das vier Zeilen Batchcode. Eine Variable aus den Übergabeparametern erzeugen, String bearbeiten, Verzeichnis anlegen, Rechte festsetzen.

     

    Warum kompliziert wenn es auch einfach geht?

  4. ...hört sich für mich an als ob das Homelaufwerk des Benutzers beim ersten Anmelden angelegt werden soll...

     

    Dann hast du falsch gehört.

    Per Batch ist das ziemlich fummelig, aber machbar. Zum Abfragen des AD könntest du dann AdFind von joeware.net nehmen. Für die String-Operationen könntest du mit FOR usw. arbeiten, aber das ist eben der fummelige Teil.

     

     

    Gibt es nix Windows-integriertes für AD-Abfragen auf einem 2008 R2? Wow!

     

    Mittlerweile habe ich herausgefunden, dass das mit den String-Operationen ganz einfach funktioniert. Siehe zum Beispiel: http://www.dostips.com/DtTipsStringManipulation.php

  5. Ich benötige ein Skript, welches auf einem 2008 R2 (kein DC) ausgeführt wird und welches ein Verzeichnis in Abhängigkeit vom Nutzer anlegt und Rechte erzeugt. Als Beispiel sei ein Nutzer gegeben:

     

    Login: User

     

    Mehr als das ist mir erst einmal nicht bekannt. Wenn der Nutzer den Nachname Last hat und den Vorname First (entsprechend im AD so eingetragen), dann soll das Skript ein Verzeichnis namens LastF erzeugen und dem User daran ändern-Rechte erteilen.

     

    Für mein Verständis müsste das Skript erst einmal einen gültigen DC ermitteln, damit es Vorname und Nachname abfragen kann (oder kann ich so eine Anfrage einfach "ins AD werfen"?). Danach muss es den Vorname auf den ersten Buchstaben reduzieren, dann das Verzeichnis anlegen und dann noch das ändern-Recht hinzufügen.

     

    Ich würde das als Batch bevorzugen (BAT, CMD). Falls mir jemand Powershell-Code geben will, dann bitte etwas verständlich/ausfüührlich, denn ich habe davon nicht wirklich Ahnung.

     

    Wer kann mir helfen?

  6. Du hast allerdings recht, dass ich für jedes Laufwerk eine GPP brauche. Deinen Weg kannte ich noch nicht :confused:  Wieder etwas zum testen und wieder dazu gelernt!

     

    Ich kenne das auch erst seit wenigen Monaten und habe mich vorher mit zu vielen GPOs und deren unendlichen Verknüpferei an OUs beschäftigt.

     

    Warum dein Weg (Sicherheitsfilterung auf der ersten Seite) aber sicherer sein sollte als ILT verstehe ich nicht. Bei mir hat jeder Ordner (oder Drucker) eine eigene Sicherheitsgruppe und wem ich einen Laufwerksbuchstaben an diesem Ordner vergeben will, der bekommt den nur dann per ILT zugewiesen, wenn er Mitglied der Ordnerberechtigungsgruppe ist. Wo übersehe ich da eine (und sei es nur eine haarspaltende) Sicherheitslücke (wenn die Delegierung der GPO auf Domänencomputer gestellt ist und die Sicherheitsfiltreung alle auth. User erlaubt)?

  7. Ich habe es jetzt verstanden.

     

    Und jetzt kann ich auch noch mal sagen, dass man (mit Ausnahme des Sonderfall: MultiTennant Active Directory) der Computergruppe Domänencomputer (oder einer anderen geeigneten Computergruppe) unter dem Reiter Delegierung Leserechte zuweisen sollte. Denn spätestens wenn ein Admin wieder an den Security Filtering rumbastelt und da keine Computergrupe steht, dann klappt wieder alles zusammen.

  8. Rate mal, wer ebenfalls Authentifizierter Nutzer ist. Richtige Antwort: Domänencomputer. ;)

     

    Ja schon. Aber warum erwähnt dann Microsoft explizit "If you are using security filtering, add the Domain Computers group with read permission."? Irgend einen Grund muss es doch haben beim EInsatz von Security Filtering statt auf Authentizierte Benutzer auf Domänencomputer zu setzen!?

  9. Weil ich diese Benutzer aus der "Sicherheitsfilterung" (erste Lasche der GPP) raus geschmissen habe und dort eine Gruppe von Usern bzw. einzelne User eingetragen habe.

    Denn diese Richtlinie soll NUR für bestimmte User oder Gruppen von Usern gelten für z.B. Drucker- oder Laufwerkszuweisungen!

     

    Das macht man bei Laufwerken aber viel besser direkt in der Laufwerkszuordnung. Zweiter Reiter "Common" und dann Haken bei "Item Level Targeting" setzen. Anschließend auf Targeting klicken. Dort links oben "New Item" und dann "Security Group" auswählen (oder was auch immer, da kann man auch OUs und alles möglichen Krempel als Bedingungen auswählen), selbige auswählen und gut ists. Dann gilt diese Laufwerkszuordnung innerhalb der GPO nur für bestimmte Leute. Da muss man nicht umständlich pro Sicherheitsgruppe eine GPO anlegen, so wie du das scheinbar machst.

  10.  

    Ich kann nur sagen, dass ich NUR "Authentifizierte Benutzer" mit Leseberechtigung in die Delegierung hinzugefügt habe und alles war wieder Paletti ;)

     

    Dann würde ich sagen, du nutzt kein Security Filtering. Und wenn du in ein paar Monaten/Jahren Security Filtering nutzen willst, dann wirst du dir einen Wolf suchen, weil es nicht funktioniert. Also warum nur die halbe Lösung umsetzen und nicht die, die immer funktioniert?

     

    Überhaupt verstehe ich nicht, warum bei vielen "Authentifizierte Benutzer" fehlen. Bei mir sind die überall vorhanden (war mal eine 2003er Domäne, die jetzt 2008 R2 ist). Wurden die "Authentifizierte Benutzer" gelöscht?

  11. Falsch.

    Entweder "Domänencomputer" oder "Authentifizierte Benutzer".

     

    Woher nimmst du diese Gewissheit? Ich interpretiere "This issue may occur if the Group Policy Object is missing the Read permissions for the Authenticated Users group or if you are using security filtering and are missing Read permissions for the domain computers group." und "Add the Authenticated Users group with Read Permissions on the Group Policy Object (GPO). If you are using security filtering, add the Domain Computers group with read permission." so:

     

    Wer GPOs nutzen will, muss sie lesbar für "Authentifizierte Benutzer" machen. Wer aber GPOs zusammen mit security filtering nutzen will, muss "Domänencomputer" Leserechte geben.

     

    Da lese ich kein entweder oder.

     

    Habe ich falsch übersetzt oder habt ihr schlampig gelesen?

    Das Originalskript jetzt so modifiziert, dass es Domänencomputer mit Leserechten hinzufügt, damit man Security Filtering nutzen kann:

    # deutsche Version
    $allGPOs = get-gpo -all
    foreach ($gpo in $allGPOs)
    {
        # first read the GPO permissions to find out if Authn Users and Domain Computers is missing
        $perm1 = Get-GPPermissions -Guid $gpo.id -TargetName “Domänencomputer” -TargetType group -ErrorAction SilentlyContinue
        if ($perm1 -eq $null) # if no domain computers is found, then add Domänencomputer read perm
        {
            Set-GPPermissions -Guid $gpo.Id -PermissionLevel GpoRead -TargetName “Domänencomputer” -TargetType Group
            Write-Host $gpo.DisplayName “has been modified to grant Domänencomputer read access”
        }
    
    }
    

    Und die englische Version:

    # english Version
    $allGPOs = get-gpo -all
    foreach ($gpo in $allGPOs)
    {
        # first read the GPO permissions to find out if Authn Users and Domain Computers is missing
        $perm1 = Get-GPPermissions -Guid $gpo.id -TargetName “Domain Computers” -TargetType group -ErrorAction SilentlyContinue
        if ($perm1 -eq $null) # if no domain computers is found, then add Domain Computers read perm
        {
            Set-GPPermissions -Guid $gpo.Id -PermissionLevel GpoRead -TargetName “Domain Computers” -TargetType Group
            Write-Host $gpo.DisplayName “has been modified to grant Domain Computers read access”
        }
    
    }
    
  12. Da gibts auch ein Skript verlinkt, was das geradezieht. ;)

     

    Schau dir im Link mal das Skript an, das macht das alles automagisch.

    Schön wärs.

     

    Das Skript im ZIP-File unter https://sdmsoftware.com/group-policy-blog/bugs/new-group-policy-patch-ms16-072-breaks-gp-processing-behavior/ kann nicht funktionieren, weil es den Befehl Get-GPPermission nicht gibt (zumindest nicht auf meinem 2008 R2). Der heißt richtig Get-GPPermissions (mit "s" hinten dran). Wenn ich das dann angepasst habe (ebenso Set-GPPermission s), dann läuft das Skript duch, aber es passiert gar nichts.

     

    Und noch einmal die Frage:

     

    Richtig oder falsch: Bei Delegation muss noch "Domönencomputer" mit lesen rein? (wegen: If you are using security filtering, add the Domain Computers group with read permission.)

     

    "Führe mal irgendein Skript aus udn stelle nicht zu viele Fragen!" ist nicht die richtige Antwort.

    ACHTUNG!

    Englisches AD!

    Muss "Authentifizierte Benutzer" und "Domänencomputer" heißen!

     

    Und siehe da, nach allen Fehlerkorrekturen sieht es dann so aus:

    $allGPOs = get-gpo -all
    foreach ($gpo in $allGPOs)
    {
    # first read the GPO permissions to find out if Authn Users and Domain Computers is missing
    $perm1 = Get-GPPermissions -Guid $gpo.id -TargetName “Authentifizierte Benutzer” -TargetType group -ErrorAction SilentlyContinue
    $perm2 = Get-GPPermissions -Guid $gpo.id -TargetName “Domänencomputer” -TargetType group -ErrorAction SilentlyContinue
    if ($perm1 -eq $null -and $perm2 -eq $null) # if no authn users or domain computers is found, then add Authn Users read perm
    {
    Set-GPPermissions -Guid $gpo.Id -PermissionLevel GpoRead -TargetName “Authenticated Users” -TargetType Group
    Write-Host $gpo.DisplayName “has been modified to grant Authenticated Users read access”
    }
    
    }
    

    Das läuft zumindest durch (und ändert bei mir rein gar nichts). Jetzt weiß ich immer noch nicht, was mit "If you are using security filtering, add the Domain Computers group with read permission." ist, das Skript ändert daran ja nichts. Ich nutze security filtering und wüsste gern, was deswegen noch zu tun ist.

  13. Moin,

     

    hier findet sich ein Ansatz:

     

    [Delegating Permissions to Group Policy Objects using PowerShell | SweeneyOps]

    https://sweeneyops.wordpress.com/2012/06/12/delegating-permissions-to-group-policy-objects-using-powershell/

     

    Gruß, Nils

     

    Bei

     

    $group = $(get-adgroup “GPO-Admins”).sAMAccountName

     

    haut er mir als Fehler

     

    Get-ADGroup : Cannot find an object with identity: 'GPO-Admins' under: 'DC=domain,DC=tld'.

     

    raus. Was mache ich falsch (und ja, ich habe von Powershell nicht wirklich Ahnung)?

  14. Ja, das verstehst du nicht falsch. ;)

     

    Dann habe ich es wohl falsch verstanden.

     

    1. Bei Security-filtering steht "Authenticated Users" mit lesen drin. (war schon immer so)

    2. Bei Delegation steht "Authenticated Users" mit lesen drin. (war schon immer so)

     

    Richtig oder falsch: Bei Delegation muss noch "Domönencomputer" mit lesen rein? (wegen: If you are using security filtering, add the Domain Computers group with read permission.)

  15. KB3163622 bzw. KB3159398 ist wie der WSUS-Zerstörer KB3159706 ein Update, dass man KEINESFALLS installieren sollte, ohne vorher den KB-Artikel gelesen zu haben.

     

    "Resolution

    To resolve this issue, use the Group Policy Management Console (GPMC.MSC) and follow one of the following steps:

    Add the Authenticated Users group with Read Permissions on the Group Policy Object (GPO).
    If you are using security filtering, add the Domain Computers group with read permission."

     

    Ich habe letzteres Problem (using security filtering) in einem großen Nnetzwerk. Wie erteile ich für die Domain-Computer Leserechte für Hunderte GPOs?

  16. Ich habe ein DFS eingerichtet. Auf dem einen Server sind in dem Verzeichnis 5344 Dateien, auf dem Replikat drei Dateien weniger. Wie finde ich heraus, welche Dateien fehlen?

     

    Leider vergleichen die meisten Tools die Dateien byteweise, was bei ein paar hundert Megabyte und hunderten Ordnern über eine WAN-Verbindung unmöglich ist. Ich will lediglich auf die Existenz einer Datei in zwei Ordnern prüfen, nicht ob sie links und rechts byteweise identisch ist.

     

    WinMerge vergleicht byteweise. FreeFileSync zeigt mir nur identische Dateien, aber keine fehlenden Dateien.

     

    Wer kann etwas empfehlen?

  17. Höchstwahrscheinlich wirst du das schlicht nicht brauchen weil ihre diese Funktion nicht nutzt.

     

    Wenn "es nicht gebraucht wird, wieso sagen die WSUS-Clients dann dem WSUS-Server, dass sie es brauchen?

     

    Und wenn sie es brauchen, warum installieren sie es dann nicht, obwohl es zur Installation freigegeben ist?

     

    Gleicher Unsinn (soll heißen Clients "brauche" es, aber installieren es nicht) in KB 3118714, KB3119598 und KB3116097 (alle OOBE-Updates und alle sind unabhängig voneinander). KB3118401 (Update for Universal C Runtime in Windows) wollen auch alle Clients mit Windows 10 und WIndows 8.1 haben, aber die 10er installieren es einfach nicht.

  18. Ist doch relativ einfach, wenn Mans mit "zwang" durchsetzt. Mx Record auf den on Premise Exchange für die o365 Domain und die Domain als authoriv setzen. Damit geht keine Weiterleitung mehr zu Office 365. die Emailadressen vorher natürlich ebenfalls in Premise anlegen.

     

    Stimmt, die Weiterleitungen zu Office365 sind damit hinfällig.

     

    Aber was ist, wenn ein Office365-Kunde eine E-Mail an eine @sub.domain.tld-Adresse der Office365-Accounts schickt? Der Office365-Exchange denkt doch, er sei für @sub.domain.tld zuständig, also versucht er die E-Mail intern bei sich selber zuzustellen. Wie verhindere ich das?

     

    Möglicherwqeise verstehe ich aber auch einfach nicht, was du mit "Domain als authoriv setzen" meinst.

×
×
  • Neu erstellen...