Jump to content

Bloodspiret

Members
  • Gesamte Inhalte

    8
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von Bloodspiret

  1. Hallo Zusammen,

     

    ich habe derzeit auf einem Rechner ein merkwürdiges Problem, eine Website wird "geblockt"

     

    -ping auf die seite gibt nicht gefunden zurück

    -ping auf die IP ist ok

     

    nslookup liefert eine Antwort zurück inklusive der ip

     

    In allen Browsern, mit allen Benutzerkonten wird vom Browser ein mögliches DNS Problem angegeben oder Resscource not found

     

    Wenn ich https://IP der Seite eingebe sehe ich wie der Browser auf die Loginseite weitergeleitet wird, da auf dem Webserver aber eine Umschreiberegel aktiv ist die aus der IP wieder den Hostname macht erscheint wieder der besagte Fehler.

     

    folgendes habe ich geprüft:

    -anderes Netzwerk/Router/Hotspot ---> gleiches verhalten

    -Hostdatei ---> ist ok

    -windows firewall deaktiviert / auf Standard zurückgesetzt

    -dns flush usw

    -client aus der domäne genommen und wieder hinzugefügt (gpo-reset)

     

    Hat jemand eine Idee wo in Windows (registry oder wo auch immer) die seite noch hinterlegt sein sodass diese blockiert wird?

     

    Auf dem Rechner läuft eine sophosfirewall die Webfiltering umsetzt, allerdings produziert diese nicht den üblichen Logeintrag bei einem block, und die Seite wird auch von keinem anderen Client mit den selben Einstellungen blockiert.

     

    Der Fehler ergibt an sich keinen sinn^^

     

    Grüße

    Bloodspiret

  2. Oha mittlerweile gibt es ein Fix für das Problem in Form eines neuen CU :)

     

     

    Resolution

    To fix this issue, install one of the following updates:

    For Exchange Server 2019, install theCumulative Update 8 for Exchange Server 2019 or a later cumulative update for Exchange Server 2019.

    For Exchange Server 2016, install the Cumulative Update 19 for Exchange Server 2016 or a later cumulative update for Exchange Server 2016.

  3. vor 8 Minuten schrieb mikro:

    Moin,

     

    hast du es mal mit dem RegKey für den ExcludeExplicitO365Endpoint=dword:0000001 versucht? 

     

    Gruss mikro

     

    Hallo Mirko,

     

    ja den wert hab ich schon seit ein paar Monaten per gpo gesetzt da die Outlook Clients sich immer bei o365 melden wollten statt am lokalen Exchange. Aber würde dieser Wert auch einen Effekt auf die in den Mails gepeicherten Anhänge haben über owa haben und das nur bei Freigabepostfächern? Hab das Problem auch von externen Rechnern auf denen ich das OWA öffne da es extern erreichbar ist.

  4. Hallo Zusammen,

     

    ich habe hier ein Phänomen an einem lokalen Exchange Server 2016.

     

    Betrifft: 

     

    Nur Freigabepostfächer in OWA

     

    Symptom:

     

    Die Dateivorschau zum Beispiel ein PDF bleibt weiß, mit der folgenden Fehlermeldung:

     

    image.png.4064229ed798e7958b2ff843ae86ee58.png

     

    Beim Versuch den Anhang herunterzuladen erscheint die folgende Fehlermeldung:

     

    image.png.31666fca2afeaab0b9800e1aaaf6dc08.png

    Er versucht den Anhang also vom Exchange Online herunterzuladen statt vom lokalen Server, es ist kein Hybrid konfiguriert, bei Benutzerpostfächern passiert das nicht, da ist der Anhang normal auf den lokalen Server verlinkt.

    Auch im lokalen Outlook Client gibt es keine Probleme bei den Freigabepostfächern.

     

    Da bin ich jetzt etwas ratlos.

  5. Hallo MurdocX,

     

    erneut danke für deine Antwort :)

     

    Es geht mir mir hier um die Fragestellung wie kann ich in der csv datei die Variable angeben die ich im script bereits an höherer Stelle festgelgt habe.

     

    Die Fragestellung ist zum teil gelöst- Nochmal zur Klarstellung:

     

    Ich habe in der CSV eine Spalte namens Description, in dieser Spalte kann entweder ein manueller Wert stehen der dann so in die Description für die Gruppe angelegt wird. Es soll aber auch möglich sein sich auf eine Variable zu beziehen. In dem Fall trage ich in der CSV die Variable ein die ich im Script bereits habe.

     

    Lösung 1)

    in der csv steht in der Spalte Description: $Baustellenname

     

    im Script steht:

    If($_.Description -like "$*") {$Description = Get-Variable -Name $_.Description.Remove(0,1) -ValueOnly}

    Else {$Description = $_.Description}

     

    funzt ---> ist getestet

     

    Lösung 2) die gefällt mir noch besser denn das ist die eigentliche Lösung die ich mir erhofft habe:

     

    in der csv steht in der Spalte Description: $Baustellenname

     

    im Script steht:

     

    If($_.Description -like "$*") {$Description = iex $_.Description}
    Else {$Description = $_.Description}

     

    ---> funzt ist getestet

     

    Das iex oder voll ausgeschrieben Invoke-Expression sorgt dafür das er die einfachen Anführungszeichen entfernt und Powershell dies nun als Variable interpretiert als hätte ich diese direkt im Script eingetragen.

     

    So mit dieser Lösung ist das eigentliche Thema geölst und ich bin fast zufrieden. Da mein Plan aber die möglichst weitgehenste Dynamisierung ist möchte ich in der csv zum Beispiel 2 bereits bestehende Variablen eintragen können, ungefair so:

     

    in der csv steht in der Spalte Description: $Bauvorhaben$Baustellenname

     

    im Script steht nach wie vor:

     

    If($_.Description -like "$*") {$Description = iex $_.Description}
    Else {$Description = $_.Description}

     

    hier nimmt Powershell nun aber nur die erste Variable, die 2 wird dann nicht mehr erkannt. Würde ich hingegen die beiden Variablen in der Powershell genauso eintragen funktioniert die Verkettung.

    So, und wenn diese Fragestellung gelöst ist wirds dann richtig tricky dann soll es auch möglich sein in der CSV alles in der einen Spalte, eine Verkettung aus Variablen und text einzugeben, ungefair so:

     

    in der in der csv steht in der Spalte Description: $Bauvorhaben$Baustellenname_XYZ

     

     

    Grundsätzlich sei gesagt, es wird da wars***einlich nie etwas anderes drinn stehen als der $Baustellenname aber ich möchte halt die dynamische möglichkeit schaffen :)

     

    Gruß

    Bloodspiret.

     

  6. Hallo MurdocX,

     

    vielen Dank das du Dir das Thema angeschaut hast auch wenn Deine Antworten etwas an Meiner Fragestellung vorbei gehen :)

     

    Ich möchte das $ Nutzen um zu identifzieren das es sich um eine im Script bereits befindliche Variable Handelt und er das importierte auch so behandelt soll. Steht das Zeichen nicht davor zu gibt er den Text direkt weiter. Das klappt auch so weit.

    Bauvorhaben wurde nicht definiert: du siehst hier nur einen Teil des gesamt Scripts die Variable ist am Anfang schon definiert

    Das Sparen der neuen Variablen ---> Jupp gute Idee

    In der Erste Zeile fehlt der Name und SAM ---> Nein der muss leer sein, ich setze den Namen beim Anlegen aus Bauvorhaben + den Namen aus der CSV zusammen, die Erste Gruppe soll halt nur das Bauvorhaben sein ohne den in der CSV angegebenen Zusatz _ XXX. Es sind nur für einen Ordner gedachte Berechtigungsgruppen die ich später noch im ACL einfüge.

     

    Ich habe meine Fragestellung nun folgendermaßen gelöst:

     

     

    Import-Csv -Path \\dc01-2019\shares\Baulogistik\Baustellen\Scriptdaten\Gruppen_ADD.csv -Delimiter ";" -encoding utf8 | Foreach{
    $Name = $_.Name
    $SamAccountName = $_.SamAccountName
    $GroupCategory = $_.GroupCategory
    $GroupScop = $_.GroupScop
    $DisplayName = $_.DisplayName
    $Path = $_.Pfad
    $G_Varaible = $_.Variable.Remove(0,1)
    If($_.Description -like "$*") {$Description = Get-Variable -Name $_.Description.Remove(0,1) -ValueOnly}
    Else {$Description = $_.Description}
    Set-Variable -Name $G_Varaible -Value $Bauvorhaben$Name

    New-ADGroup -Name $Bauvorhaben$Name -SamAccountName $Bauvorhaben$SamAccountName -GroupCategory $GroupCategory -GroupScope $GroupScop -DisplayName $Bauvorhaben$DisplayName -Path $Path -Description $Description
    }

     

    Ich hole mir die Variable mit Get-Varibale in dem ich das erste Zeichen per remove rausnehme. Das funktioniert jetzt super. Die Frage wäre nur ob man es noch etwas besser hinbekommt.

    Wenn ich zum Beispiel in der CSV 2 Variablen zusammenkette, das würde im Moment nicht funktionieren. Kann man nicht einen Befehl davor schreiben der sagt bewerte den Inhalt als Variable und nicht als Text?

    Später wird das nochmal wichtig wenn ich die ACL´s setzen möchte, in einer weiteren CSV wird ein Admin diese configrieren können. HIer gibt es dann sowohl Gruppen die Dauerhaft schon in der AD sind und Gruppen die projektbezogen durch das Script angelegt werden. in der CSV wird dann zum beispiel stehen

     

     

    grafik.png.e266bdc97a8918bf38e47a71991bbfcc.png

     

     

    Gruß

    Bloodspiret.

     

     

    Hier mal das ganze Script:
    
    
    #Startet das Script mit Adminrechten neu und in der Gruppe Administratoren:
    
    If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] „Administrator“))
    {   Write-Host „No Adminrights. restart as Administrator“
        $arguments = „& ‚“ + $myinvocation.mycommand.definition + „‚“
        Start-Process powershell -Verb runAs -ArgumentList $arguments
        Break
    }
    
    #Pfad auslesen
    
    function Get-ScriptDirectory {
        $Invocation = (Get-Variable MyInvocation -Scope 1).Value
        Split-Path $Invocation.MyCommand.Path
    }
    
    #Abfrage der Variablen
    
    $UStrich = "_"
    $installpath = Get-ScriptDirectory
    $Bauvorhaben = Read-Host 'Bauvorhaben angeben'
    $Baustellenname = Read-Host 'Baustellenname angeben'
    $Ordnername = "$Bauvorhaben$UStrich$Baustellenname"
    $FullPath = "$installpath\$Ordnername"
    
    #Gruppen Anlegen
    
    Import-Csv -Path \\dc01-2019\shares\Baulogistik\Baustellen\Scriptdaten\Gruppen_ADD.csv -Delimiter ";" -encoding utf8 | Foreach{
    $Name = $_.Name
    $SamAccountName = $_.SamAccountName
    $GroupCategory = $_.GroupCategory
    $GroupScop = $_.GroupScop
    $DisplayName = $_.DisplayName
    $Path = $_.Pfad
    $G_Varaible = $_.Variable.Remove(0,1)
    If($_.Description -like "$*") {$Description = Get-Variable -Name $_.Description.Remove(0,1) -ValueOnly}
    Else {$Description = $_.Description}
    Set-Variable -Name $G_Varaible -Value $Bauvorhaben$Name
    
    New-ADGroup -Name $Bauvorhaben$Name -SamAccountName $Bauvorhaben$SamAccountName -GroupCategory $GroupCategory -GroupScope $GroupScop -DisplayName $Bauvorhaben$DisplayName -Path $Path -Description $Description
    }
    
    #Legt den Baustellenordner an falls nicht vorhanden
    
    if(!(Test-Path $FullPath)) {New-Item -Path $FullPath -ItemType Directory
    Write-Host -ForegroundColor Green $FullPath wurde erstellt
    }
    Else {Write-Host -ForegroundColor Red $FullPath ist schon vorhanden}
    
    #Legt die Baustellenunterordner an falls nicht vorhanden
    
    Import-Csv -Path \\dc01-2019\shares\Baulogistik\Baustellen\Scriptdaten\Ordner.csv -Header "Ordner" | ForEach-Object {
    $Subordner = $_.Ordner
    if(!(Test-Path "$FullPath\$Subordner")) {New-Item -Path $FullPath\$Subordner -ItemType Directory
    Write-Host -ForegroundColor Green $Subordner wurde erstellt
    }
    Else {Write-Host -ForegroundColor Red $Subordner ist schon vorhanden}
    }
    
    #Kopiert die Vorlagendateien falls nicht vorhanden
    
    Import-Csv -Path \\dc01-2019\shares\Baulogistik\Baustellen\Scriptdaten\Dateien.csv -Header "File" | ForEach-Object {
    $File = $_.File
    if(!(Test-Path "$FullPath\$File")) {Copy-Item -Path $installpath\Scriptdaten\Vorlagenordner\$File -Destination $FullPath\$File
    Write-Host -ForegroundColor Green $File wurde kopiert
    }
    Else {Write-Host -ForegroundColor Red $File ist schon vorhanden}
    }
    
    Import-Csv -Path \\dc01-2019\shares\Baulogistik\Baustellen\Scriptdaten\Berechtigungen_ADD.csv -Delimiter ";" | ForEach-Object {
    
    $SubOrdnerName = $_.Ordner
    If($_.Gruppe -like "$*") {$Gruppe = Get-Variable -Name $_.Gruppe.Remove(0,1) -ValueOnly}
    Else{$Gruppe = $_.Gruppe}
    $AccessControlType = $_.Art
    $FileSystemRights = $_.Rechte
    $InheritanceFlags = $_.Inheritance
    $PropagationFlags = $_.Propagation
    $Ordner = "$installpath\$Ordnername\$SubOrdnerName"
    $GruppeID = Get-ADGroup -Identity $Gruppe
    $acl = Get-Acl $Ordner
    $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($GruppeID.SID, $FileSystemRights, $InheritanceFlags, $PropagationFlags, $AccessControlType)
    $acl.AddAccessRule($AccessRule)
    Set-Acl -Path $Ordner -AclObject $acl -ea Stop
    }
    
    Import-Csv -Path \\dc01-2019\shares\Baulogistik\Baustellen\Scriptdaten\Vererbung_DEL.csv -Delimiter ";" | ForEach-Object {
    $SubOrdnerName = $_.Ordner
    $Ordner = "$installpath\$Ordnername\$SubOrdnerName"
    $acl = Get-Acl $Ordner
    $acl.SetAccessRuleProtection($true,$true)
    Set-Acl $Ordner $acl
    }
    
    Import-Csv -Path \\dc01-2019\shares\Baulogistik\Baustellen\Scriptdaten\Berechtigungen_DEL.csv -Delimiter ";" | ForEach-Object {
    
    $SubOrdnerName = $_.Ordner
    If($_.Gruppe -like "$*") {$Gruppe = Get-Variable -Name $_.Gruppe.Remove(0,1) -ValueOnly}
    Else{$Gruppe = $_.Gruppe}
    $AccessControlType = $_.Art
    $FileSystemRights = $_.Rechte
    $InheritanceFlags = $_.Inheritance
    $PropagationFlags = $_.Propagation
    $Ordner = "$installpath\$Ordnername\$SubOrdnerName"
    $GruppeID = Get-ADGroup -Identity $Gruppe
    $acl = Get-Acl $Ordner
    $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($GruppeID.SID, $FileSystemRights, $InheritanceFlags, $PropagationFlags, $AccessControlType)
    $acl.RemoveAccessRule($AccessRule)
    Set-Acl -Path $Ordner -AclObject $acl -ea Stop
    }

     

    Ich hab nun eine weitere Lösung:

     

    {$Description = iex $_.Description}

    Das kleine Wörtchen iex davor und es wird als Variable interpretiert statt als Text :)

    Nur die Verkettung von variablen in der CSV funktioniert damit weiterhin nicht.

  7. Hallo Zusammen,

    ich verzweifle gerade etwas.

    Zur Situation:

    Ich habe ein Script das unter anderem AD Gruppen anlegt, das funktioniert soweit auch alles, jetzt kam ich aber auf die Idee das anlegen der Gruppen dynamisch über eine CSV datei einzulesen.
    Auch das funktioniert soweit, ich habe aber einen Wert der ein entweder als Text verarbeitet werden soll oder als Variable die ich oben im Script festgelegt habe.

    Betroffener Teil im Script:

    Import-Csv -Path \\dc01-2019\shares\Baulogistik\Baustellen\Scriptdaten\Gruppen_ADD.csv -Delimiter ";" -encoding utf8 | Foreach{
    $Name = $_.Name
    $SamAccountName = $_.SamAccountName
    $GroupCategory = $_.GroupCategory
    $GroupScop = $_.GroupScop
    $DisplayName = $_.DisplayName
    $Path = $_.Pfad
    If($_.Description -like "$*") {$Description = %{$_.Description}}
    Else {$Description = $_.Description}
    Write-Host $Description

    New-ADGroup -Name $Bauvorhaben$Name -SamAccountName $Bauvorhaben$SamAccountName -GroupCategory $GroupCategory -GroupScope $GroupScop -DisplayName $Bauvorhaben$DisplayName -Path $Path -Description $Description
    }

    Dazugehörige csv:

    Name SamAccountName GroupCategory GroupScop DisplayName Pfad Description
    Security Global OU=Bauvorhaben,OU=Baulogistik,OU=Benutzergruppen,OU=Benutzerorganisation,DC=bloodspiret,DC=ddns,DC=net $Baustellenname
    _Lesen _Lesen Security Global _Lesen OU=Bauvorhaben,OU=Baulogistik,OU=Benutzergruppen,OU=Benutzerorganisation,DC=bloodspiret,DC=ddns,DC=net Test
    _Schreiben _Schreiben Security Global _Schreiben OU=Bauvorhaben,OU=Baulogistik,OU=Benutzergruppen,OU=Benutzerorganisation,DC=bloodspiret,DC=ddns,DC=net $Baustellenname
    _Ändern _Ändern Security Global _Ändern OU=Bauvorhaben,OU=Baulogistik,OU=Benutzergruppen,OU=Benutzerorganisation,DC=bloodspiret,DC=ddns,DC=net $Baustellenname
    _Zuko _Zuko Security Global _Zuko OU=Bauvorhaben,OU=Baulogistik,OU=Benutzergruppen,OU=Benutzerorganisation,DC=bloodspiret,DC=ddns,DC=net $Baustellenname


    Frage:

    wie verklickere ich der Powershell beim Festlegen der Variable $Description das der den Wert $Baustellenname als die oben angelegte Variable interpretieren soll und mir in der AD nicht '$Baustellenname' in die Description schreibt?

    Gruß
    Bloodspiret

×
×
  • Neu erstellen...