Jump to content

Kuddel071089

Members
  • Gesamte Inhalte

    559
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Kuddel071089

  1. Hallo zusammen,

     

    bei uns werden Verzeichnisse per PS-Script eingerichtet.

     

    Amd Ende versuche ich gerade einen Check einzubauen.

     

    Erstmal werden die neu erstellen Zugriffsgruppen mit Get-ADGroup angezeigt.

     

    Danach sollen dann die Berechtigungen des neuen Ordners angezeigt werden, sprich ob die Gruppen korrekt berechtigt sind.

     

    Der Befehl get-acl liefert mir schon die richtigen Infos, nur würde ich es gern iwie kürzen.

    $path = "F:\Test"
    
     
    
    Get-Acl -Path $path | Select-Object -ExpandProperty Access | FL
    

     
    Ergebnis:

    
    FileSystemRights  : ReadAndExecute, Synchronize
    AccessControlType : Allow
    IdentityReference : Domain\Test-R
    IsInherited       : False
    InheritanceFlags  : ContainerInherit, ObjectInherit
    PropagationFlags  : None
    
    FileSystemRights  : DeleteSubdirectoriesAndFiles, Write, ReadAndExecute, Synchronize
    AccessControlType : Allow
    IdentityReference : Domain\Test-RW
    IsInherited       : False
    InheritanceFlags  : ContainerInherit, ObjectInherit
    PropagationFlags  : None
    
    FileSystemRights  : FullControl
    AccessControlType : Allow
    IdentityReference : NT-AUTORITÄT\SYSTEM
    IsInherited       : True
    InheritanceFlags  : ContainerInherit, ObjectInherit
    PropagationFlags  : None
    
    FileSystemRights  : FullControl
    AccessControlType : Allow
    IdentityReference : VORDEFINIERT\Administratoren
    IsInherited       : True
    InheritanceFlags  : ContainerInherit, ObjectInherit
    PropagationFlags  : None
    

    Mich interessieren jetzt im Endeffekt nur wasin den ersten beiden Blöcken steht und da würde mir auch FileSystemRights sowie IdentityReference genügen

     

    Kann man das irgendwie filtern ?

     

     

    Danke schon einmal

  2. Hallo zusammen,

     

    ich bin gerade dabei ein Script zu schreiben um Exchange Verteilergruppen per Powershell-Script einzurichten.

     

    Ich bin auch fast feritg, nur fehlt noch eine Kleinigkeit.

     

    Aktuelles Script (die Variablen werden vorher abgefragt)

    ...
    New-DistributionGroup -Name "$verteilername" -DisplayName "$verteilername" -OrganizationalUnit "$OU" -ManagedBy "$verantwortlicher" -Notes "$note"
    

    Was mit jetzt noch fehlt, sind die Mitgliedschaftgenehmigungsrichtlinien.

    Beide sollen auf "Geschlossen" eingestellt werden

    Wählen Sie aus, ob die Besitzergenehmigung zum Beitreten der Gruppe erforderlich ist.
    

    sowie

    Wählen Sie aus, ob die Gruppe zum Verlassen geöffnet ist.
    

    Das müsste irgendwie noch in meine Script integriert werden.

     

     

     

     

    Leider hat googel mit werder bei "New-Distributiongroup" noch bei "Set-Distributiongroup" was dazu gesagt

     

     

    Danke schon einmal

  3. Wo ist denn das Problem? Das deine Abfrage was falsches liefert? Dann wirst du wohl falsch Filter ;)

    Zwischen "514" und Mail fehlt zumindest schonmal ein -and oder ein -or und beim Parameter -Searchbase fehlt noch die Variable und der . nach dem $_

     

    in meiner Abfrage waren noch ein paar mehr Filter, da wir verschiedene Domains haben etc. Habe da wohl ein Bisschen zu viel rausgelöscht ^^.

     

    Also mein Problem ist, dass meine CSV Datei nach Standorten sortiert ist. Zwischen jeden Standort sind 4 Leerzeilen.

     

    Ich hätte gerne als Ergebnis, eine Auflistung wo alle User aller Standorte alphabetisch sortiert sind und nich mehr nach Standort seperiert sind.

     

    So muss ich die CSV Datei immer noch bearbeiten

  4. Hallo zusammen,

     

    ich würde gerne alle Mail-User in einer CSV-Datei auflisten.

     

    Also Username, Displayname, Department, Company, Mail etc.

     

    Soritert ist das ganze wie folgt:

     

    Domain:
    ->Standort-A

    -->Computer

    -->Group

    -->Resources

    -->User

     

    ->Standort-B

    -->Computer

    -->Group

    -->Resources

    -->User

     

    Die Abfrage darf jetzt nur die OU Users auswerten, Ich hab leider keine Ahnung wie ich meine Powershell Abfrage eingrenze.

     

    Im Endeffekt sollen alle Mail-Accounts (-Filter {Mail -like "*@domain.de"}) aller OUs "User" eines jeden Standort in einer kompletten CSV Liste auftauchen und am besten Alphabetisch soritert sein.

     

    Meine jetzige Abfrage kann leider immer nur jede User OU einzeln abfragen und somit nicht alle User standortübergreifend sortieren.

    $ous= ...yxz...
    $ous | ForEach {Get-ADUser -Filter {userAccountControl -ne "514"  Mail -like "*@xxxx.de"} -Properties * -SearchBase $_ | sort | select SamAccountName, Surname, Givenname, Department, Mail | FT -HideTableHeaders}
    

    Ich hoffe ihr könnt mir helfen.

     

    Danke schon einmal

  5. Hallo zusammen,

     

    wir haben von einer Fachabteilung die Anforderung bekommen, den Wert MaxPageSize von 1000 auf 5000 zu erhöhen.

     

    Bei irgendwelchen LDAP-Abfragen werden nicht alle werte korrekt zurückgegeben.

     

    Muss man dabei irgendetwas beachten ?

     

    Ist es sinnvoll diesen Wert zu erhöhen ?

     

     

     

    Danke schon einmal

  6. Hallo zusammen,

     

    ich habe von unserer Client-Abteilung dne Auftrag erhalten, die ADMX-Datein auf unseren DCs zu aktualisieren, damit sie Windows 8 Einstellungen nutzen können.

     

    Dafür habe ich eine Menge ADMX-Datein erhalten, die ich nach %systemroot%\PolicyDefinitions kopieren soll.

     

    1. Ist das so richtig, Habe da noch keinerlei Erfahrung ?

    2. Habe das bereits mit einer Datei probiert. Konnte die bestehende Datei (ist älter) nicht ersetzen, obwohl ich Domain-Admin bin.

     

     

    Ich hoffe ihr könnt mir helfen.

     

    Vielen Dank schon einmal

  7. Als erstes das AD Konto wieder herstellen, danach das Postfach wieder verknüpfen.

     

    1. AD Konto wurde wiederhergestellt

    2. Beim Verbinden kommt folgende Fehlermeldung:

    Das angegebene Postfach ist mit 'Gr-SiSaal' verbunden. Nur getrennte Postfächer können erneut verbunden werden. Angegebenes Postfach: '********************************'.
    

    Sowie ein Auswahlbutton

    Nein, ich möchte eine Verbindung zu einem anderen Benutzerkonto herstellen
    

    Was soll ich jetzt machen ? Noch warten bis AD sauber gesynct hat ?

     

     

    EDIT:

     

    Die WIederherstellung scheint funktioniert zu haben. Die beiden Resourcen werden im ECP wieder angezeigt und auch im Outlook Client,

     

    Zum Postfach verbinden werden sie auch noch angezigt. Ich warte mal bis morgen, ob sie dann verschwunden sind

     

  8.  

    Was meinst du mit auswerten?

     

        Die Ordnergröße auslesen?

        Die verbrauchte MB der Quotas jedes einzelnen?

     

    oder ganz was anderes?

     

     

     

    Zb. gebe ich den Usernamen ein und bekommen dann gesagt wie viel dieser von seinem Kontingent schon genutzt hat und kann es dann per EIngabe auf den Wert X erweitern

     

     

     

    Wolltet du diese nicht auslesen?

     

     

    Jein. Die Homeverzeichnisse werden per Resource-Manager erweitert, welcher auf unserem Admin-Server gestartet wird. Das ganze geht einigermaßen schnell

     

     

     

    Das solltest du und das Benutzen von FSRM (File Server Ressourcen Manager) mit Quotas ist auch viel sinniger u. effektiver als die Datenträgerkontingente!

     

     

     

    Unser Dienstleister der uns bei der Migration von Novell auf Microsoft unterstützt hat, meinte, dass man per FSRM keine Quotas für ganze Standortlaufwerke mit diversen Unterordnern vergeben kann, sondern nur auf die Unterordner selber. Korrigiere mich gerne, wenn wir die Einstellungen wie bei den Homeverzeichnissen einrichten können

  9. Get-FsrmQuota | sort -Property Usage -Descending | ft Path,@{Expression={[INT]$($_.Usage/1MB);"MB"};Label="Auslastung"} | Out-File -PSPath "C:\Quota-Auslastung.txt" -Encoding UTF8
    

    Meintest du so etwas? 

     

     

    Danke für die Antwort. So werden mir aber leider nur die Quotas für die Homeverzeichnisse angezeigt.

     

    Jeder User bekommt unter G:\User\%Logonname% jeweils 1GB speicher zugewiesen.

     

    Was aber viel interessanter ist wäre jetzt z.B: Laufwerk F:\

     

    Dort hat jeder User nicht für einen expliziten Ordner eine Begrenzung sonder für alle im zugewiesenen Ordner auf F:\.

     

    Und die Quotas auf F:\ müssen wesentlich häufiger angepasst werden.

     

    Wie ich am command-let sehen konnte, muss allerdings die Fileserver-Rolle installiert sein. Diese fehlt auf unserem Admin-Server. Wenn müsste man das denke ich mal per Remote-Powershell lösen

  10. Hi,

     

    warum hast du am ende deiner IF-Anweisung das "break"? Wenn du im Script von vorne anfangen willst, dann bau eine do while / do until Schleife um das Script und Frage ab, ob man noch einen User anlegen möchte oder ob man das Script beenden möchte.

     

    Gruß

    Jan

     

    den break habe ich gemacht, damit das script beendet wird bei vorhandenem usernamen.

     

    mit while / do Schleifen habe ich leider noch keine Erfahrung. Wie müsste sowas aussehen ?

  11. Hallo zusammen,

     

    ich habe mir ein Scripot geschrieben um User einzurichten.

     

    Als erstes wird überprüft, ob der User bereits im AD vorhanden ist.

     

    Falls ja, wird das Script beendet.

     

    if (Get-ADUser -Filter {samAccountName -eq $username}) {
    Write-Host
    Write-Host -ForegroundColor Red "+++ Username ist im AD bereits vergeben +++"
    Write-Host
    Get-ADUser -Filter {samAccountName -eq $username} -Properties * | select SamAccountName, Name, Company, Department | fl
    Write-Host
    Write-Host -ForegroundColor Red "+++ Bitte Script neu starten +++"
    Write-Host
    pause
    break
    }
    

     

    Wie bekomme ich es jetzt hin, dass das Script automatisch wieder zum start springt, damit ich einen neuen Usernamen eingeben kann wie bei Bazch der GOTO-Befehl.

     

     

    Danke schon eimal für die Hilfe

  12. das Problem mit dem Export habe ich gelöst. Ich schreibe die Werte direkt in die Variable. Sprich ohne Ex- und Import.

     

    Bleibt nur das Problem mit der Anzeige des Servernamens

     

     

    $servers = Get-ADComputer -Filter {Name -like "*NTS*"} | sort | select Name
    ForEach($server in $servers)
    {
        if ((Get-ADComputer $Server.Name -Properties memberof).memberof -like "*CN=Role-GPO*")
    {
    Write-Host -ForegroundColor Green "$Server in WSUS Gruppe"
    }
    else
    {
    Write-Host -ForegroundColor RED "$Server ist KEIN Mitlgied einer WSUS Gruppe"
    pause
    }
    }
    
  13. Probiers mal mit nem Get-ADComputer $Server.Name

    Oder, wenns eh nur ne Liste mit einer Zeile ist, statt Import-csv mit Get-Content $pfad

     

    Als Fehler steht da ja, dass in Deinem $server nicht einfach nur der Servername, sondern quasi ein Objekt drin is.

     

    Meine Schleife sieht jetzt wie folgt aus

     

    ForEach($server in $servers)
    {
        if ((Get-ADComputer $Server.Name -Properties memberof).memberof -like "*CN=Role-GPO*")
    {
    Write-Host -ForegroundColor Green "User $server in WSUS Gruppe"
    sleep 2
    }
    else
    {
    Write-Host -ForegroundColor RED "$server ist KEIN Mitlgied einer WSUS Gruppe"
    pause
    }
    }
    

     

    Scheint zu funktionieren

     

    Server @{Name=NTS087} in WSUS Gruppe
    Server @{Name=NTS200} in WSUS Gruppe
    

     

    Für Anfang schon mal sehr gut. Aber 2 Anmekrungen hab ich noch:

    1. Wie kann ich meinen Export der Server sauberer hinbekommen, ohne die Leerzeile am Anfang, die Trennlinie und die ganzen Leerzeichen?

    2. Ist es möglich die Namen richtig darzustellen ? @{Name=NTS087} NTS087 ?

     

    Aber vielen Dank schon einmal für die Hilfe

  14. Ne Liste der Server reinziehen und dann per for-each $Server in $Servers einfach ne Schleife drumrum bauen, wäre ne Möglichkeit.

    Die Liste könnte aus Excel oder direkt aus'm AD kommen.

     

    Export habe ich gemacht. SamAccountName alle Server in eine CSV. Enthält komischerweise als erstes eine Leerzeile und einen Trennstricht sowie ne Menge Leerzeichen die entfernt werden müssen.

     

     

     
    SamAccountName
    ---------------
    NTS087
    NTS200
    :
    

     

     

    Wenn ich das ganze jetzt importiere

    #Dialog zum importieren der CSV Datei mit den SamAccountNames der zu bearbeitenen Gruppen
    
    Function Get-SaveFile($initialDirectory)
    
    {
    
    [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") |
    
    Out-Null
    
    
    
    $SaveFileDialog = New-Object System.Windows.Forms.SaveFileDialog
    
    $SaveFileDialog.initialDirectory = $initialDirectory
    
    $SaveFileDialog.filter = "CSV-Datei (*.csv)| *.csv"
    
    $SaveFileDialog.ShowDialog() | Out-Null
    
    $SaveFileDialog.filename
    
    }
    
    
    
    
    
    
    
    # Ausgewaehlte Datei in Varibale speichern
    
    $pfad = Get-SaveFile
    
    
    
    
    
    
    
    #Schleife für jede Gruppe in der Gruppen.csv Datei
    
    $servers = Import-CSV $pfad
    
    ForEach($server in $servers)
    
    {
    
        if ((Get-ADComputer $server -Properties memberof).memberof -like "*CN=Role-GPO*")
    
    {
    
    }
    
    else
    
    {
    
    Write-Host -ForegroundColor RED "$server ist KEIN Mitlgied einer WSUS Gruppe"
    
    pause
    
    }
    
    
    
    }
    
    
    
    

    bekomme ich eine Fehlermeldung

    Get-ADComputer : Der Parameter "Identity" kann nicht gebunden werden. Der Wert "@{Name=NTS087}" kann nicht in den Typ "Microsoft.ActiveDirectory.Management.ADComputer" konvertiert
    
    werden. Fehler: "Der Wert "@{Name=NTS087}" vom Typ "System.Management.Automation.PSCustomObject" kann nicht in den Typ "Microsoft.ActiveDirectory.Management.ADComputer" konvertiert
    
    werden."
    
    In Z:\ZBS\IB1-Powershell\Server\Abfragen\WSUS_Gruppen_Check_v0.1.ps1:32 Zeichen:22
    
    +     if ((Get-ADComputer $server -Properties memberof).memberof -like "*CN=Role-GPO* ...
    
    +                         ~~~~~~~
    
        + CategoryInfo          : InvalidArgument: (:) [Get-ADComputer], ParameterBindingException
    
        + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.GetADComputer
    
     
    
    Get-ADComputer : Der Parameter "Identity" kann nicht gebunden werden. Der Wert "@{Name=NTS200}" kann nicht in den Typ "Microsoft.ActiveDirectory.Management.ADComputer" konvertiert
    
    werden. Fehler: "Der Wert "@{Name=NTS200}" vom Typ "System.Management.Automation.PSCustomObject" kann nicht in den Typ "Microsoft.ActiveDirectory.Management.ADComputer" konvertiert
    
    werden."
    
    In Z:\ZBS\IB1-Powershell\Server\Abfragen\WSUS_Gruppen_Check_v0.1.ps1:32 Zeichen:22
    
    +     if ((Get-ADComputer $server -Properties memberof).memberof -like "*CN=Role-GPO* ...
    
    +                         ~~~~~~~
    
        + CategoryInfo          : InvalidArgument: (:) [Get-ADComputer], ParameterBindingException
    
        + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.GetADComputer
    

    Hab das erstmal nur mit den beiden Servern NTS087 uind NTS200 getestet

  15. Wsus Gruppen sind aber dem Namen nach Gruppen in der wsus Datenbank, oder meinst du was anderes? Der wpp hat dafür übrigens eine Funktion, herauszufinden welche Computer im ad stehen aber nicht im wsus. Nur nicht gruppiert soweit ich mich erinnere.

     

    ich habe im ad verschiedene wsus-sicherheitsgruppen erstellt. über diese gruppen werden verschiedene gpos zugewiesen, welche unterschiedliche wsus einstellung enthalten.

  16. Hallo zusammen,

     

    ich bin gerade dabei unsere WSUS-Einstellungen für unserer Server von oubasiert auf gruppenbasiert umzustellen.

     

    Um zu prüfen, ob jeder Server in einer WSUS-Gruppe ist, wollte ich mir jetzt ein kleines Script schreiben.

     

    Für einen Server bekomme ich es hin.

     

     

    $server = "VNTS048"
    
    if ((Get-ADComputer $server -Properties memberof).memberof -like "*CN=Role-GPO*")
    {
    $true
    }
    Write-Host -ForegroundColor Green "Server ist Mitlgied einer WSUS Gruppe"
    {
    Write-Host -ForegroundColor RED "Server ist KEIN Mitlgied einer WSUS Gruppe"
    }

     

    Jetzt müsste das Script allerdings automatische alle Server abfragen. Hat jemand eine Idee, wie ich das mache.

     

    Danke schon einmal

×
×
  • Neu erstellen...