Jump to content

MurdocX

Moderators
  • Gesamte Inhalte

    2.745
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von MurdocX

  1. Ich hab für Dich ein Skript geschrieben, welche genau das macht, was du brauchst :)

    Viel Spaß damit!

    #requires -Version 3
    
    function Invoke-RenameFolder
    {
        param([STRING]$StartEbene,[STRING]$AktuelleEbene,[INT]$Tiefe)
        
        $StartTiefe = $StartEbene.Split('\').Count
        $Ordner = Get-ChildItem -Path $AktuelleEbene -Directory
            
        foreach($obj in $Ordner)
        {
            [INT]$AktuelleTiefe = ($obj.FullName.ToString()).Split('\').Count
            if (($AktuelleTiefe - $StartTiefe) -le $Tiefe)
            {
                Invoke-RenameFolder -StartEbene $StartEbene -AktuelleEbene $($obj.FullName) -Tiefe $Tiefe
            }
        }
    
        $SplittedPath = $AktuelleEbene.Split('\')
            
        For ($x = 0;$x -lt $($SplittedPath.Count-1))       
        {
            if ($JointPath -like '')
            {
                $JointPath = $SplittedPath[$x].ToString()
            }
            else
            {
                $JointPath = "$JointPath\$($SplittedPath[$x].ToString())"
            }
            $x++
        }
                    
        do
        {
            $i++
            $result = Test-Path -Path "$JointPath\$i" # Wenn der Pfad existiert, dann Zähle eins höher
        }
        while ($result -eq $true)
                    
        try
        {
            if ($AktuelleEbene -notlike $StartEbene)
            {
                Rename-Item -Path $AktuelleEbene -NewName $i -ErrorAction Stop
                Write-Host "[OK] Erfolgreich umbenannt: '$AktuelleEbene' > '$JointPath\$i'" -ForegroundColor Green
            }
        }
        catch
        {
            Write-Host "Fehler: $_" -ForegroundColor Red
        }
        
    }
    
    <# 
            !! INFO: START ist die Tiefe 0 !!
    #>
    
    
    [String]$START = 'D:\TEST'
    [INT]$Tiefe = 2
    
    Invoke-RenameFolder -StartEbene $START -AktuelleEbene $START -Tiefe $Tiefe
    
  2. Dynamische Updates können aus den folgenden Gründen bzw. bei folgenden Ereignissen gesendet werden:

    • Für eine der installierten Netzwerkverbindungen wird in der TCP/IP-Eigenschaftenkonfiguration eine IP-Adresse hinzugefügt, entfernt oder geändert.
    • Eine IP-Adresslease für eine der installierten Netzwerkverbindungen wird beim DHCP-Server geändert oder erneuert. Dies ist beispielsweise der Fall, wenn der Computer gestartet oder Befehl ipconfig /renew verwendet wird.
    • Der Befehl ipconfig /registerdns wird verwendet, um manuell eine Aktualisierung der Clientnamenregistrierung in DNS zu erzwingen.
    • Beim Systemstart, wenn der Computer eingeschaltet wird.
    • Ein Mitgliedsserver wird zu einem Domänencontroller heraufgestuft.

    Wenn eines der zuvor genannten Ereignisse ein dynamisches Update auslöst, werden Updates vom DHCP-Clientdienst (und nicht vom DNS-Clientdienst) gesendet. Dies wurde so konzipiert, damit bei einer Änderung an den IP-Adressinformationen, die von DHCP vorgenommen wird, entsprechende Updates in DNS ausgeführt werden, um die Namen-Adresszuordnungen für den Computer zu synchronisieren. Der DHCP-Clientdienst führt diese Funktion für alle Netzwerkverbindungen im System aus, einschließlich für Verbindungen, die nicht für die Verwendung von DHCP konfiguriert sind.

     

    Hmmm... Ich hab da eher an diesen Absatz gedacht in Bezug auf "Betrifft: Windows Server 2008, Windows Server 2008 R2" , aber ich bin natürlich auch nicht unfehlbar  :D

  3. Wenn ich mich noch richtig entsinnen kann, dann aktualisiert der Dienst "DHCP-Client"  "DNS-Client" die dynamischen DNS-Einträge. Außer der Computer ist nicht in der Domäne, dann übernimmt dies der DHCP-Server.

     

    https://technet.microsoft.com/de-de/library/cc771255.aspx

     

    Ich würde mal das Debugging vom DHCP-Client-Service aktivieren in der Ereignisanzeige unter "DHCP-Client" 

  4. $strComputer = "." 
     
    $colItems = get-wmiobject -class "Win32_DiskQuota" -namespace "root\CIMV2" ` 
    -computername $strComputer 
     
    foreach ($objItem in $colItems) { 
          write-host "Disk Space Used: " $objItem.DiskSpaceUsed 
          write-host "Limit: " $objItem.Limit 
          write-host "Quota Volume: " $objItem.QuotaVolume 
          write-host "Status: " $objItem.Status 
          write-host "User: " $objItem.User 
          write-host "Warning Limit: " $objItem.WarningLimit 
          write-host 
    } 
    

    Vielleicht ist das für Dich eine Lösung?

  5. bei uns hat jeder User ein persönliches Speicherkontingt auf unseren Freigaben.

    Kann man dies evtl per Powershell auswerten und bearbeiten?

     

    Ok, dann müssen wir genauer klären was du genau benötigst.

     

    Was meinst du mit auswerten?

    • Die Ordnergröße auslesen?
    • Die verbrauchte MB der Quotas jedes einzelnen?

    oder ganz was anderes?

     

     

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

    Wolltet du diese nicht auslesen?

     

    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:\.

    AFAIK ist das nur mit der cmd "fsutil quota query F:" möglich.

     

    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

     

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

     

  6. Ebenfalls werden die Dom-Admins per "Eingeschränkte Gruppen" als Remoteuser eingetragen. Was haltet Ihr von der Lösung? Gibt es eventuell schönere, saubere Lösungen?

     

    Unter den "Lokalen Richtlinien > Zuweisen von Benutzerrechten > Anmelden über Remotedesktopdienste" ist per se schon die lokale "Administratoren"-Gruppe enthalten.

    Diesen neuen Admin-Benutzer nochmal in die zweite Gruppe der "Remotedesktopbenutzer" hinzuzufügen, wäre doppelt gemoppelt  ;)

  7. https://technet.microsoft.com/de-de/library/dd464018(v=ws.10).aspx

     

    Überprüfen von "adprep /rodcprep"

    Nach Ausführung des adprep /rodcprep-Befehls wird eine Meldung im Eingabeaufforderungsfenster angezeigt, die besagt, dass alle Partitionen aktualisiert wurden. Sie können den erfolgreichen Abschluss vonadprep /rodcprep auch mithilfe des folgenden Verfahrens überprüfen.

    So überprüfen Sie den erfolgreichen Abschluss von adprep /rodcprep
    1. Melden Sie sich an einer administrativen Arbeitsstation an, auf der ADSIEdit installiert ist. ADSIEdit wird standardmäßig auf Domänencontrollern installiert, die unter Windows Server 2008 oder Windows Server 2008 R2 ausgeführt werden.

    2. Klicken Sie auf Start, klicken Sie auf Ausführen, geben Sie ADSIEdit.msc ein, und klicken Sie dann auf OK.

    3. Klicken Sie auf Aktion und dann auf Verbindung herstellen mit.

    4. Klicken Sie auf Bekannten Namenskontext auswählen, wählen Sie Konfiguration aus der Liste der verfügbaren Namenkontexte aus, und klicken Sie dann auf OK.

    5. Doppelklicken Sie auf Konfiguration, und doppelklicken Sie dann auf CN=Configuration,DC=Stammdomäne_der_Gesamtstruktur,

      wobei Stammdomäne_der_Gesamtstruktur der definierte Name der Stammdomäne der Gesamtstruktur ist.

    6. Doppelklicken Sie auf CN=ForestUpdates.

    7. Klicken Sie mit der rechten Maustaste auf CN=ActivedirectoryRodcUpdate, und klicken Sie dann auf Eigenschaften.

    8. Bestätigen Sie, dass das Revision-Attribut auf 2 festgelegt ist, und klicken Sie dann auf OK.

  8. Das die Richtliene nicht angewendet wird. Sprich in den lokalen Administratoren ist nicht die grp "bdv-support", wo unsere Supporter drin stehen.

     

    @ Newbie ->  :nene:

    Ich habe ein Englishes System.

    Ist aber egal, ich habe meine Einstellungen mit mehrere Suchanfragen über einen Suchanbieter gegen geprüft.

    1) Computer Configuration > Prefrences > Control Panel Settings > Local Useres and Groups

    2) Groupname: Administrators (built-in)

    3) Action Update > Members "Meine Supportgruppe"

     

    @ Member   ;)

     

    Genau das was ich geschrieben habe, nur für ein englischsprachiges Betriebssystem... Hat´s geklappt?  ;)

  9. gp-deall-bdv-support-local-admin = Computereinstellungen, Hinzufügen von Supportgruppe in lokale Admins auf den Rechnern

     

    So wird's gemacht: 

    1. Computerkonfiguration > Richtlinen > Windows-Einstellungen > Sicherheitseinstellungen > Eingeschränkte Gruppen öffnen
    2. Gruppe hinzufügen "Administratoren" (für ein deutsches Windows)
    3. Mitglieder dieser Gruppe "Administrator", "DEINE SUPPORTGRUPPE"
  10. Ich hab ein kurzes Skript für eine OU geschrieben. Dies ist nur eine von vielen möglichen Alternativen wie so etwas geschrieben und gestaltet werden könnte. Dies könntest du als Ansatz nutzen.

     

    EDIT: In verbesserter Form und nochmal übersichtlicher gestaltet. :)

    #requires -Version 1 -Modules ActiveDirectory
    Clear-Host
    
    # Variablen
    [STRING]$USER = ''
    [STRING]$BENUTZER = ''
    [ARRAY]$OU_USER = ''
    [ARRAY]$GROUP_MEMBER = ''
    
    Write-Host '[ AD-Abfragen... ] ' -NoNewline
    
    # Abfragen
    try
    {
        $OU_USER = (Get-ADUser -SearchBase 'LDAP-PFAD...' -Filter {Name -like '*'} -Server FQDN).SamAccountName
        $GROUP_MEMBER = (Get-ADGroupMember -Identity 'AD-GRUPPE...' -Server FQDN).SamAccountName
        Write-Host "[OK]`n" -ForegroundColor Green
    }
    catch
    {
        Write-Host "[Fehler]`n" -ForegroundColor Red
        Exit
    }
    
    Write-Host '[ Verarbeitung - OU-Benutzer]'
    
    # Verarbeitung
    ForEach ($USER in $OU_USER)
    {
        # Prüfe die Benutzer, ob diese Mitglied der Gruppe sind.
        If ($GROUP_MEMBER -contains $USER)
        {
            Write-Host -Object ":: OU-Benutzer:'$USER' ist Mitglied der Gruppe" -ForegroundColor Green
        }
        else
        {
            Write-Host -Object ":: OU-Benutzer:'$USER' ist KEIN Mitglied der Gruppe!" -ForegroundColor Yellow
        }
    }
    
    
    Write-Host "`n[ Verarbeitung - Gruppen-Benutzer]"
    
    ForEach ($BENUTZER in $GROUP_MEMBER)
    {
        # Prüfe die Gruppenmitglieder ob der Benutzer in der OU vorhanden ist.
        If ($OU_USER -contains $BENUTZER)
        {
            Write-Host -Object ":: Gruppen-Benutzer:'$BENUTZER' existiert in der OU." -ForegroundColor Green
        }
        else
        {
            Write-Host -Object ":: Gruppen-Benutzer:'$BENUTZER' existiert NICHT in der OU!" -ForegroundColor Yellow
        }
    }
    
    Write-Host "`n[ Skript Ende ]"
    
  11. Aus eigener Erfahrung kann ich nur sagen, dass gewachsene "Strukturen" schwer / nahezu unmöglich neu zu strukturieren sind.

    1. Du musst wissen wo jeder den Zugriff braucht und wo lieber nicht...
    2. Bei Umstrukturierungen finden die Benutzer ihre Daten nicht wieder.. 35 Firmen in die Planung miteinbeziehen?
    3. Für 35 Betriebe das Konzept verkaufen und umsetzen. 

    Ich finde jeden einzelnen Punkt schon sehr Aufwändig...Alternative?

     

    Eine parallele Struktur nach und nach.. mit dem AGDLP-Prinzip aufbauen. Stück für Stück und langsam umziehen.

  12. Ein Auszug aus der Technet für "Unblock-File" 

     

    "The Unblock-File cmdlet lets you open files that were downloaded from the Internet. It unblocks Windows PowerShell script files that were downloaded from the Internet so you can run them, even when the Windows PowerShell execution policy is RemoteSigned. By default, these files are blocked to protect the computer from untrusted files."

     

    Diese Blockade ist auch unter "Eigenschaften" > "Allgemein" unten zu sehen. Dort wird mit einem Sicherheitshinweis darauf hingewiesen, dass sie evtl. blockiert wurde. Sie kann dort direkt entsperrt werden. Bei ZIP-Dateien wird der gesamte Inhalt entsperrt.

  13. MurdocX, das war genau, was ich meinte

     

    Deine Lösung ist kurz und prägnant, das ist nicht von der Hand zuweisen :D  

     

    Vordefinierte PS-Skripte hab ich in den technet-blogs gefunden. Hier hat sich einer die Mühe gemacht das Prozedere zu vereinfachen  :)

    http://blogs.technet.com/b/heyscriptingguy/archive/2014/11/22/weekend-scripter-use-powershell-to-get-add-and-remove-ntfs-permissions.aspx

  14. @daabm

     

    Jain ;-)

     

    @Kuddel

     

    Hier ein kleines Beispiel für die Berechtigung "Ändern" auf ein Verzeichnis. Das ist aus einem Skript von mir.

    # Definition
    $objUser = New-Object  -TypeName System.Security.Principal.NTAccount -ArgumentList ("DOMÄNE\USER")
    $colRights = [System.Security.AccessControl.FileSystemRights]'Modify'
    $InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit 
    $PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None 
    $objType = [System.Security.AccessControl.AccessControlType]::Allow 
    $objACE = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule  -ArgumentList ($objUser, $colRights, $InheritanceFlag, $PropagationFlag, $objType) 
    $acl = Get-Acl $FQPath
    $acl.AddAccessRule($objACE)
    
    # DO!
    $acl | Set-Acl $FQPath
    
×
×
  • Neu erstellen...