Jump to content

Bloodspiret

Members
  • Gesamte Inhalte

    8
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte 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. Ich bin dann doch noch fündig geworden. https://support.microsoft.com/en-us/help/4588297/attachments-not-downloaded-or-previewed-from-owa Offenbar hat Microsoft im CU18 einen kleinen Bug mitgeliefert für den es aktuell nur einen Workarrount gibt.
  4. 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.
  5. 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: Beim Versuch den Anhang herunterzuladen erscheint die folgende Fehlermeldung: 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.
  6. 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.
  7. 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 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.
  8. 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...