Jump to content

Kuddel071089

Members
  • Gesamte Inhalte

    557
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Kuddel071089

  1. Hallo zusammen, ich habe mir gerade ein PS Skript geschrieben um nicht mehr benötigte Verzeichniss in ein Archiv zu verschieben. Nach dem Vorgang hat das archivierte Verzeichnis leider immer noch die alten Berechtigungengruppen und übernimmt nicht die neuen Archiv-R und Archiv-RW. Ich muss dann erst per Klick sagen: Alle Berechtigungseinträge für untergeordnete Objekte durch vererbbare Berechtigungseinträge von diesem Objekt ersetzen Schön wäre es natürlich, wenn das direkt im Skript durchgeführt wird. Leider hab ich im Netzt noch nichts dazu gefunden. Hat jemand eine Idee dazu ? Danke schon einmal
  2. Hallo zusammen, bei uns steht seit 2015 zu anfang jeden Jahres eine Iventur aller Verzeichnissberechtigungen an. Jedes Verzeichnis hat einen sog. Verantwortlichen. Diese sollen nun von uns eine Auswertung ihrer zugewiesenen Verzeichnisse bekommen. Sprich: 1. Welche Gruppen sind per NFTS auf das Verzeichnis mit welchen Rechten berechtigt 2. Wer ist Mitglied in diesen Gruppen Letztes Jahr haben wir diese Inventur per Powershell gemacht und dann alles per Hand in Excel sortiert nach Standorten etc. Kennt jemand vllt. eine Software-Lösung die uns in unserem Fall helfen kann ? Danke schon einmal
  3. Moin Nils, Danke für die Antwort. Ich werde mich mal an Werk machen. Gruß Kuddel
  4. Hallo zusammen, ich habe mir ein Skript geschrieben, welches mir File-Zugriffsgruppen ohne Mitglieder auflistet. R = Leserechte RW = Schreibrechte Get-ADGroup -Filter {Name -like "*-R"} -Properties Members | Sort-Object | where { -not $_.Members} | select Name Get-ADGroup -Filter {Name -like "*-RW"} -Properties Members | Sort-Object | where { -not $_.Members} | select Name Funktioniert an sich schon einmal gut. Hier werden jetzt viele -R Gruppen aufgelistet, da häufiger Schreibrechte genutzt werden. Jetzt versuche ich gerade, die Abfrage so zu erweitern, dass ich nur Gruppen aufgelistet bekomme, wo sowohl -R als auch -RW keine Mitglieder hat um evtl. nicht mehr genutzte Verzeichnisse zu identifizieren. Leider hab ich noch nicht wirklich einen Ansatz, wie ich das Ganze umsetzten. Hat jemand einen Tipp für mich ? Vielen Dank schon einmal
  5. Mit FT -wrap -autosize wird nichts mehr abgeschnitten EDIT: Ich habe das Ganze jetzt doch anders gelöst, was ich sogar noch viel besser finde: Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -Properties LastLogonTimeStamp,operatingSystem,DistinguishedName | Sort-Object | select-object Name,@{Name="lastLogonTimestamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},operatingSystem, DistinguishedName | export-csv -Delimiter ";" -path "$outputFile"
  6. Ah okay, das ist einleuchtend. Also ist es besser, wenn man die Ausgabe direkt in eine Datei umleitet. Kann man den Pfad irgendwie per Dateibrowser auswählen oder muss man den Pfad zwingend eintippen ?
  7. Hallo zusammen, ich habe mir ein Skript geschrieben, welches alle inaktiven Computerobjekte auflistet die älter als X Tage sind. Führe ich das Skript in der ISE aus, ist die Ausgabe korrekt. Ich habe mir eine Verknüpfung erstellt um das Skript per Doppelklick ausführen zu können. Dann wird das Skript in der normalen Powershell.exe ausgeführt und dabei ist die AUsgabe nocht mehr korrekt da bei Längeren Einträgen die dem DistinguishedName einfach hinten etw. abgeschnitten wird. Kennt jemand das Phänomen? Danke schon einmal Skript: cls $host.ui.RawUI.WindowTitle = "Auflistung alle inaktiven Computerobjekte v0.2" Write-Host -ForegroundColor Yellow "Bitte Zeitspanne für die Abfrage einebeben" Write-Host Write-Host -ForegroundColor Yellow "(in Tage - Format: XX z.B. 02 für 2 Tage): " -NoNewline $DaysInactive = Read-Host $time = (Get-Date).Adddays(-($DaysInactive)) if($DaysInactive -eq 0) {break} Write-Host "" Write-Host "" Write-Host -ForegroundColor Cyan "Bitte Speicherort auswählen" sleep 1 Write-Host "" #Speicherort abfragen 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 } # open dialog box to select the .nessuss file. $OutputFile = Get-SaveFile Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -Properties LastLogonTimeStamp,operatingSystem,DistinguishedName | Sort-Object | select-object Name,@{Name="lastLogonTimestamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}},operatingSystem,DistinguishedName | FT -AutoSize | Out-File "$outputFile" -Append Verknüpfung: Ziel: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "& '\\xxx\yyy\zzz\Abfrage AD inaktive ComputerObjekte.v0.2.ps1'" Ausführen in: C:\Windows\System32\WindowsPowerShell\v1.0\
  8. Also wenn ich das Script teste und die Batch ausführe mit eingestecktem LAN Kabel und aktiviertem W-LAN habe ich folgendes Ergebnis: LAN-Verbindung ist aktiv WLAN aus in dieser Schleife bleibt das Skript hängen auch wenn ich das LAN Kabel entferne
  9. Hallo zusammen, wenn ich mit meinem Notebook per W-LAN verbunden bin und dann ein LAN Kabel einstecke, läuft der Traffic trotzdem weiter über WLAN, obwohl ich die LAN-Verbindung als erste Verbindung eingerichtet habe. Jetzt wollte ich ein kurzes Script schreiben, welches dauerhaft im Hintergrund läuft und prüft welches Interface verbunden ist. Sprich: LAN verbunden -> WLAN ausschalten / LAN nicht verbunden -> WLAN anschalten. Iwo ist aber noch ein Fehler, auf jeden Fall merkt das Script nicht, dass ich das LAN Kabek entferne und die IP 192.168.4.6 nicht mehr erreichbar ist. @echo off title LAN_WLAN_Umschaltung :check cls ::LAN Interface ping -n 1 192.168.4.6 | find /i /c "TTL" >nul if %ERRORLEVEL% == 0 ECHO LAN-Verbindung ist aktiv if %ERRORLEVEL% == 0 goto wlan_aus ::WLAN Interface ping -n 1 192.168.4.7 | find /i /c "TTL" >nul if %ERRORLEVEL% == 0 ECHO WLAN-Verbindung ist aktiv if %ERRORLEVEL% == 0 goto check goto wlan_an :wlan_aus ECHO WLAN aus ping -n 1 192.168.4.7 | find /i /c "TTL" >nul if %ERRORLEVEL% == 0 netsh interface set interface W-LAN disabled goto check :wlan_an ECHO WLAN an netsh interface set interface W-LAN enabled goto check
  10. Hallo zusammen, bei uns steht gerade zur Diskussion alle änderungen von Gruppenmitglieschaften im AD zu loggen, damit man sehen kann, welcher User diese Änderung durchgeführt hat. Fileberechtigungen werden über Gruppen zugewiesen. Das ist der Hintergrund. Ist sowas generell möglich und wenn ja, was würde das für die Domain Controller bedeuten? Mehr Last, größeer Logs etc? Hat jmd Erfahrungen damit und hat eion Paar Tips über ? Vielen Dank
  11. ich habe es jetzt über ein gpo eingestellt. jetzt geht es
  12. Wir verwenden natürlich eine Namenskonvention, nur ist das Computerobjekt ja schon erstellt, bevor ich den Server in AD aufnehmen möchte. Bleibt in meinen Augen also nur, dem User die entsprechenden Recht zu geben. Wobie ich nochmal hilfe benötige
  13. Ich kann das Konto zurücksetzen, aber kein Passwort. Ist auch egal, denn das behebt ja nicht das Problem mit den fehlenden Berechtigungen. Denn wenn ich erst das Konto zurücksetzen muss, wenn ich es per Skript erstellt habe, ist das auch umständlich, sofern ich das nicht direkt als letzten Schritt im Skript machen kann
  14. 1. Wie soll ich beim Computerkonot das PW zurücksetzten ? Ein COmputerobjekt hat doch gar kein PW ? 2. Das Computerobjekt war ja deaktiviert, da ich den TEstserver aus der AD genommen habe um die Aufnahme mit dem neu erstellten User zu testen
  15. Die Server landen immer in Unterschiedlichen OUs -> Server : Stanbdort A / Standort B / Standort C Dies wird alles durch ein Powershellscript geregelt. Mein neuer User muss jetzt nur das Recht haben, einen Server mit einem bestehendem AD-COmputerobjekt zu verbinden
  16. wenn ich das objekt lösche, wird es durch den User neu erstellt, aber in der Standard-OU "Computer". Wenn ich die Rechte für die gewünschte OU "Server" bearbeiten möchte, hab ich nur die Möglichkeit zwischen "Computer-Objekt löschen" oder "Computer-Objekt erstellen". Das Recht zum bearbeiten finde ich jetzt nicht wirklich.
  17. Hallo zusammen, ich habe für unsere VMware Umgebung einen User erstellt, der einen Server in die AD aufnhemen soll. Bei uns wird zuerst ein Skript ausgeführt (mit Domain-Admin User), welches die Berechtigungsgruppe sowie das Computerobjekt in der gewünschten OU erstellt. Dann wir das VMware Template ausgerollt wo der o.g. User im Sysprep hinterlegt ist. Ich hab das ganze jetzt einmal getestet, in dem ich einen Test-Server aus der AD entfernt habe (ohne das Computerobjket zu löschen) und ihn nun mit dem neuen User wieder ins AD aufnehmen wollte. Der User hat bisher die Rechte nach folgender Anleitung bekommen: http://prajwaldesai.com/allow-domain-user-to-add-computer-to-domain/ Jetzt bekomme ich bei der versuchten Aufnahme folgende Fehlermeldung: Der Mitgliedschaftsvorgang ist fehlgeschlagen. Mögliche Ursache hierfür könnte sein, dass ein vorhandenes Computerkonto namens "XXX" zuvor mit anderen Anmeldeinformationen erstellt wurde. Verwenden Sie einen anderen Computernamen, oder wenden Sie sich an den Administrator, um sämtliche veralteten in Konflikt stehenden Konten zu entfernen. Fehler: Zugriff verweigert Sie also so aus, dass dem User Rechte fehlen. Jetzt ist die Frage, welches Recht der User benötigt, um das bestehende Conputerobjekt berarbeiten / verwalten zu können. UAC und Firewall sind deaktiviert. Danke und Gruß Kuddel
  18. Habe es jetzt wie folgt gelöst: Aufgabe auswählen: Write-Host Write-Host -ForegroundColor Yellow " +++ Aufgabe wählen +++" Write-Host Write-Host " (1) EX1 freiräumen" Write-Host " (2) EX2 freiräumen" Write-Host " (3) Datenbanken verteilen" Write-Host Write-Host " (0) Abbrechen" Write-Host Write-Host "Eingabe: " -ForegroundColor Yellow -NoNewline $aufgabe = Read-Host if($aufgabe -eq 0) {break} Check auf welchem Server die DB liegt und dann falls nötigt der Move Befehl if ($aufgabe -eq 1) { #DB-AB $db_ab = Get-Mailboxdatabase -Identity DB-AB $db_ab_server = $db_ab.server if($db_ab_server -ne "EX2") {Move-ActiveMailboxDatabase DB-AB -ActivateOnServer EX2} ... }
  19. Moin Nils, danke für die Antwort. Den Ansatz, den ganzen Server leer zu räumen, habe ich gar nicht so bedacht. Muss ich mir mal Gedanken zu machen ;-) Den Maintenance Mode schaue ich mir auch mal an. Vllt. ist das ja auch was für mein Szenario. Danke und Gruß
  20. 1. Ich bin von uns 4 Admins der einzige der die Scripte schreibt 2. Ich arbeite mit Versionsnummern (v.01. etc). Ich habe bisher noch keine Notwendigkeit für ein Repository gesehen Also der Starten per Website funktioniert. Der IE fragt mich jetzt jedes mal, wenn ich auf der Link zur *.lnk Datei klicke, ob ich Speicher, speichern unter oder öffnen möchte. Kann man dem IE irgendwie sagen, dass ich diesen dateityp immer öffnen möchte ? Danke und Gruß
  21. Hallo zusammen, ich bin gerade dabei ein Script zu schreiben um unsere Exchange Mail Datenbanken vom einen auf den anderen Server zu schwenken, wenn man z.B. einen Server booten möchte / muss. Dazu lasse ich mir alle DBs mit inkl. Server anzeigen Get-MailboxDatabase | Select Name, Server | ft Nun kann ich sehen welche DBs ich schwenken muss. Dementsprechen kommt jetzt ein Abfrage welche DBs geschwenkt werden sollen Write-Host -ForegroundColor Yellow "Welche Datenbank soll verschoben werden ?" Write-Host Write-Host " (1) DB-AB" Write-Host " (2) DB-CD" Write-Host " (3) DB-EFG" Write-Host " (4) DB-HIJ" Write-Host " (5) DB-KL" Write-Host " (6) DB-MN" Write-Host " (7) DB-OQPR" Write-Host " (8) DB-S" Write-Host " (9) DB-TUVW" Write-Host "(10) DB-XYZ" Write-Host "(11) DB-PublicFolders" Write-Host Write-Host " (0) Abbrechen" Write-Host Write-Host "Eingabe: " -ForegroundColor Yellow -NoNewline $db_auswahl = Read-Host Jetzt würde ich gerne irgendwie den aktiven Server auslesen und somit automatisch den andren Server im Movebefehl eintragen, sodass ich nicht jedes mal den Zielserver angeben muss, sondern dieser automatisch gesetzt wird. Leider hab ich ich bisher noch keine Idee, wie ich das mache. if (db_auswahl -eq 1) { Move-ActiveMailboxDatabase DB-AB -ActivateOnServer $zielserver Get-mailboxDatabase -Identity "DB-AB" | Select Name, Server } Kann man irgendwie, nachdem man eine DB verschoben hat, wieder zum Anfang springen, oder muss ich jedes Mal das Script neu starten ? Danke schoneinmal
  22. Super, auf die Idee bin ich gar nicht gekommen. Reicht für meine Zweke auf jeden Fall aus
  23. Hallo zusammen, für die Userverwaltung (Erstellen, Deaktivieren etc) in unserem AD, habe ich mir einige Powershell-Scripte geschrieben, die ich im Moment über einzelne Verknüpfungen auf meinem Desktop per Doppelklick starte. Ich möchte mir nun irgendwie eine Übersicht erstellen, wo alle Scripts aufgeführt sind und von dort aus gestartet werden können. Am einfachsten wäre eine HTML Seite mit Links zu den Scripts. Hat jmd. Erfahrungen mit solch Übersichten ? Bin für jeden Idee offen. Danke schon einmal
  24. 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
  25. Das sieht genau dnach dem aus, was ich gesucht habe. Super Danke
×
×
  • Neu erstellen...