Jump to content

MurdocX

Moderators
  • Gesamte Inhalte

    2.745
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von MurdocX

  1. Andere reisen auch mit 750 oder mehr Kilometern an. ;)

    Naja, ich war noch nie dort und weiß nicht ob sich das auch lohnt..  ;)

     

     

    750 is schon'n Ding. Bei mir sind's nur 600 :-) Also quasi ums Eck ;-) 

    Hehe, ja quasi. Wahrscheinlich Stuttart´er Richtung?

  2. Also aus 12.06.2016 22:00:00 soll werden 13.06.2016 rauskommen.

    Dieses möchte ich dann in die Varible $Date2 übergeben.

    [DateTime]$Date = $(get-date)
    
    $date.ToShortDateString() # Ausgabe 1
    
    $date2 = $date.AddDays(1)
    
    $date2.ToShortDateString() # Ausgabe 2
    

    => Ausgabeergebnis

    23.06.2016
    24.06.2016
     
    Eine weitere Variante  :wink2:
     
    Oder ein Einzeiler
    ([DateTime]::Parse('23.06.16')).AddDays(1).ToShortDateString()
    
  3. Ja genau! Die frage war wie bringe ich die unterschiedlichen Domains unter? Funktioniert das mit - identity ´(domainA) Gruppe´ ?

    Add-ADGroupMember -Server 'Domaincontroller.DomäneA.local' -Credential $(Get-Credential)
    

    Hier kannst du "Server" für den anderen DC nutzen und natürlich dann "Credential" für die Authentifizierung. Damit kannst du zu anderen Servern eine Verbindung aufbauen

     

    Falls du mehrere verschachtelte Abfragen machen möchtest, kannst du die Server in eine Variable schreiben und mit "ForEach" oder "ForEach-Object" abklappern.

  4. Get-ADGroupMember -Identity '(DomainA) GRUPPE-X' | Add-ADGroupMember -Identity '(DomainB) GRUPPE-X'
    

    Suchst du ungefähr sowas? Falls ich das richtig verstanden habe, möchtest du die Mitglieder einer Gruppe auch in der anderen Domäne in eine Gruppe packen?

     

    Vielleicht liegt´s an mir, aber ich verstehe deine Beschreibung leider nicht...

  5. Hallo,

    kann mir jemand sagen, wie ich es mit Powershell hinbekomme, innerhalb eines Ordners alle Textdateien nach einem bestimmten String zu durchsuchen.

     

    Hier hätte ich auch ein Skript für Dich. Es erledigt genau das was du suchst. 

    http://www.it-explorations.de/suchen-ersetzen-powershell/

    Das mit dem Suchen innerhalb der Textdateien hat funktioniert.

    Nun will ich dieses Script stündlich laufen lassen und es soll mir eine E-Mail versenden, wenn die Suche erfolgreich war. Das habe ich mit folgenden Befehl versucht, aber so scheint das nicht zu funktionieren.

    $PSEmailServer = "E-Mailserver"
    Get-childitem "Suchpfad" | select-string -pattern "Suchtext" | Send-MailMessage -to Empfaenger@domain.de -from Absender@domain.de  -subject "Betreff" -body "Mailtext"

    Ich erhalte nämlich die Fehlermeldung "Send-MailMessage : Das angegebene Pfadformat wird nicht unterstützt."

     

    Kann mir jemand sagen, wie ich bei erfolgreichem Finden eine E-Mail versenden kann?

    Wäre es sogar denkbar, dass nur eine E-Mail versendet wird, obwohl die Suche öfters erfolgreich war? 

     

    Viele Dank für jede Hilfe.

     

    Ich habe es mit einem "ForEach " gelöst.

     

    Setze einfach "Get-childitem "Suchpfad" | select-string -pattern "Suchtext"" in ein IF

    If (Get-childitem "Suchpfad" | select-string -pattern "Suchtext")
    {
     send-message ....
    }
    
  6. Hallo Molle,

     

    mit deinem "recht armen" Ansatz kommst du nicht weit. Ich hab Dir das benötigte Skript geschrieben und getestet. Es sucht in dem angegebenen Pfad nach den Ordnern und Unterordnern. Ließt die Berechtigungen aus und schreibt die mit 'ReadandExecute" zu 'Modify' um. Die Vererbung ist aktiviert. 

     

    Die 3 Variablen sind auszufüllen:

     

    $strPfad = 'LW:\ORDNER'
    $strGruppenbezeichnung = 'MB-DL'
    $strDomäne = 'DOMÄNE' # Domäne ohne Endung wie z.B. '.local' -> NETBIOS-NAME

     

    Viel Erfolg ;-)

    
    #
    #  Author: Jan Weis
    #  www.it-explorations.de
    #
    
    # --- BENUTZER VARIABLEN ---#
    
    
    $strPfad = 'LW:\ORDNER'
    $strGruppenbezeichnung = 'MB-DL'
    $strDomäne = 'DOMÄNE' # Domäne ohne Endung wie z.B. '.local' -> NETBIOS-NAME
    
    
    # --- SYSTEM VARIABLEN --- #
    
    
    # FileSystemRights Flags
    $objFileSystemRightModify = [System.Security.AccessControl.FileSystemRights]'Modify'
    $objFileSystemRightReadExecute = [System.Security.AccessControl.FileSystemRights]'ReadAndExecute'
          
    # InheritanceFlags Flags
    $objInheritanceFlagDirectory = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit 
    $objInheritanceFlagFile = [System.Security.AccessControl.InheritanceFlags]::None
    
    # Common Flags
    $objAccessControlTypeAllow = [System.Security.AccessControl.AccessControlType]::Allow 
    $objPropagationFlagsNone = [System.Security.AccessControl.PropagationFlags]::None 
    
    
    # --- SKRIPT ---#
    
    
    Foreach ($objOrdnerItem in (Get-ChildItem -Path $strPfad))
    {
      
      # Berechtigungen abrufen
      $objOrdnerItemACL = Get-Acl -Path $objOrdnerItem.FullName
    
      # Prüfe jedes Berechtigungsobjekt ob es den gewünschten Namen beinhaltet UND die Berechtigung 'ReadAndExecute' beinhaltet
      [String[]]$strACLGruppenListe = ($objOrdnerItemACL.Access | Where-Object {$_.IdentityReference -match $strGruppenbezeichnung -and $_.FileSystemRights -like 'ReadAndExecute*'}).IdentityReference.Value
    
      # Passen die Berchtigung für jede gefundene Gruppe an 
      foreach ($strACLGruppenItem in $strACLGruppenListe)
      {
      
        # Für jede gefundene Gruppe wird die Berechtigung auf 'Modify' angepasst
        
        # Domäne entfernen
        $strACLGruppenItem = $strACLGruppenItem.replace("$strDomäne\",'')
    
        # NTAccount-Object anlegen
        $objADSecGruppe = New-Object  -TypeName System.Security.Principal.NTAccount -ArgumentList ($strACLGruppenItem) 
          
        # FILESYSTEMACCESSRULE-OBJECT ANLEGEN
        $objDirectoryAceRule = New-Object  -TypeName System.Security.AccessControl.FileSystemAccessRule  -ArgumentList ($objADSecGruppe, $objFileSystemRightModify, $objInheritanceFlagDirectory, $objPropagationFlagsNone, $objAccessControlTypeAllow) 
          
        # NEUE ACL HINZUFÜGEN
        $objOrdnerItemACL.AddAccessRule($objDirectoryAceRule)
          
        # NEUE ACL AUF DAS OBJEKT SCHREIBEN
        $objOrdnerItemACL | Set-Acl -Path $objOrdnerItem.FullName
      }
    
    }
    

    Um eine Ausgabe zu bekommen, kannst du noch unter dem letzten Command "Neue ACL auf das Objekt schreiben" folgenden Befehl darunter setzen: 

    Write-Host ":: [Berechtigung angepasst] Gruppe: '$strACLGruppenItem'; Pfad: '$($objOrdnerItem.FullName)'" -ForegroundColor Yellow
    
  7. Zitat magheinz - 01 Apr 2016 - 18:24:

    BTW: mir sind Leute lieber die sich bei Gefahr VOR mich stellen. Hinter mir verstecken ist keine Stärke. Ein Verweis aud Regeln und Gesetze ist hoffentlich keine Rechtsberatung. Ich darf doch auch einem Kumpel erklären warum er nicht bei rot über eine Ampel fahren darf. Oder muss ich dafür Anwalt sein?

     

    Fühlt sich da jemand auf den Schlips getreten? :rolleyes:  Man darf doch wohl mal darauf hinweisen oder? ;)

  8. Ja, Clients greifen auf den vCenter Server zu, z.B. per vSphere Client, per Web Client (HTTPS) oder per API.

     

    1. Zum welchen Zweck erfolgen diese Zugriffe ?

    2. Greifen immer alle Clients zu, oder nur ein bestimmte Gruppe (zB. Admins) ?

     

    1. Zur Administration des Hosts, sowie auch der VM´s

    2. Es greifen nur die Clients der Admins darauf zu

    • Like 1
  9. Der einzig kritische Aspekt im Artikel. In typischen, mittelständischen Unternehmen sollte man das Attribut doch mit den richtigen Berechtigungen versehen können? Ein entsprechendes Tool, um die Berechtigungen des Attributs auslesen zu können liefert LAPS doch sogar mit.

     

    Der Aspekt gelesen werden zu können... Jep..

     

    "In dem hier diskutierten Szenario könnte es ausreichen, eine Vorgabe zum manuellen Setzen eines komplexen Kennworts zu machen...... Man könnte auch etwas LAPS-Ähnliches selbst bauen, z.B. einen Task, der lokal ein Kennwort generiert, es setzt und an einen geschützten Ort schreibt....."

     

    ... Das bringt mich auf eine Idee  :)

     

    .Net bringt die Möglichkeit Daten zu verschlüsseln (System.Security.Cryptography), so müsste keine andere Software eingesetzt werden. Hier könnte ein Powershell-Skript geschrieben werden, welches ein Passwort generiert, lokal setzt, die Daten verschlüsselt und im Computer-Objekt ablegt. 

     

    Nils, das wäre doch wieder ein Blog Eintrag wert bei Dir, oder? ;)  

×
×
  • Neu erstellen...