Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Power Shell "Benutzerleichen" finden

Empfohlene Antworten

Veröffentlicht

Hallo Ihr

ich sitze gerade kopfzerbrechend an eine Aufgabe.

Zugegebenermaßen stehe ich glaube ich auch etwas auf dem Schlauch.

Folgende Situation:

In unserem Betrieb hat ein AD-Benutzer zwei Servergespeicherte Ordner.

Einen Ordner als Folderredirection (Eigene Dateien und Desktop)

und einen Ordner um alles andere vom Profil zu speichern.

Folglich steht der Benutzer "Marius" sowol in der AD als auch als Ordner auf 2 verschiedenen Servern

Beim löschen eines Benutzers müssen also auch die 2 Ordner gelöscht werden.

Ich möchte nun mit einem Powershell-Script herausfinden welche Benutzer diese Voraussetzungen nicht mehr erfüllen.

(Benutzer in AD vorhanden aber keine Ordner mehr, oder Ordner noch vorhanden aber nicht mehr in der AD angelegt)

Mit


$auslesen= get-aduser -filter {name -like "*"} 

$benutzer= $auslesen | ForEach-Object {$_.Samaccountname}

lasse ich mir die Benutzernamen der vorhandenen AD-Benutzer anzeigen Mit
get-childitem -r -filter $_benutzer -path PFAD

prüfe ich ob der Ordner auch tatsächlich auf dem Pfad liegt. (Da kann ich ja die ausgabe Verarbeiten)

Allerdings fehlt mir gerade irgendwie der Hirnschmalz das ganze zusammen zu bringen.

Anfangs würde das reichen:

Wenn Benutzer in AD und als Ordner -> Dann nichts

Wenn Benutzer in AD aber nicht als Ordner -> Dann in ne .txt schreiben

Für Hilfe wäre ich dankbar, verkrieche mich aber auch nochmal um weiter zu denken :old

  • Autor

Habe meinen Denkfehler gefunden, danke :) $benutzer ist ja automatisch ein Array das ich durchlaufen kann.

Mein Code sieht jetzt so aus (Pfade sind vereinfacht)

import-module ActiveDirectory

$date = get-date -uformat "%y%m%d l %H%M%S"

$logfilename = "logfile_$date.txt"

$auslesen= get-aduser -filter {name -like "*"}

$benutzer= $auslesen | ForEach-Object {$_.Samaccountname}

##Start Ordnerüberprüfung 1

"Ordner1 fehlt:" | out-file "c:\$logfilename"

"___________________" | out-file "c:\$logfilename" -append

for($i=3; $i -lt $benutzer.length; $i++){

write-host "Prüfe Benutzer" $benutzer[$i]

if (((get-childitem -r -filter $benutzer[$i] -path d:\) -notlike "?*") -and ((get-childitem -r -filter "$benutzer[$i].V2" -path d:\)-notlike "?*"))

{

$benutzer[$i] | out-file "c:\$logfilename" -append

}

else

{

}

}

"___________________" | out-file "c:\$logfilename" -append

"ende" | out-file "c:\$logfilename" -append

##Ende Ordnerüberprüfung 1

Funktioniert auch so weit, außer die Bedingung mit dem .V2

Habe jetzt gesehen dass der Benutzernamen im Array $benutzer mit einem Leerzeichen am Schluss gespeichert wird. Hat einer ne Idee warum? mit -replace bekomm ich das nicht weg. und wenn das bleibt heißt es ja "benutzer .V2" und dass es den nicht gibt is ja logisch.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.