KIX - Löschen von Dateien bei Anmeldung
Hallo zusammen,
wir haben folgendes Szenario:
Für den Zugriff auf eines unserer Systeme wird ein einzigartiges Zertifikat benötigt, welches lokal gespeichert ist.
Beim Anmelden wird das Zertifikat von einer Serverfreigabe nach C:\Users\username\ kopiert.
Soweit alles paletti.
Jetzt hatten wir aber den Fall, dass ein Mitarbeiter seinen Arbeitsplatz (oder viel mehr seinen PC) gewechselt hat und somit auch Zugriff auf das Zertifikat hat, das dem Mitarbeiter gehört, der vor ihm an dem PC angemeldet war.
Da alle Mitarbeiter lokale Admin-Rechte haben, ist es klar, dass sie in die lokalen Benutzerordner von Kollegen Einsicht haben.
Das können wir auch nicht ändern, da aus verschiedenen Gründen jeder Adminrechte braucht.
Nun war meine Idee, das Problem per Batch oder KIX zu lösen.
Meine Idee:
Bei Anmelden sollen alle lokal unter C:\users\ gespeicherten Zertifikate gelöscht werde - außer das Zertfikat des Benutzers, der sich gerade anmeldet.
Ist das überhaupt per KIX bzw. Batch möglich? Falls ja, wie? Ich bin leider total überfragt.
Danke im Voraus!
Gruß Philzip
wir haben folgendes Szenario:
Für den Zugriff auf eines unserer Systeme wird ein einzigartiges Zertifikat benötigt, welches lokal gespeichert ist.
Beim Anmelden wird das Zertifikat von einer Serverfreigabe nach C:\Users\username\ kopiert.
Soweit alles paletti.
Jetzt hatten wir aber den Fall, dass ein Mitarbeiter seinen Arbeitsplatz (oder viel mehr seinen PC) gewechselt hat und somit auch Zugriff auf das Zertifikat hat, das dem Mitarbeiter gehört, der vor ihm an dem PC angemeldet war.
Da alle Mitarbeiter lokale Admin-Rechte haben, ist es klar, dass sie in die lokalen Benutzerordner von Kollegen Einsicht haben.
Das können wir auch nicht ändern, da aus verschiedenen Gründen jeder Adminrechte braucht.
Nun war meine Idee, das Problem per Batch oder KIX zu lösen.
Meine Idee:
Bei Anmelden sollen alle lokal unter C:\users\ gespeicherten Zertifikate gelöscht werde - außer das Zertfikat des Benutzers, der sich gerade anmeldet.
Ist das überhaupt per KIX bzw. Batch möglich? Falls ja, wie? Ich bin leider total überfragt.
Danke im Voraus!
Gruß Philzip
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 281705
Url: https://administrator.de/contentid/281705
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
14 Kommentare
Neuester Kommentar
Moin,
Gruß jodel32
Zitat von @Philzip:
Das können wir auch nicht ändern, da aus verschiedenen Gründen jeder Adminrechte braucht.
Heutzutage eigentlich nicht mehr nötig ... es gibt heutzutage genug Möglichkeiten sowas anders zu lösen. Sicherheitstechnisch ein Gau, denn ein Admin kann auch gelöschte Dateien wiederherstellen...Das können wir auch nicht ändern, da aus verschiedenen Gründen jeder Adminrechte braucht.
Nun war meine Idee, das Problem per Batch oder KIX zu lösen.
Meine Idee:
Bei Anmelden sollen alle lokal unter C:\users\ gespeicherten Zertifikate gelöscht werde - außer das Zertfikat des
Benutzers, der sich gerade anmeldet.
Ist das überhaupt per KIX bzw. Batch möglich? Falls ja, wie? Ich bin leider total überfragt.
Das wäre kein Problem wenn man wüsste welche Erweiterung deine Zertifikate haben (*.crt /*.cer/*.pfx/...), aber wieso gebt Ihr den Mitarbeitern nicht einen USB-Stick oder eine Smartcard worauf das persönlich Cert gespeichert ist, oder gleich im persönlichen Zertifikatsstore oder im AD ?? Das wäre wesentlich sinnvoller, denn solche Zertifikate gehören besonders geschützt und nicht im Dateisystem abgelegt !!Meine Idee:
Bei Anmelden sollen alle lokal unter C:\users\ gespeicherten Zertifikate gelöscht werde - außer das Zertfikat des
Benutzers, der sich gerade anmeldet.
Ist das überhaupt per KIX bzw. Batch möglich? Falls ja, wie? Ich bin leider total überfragt.
Gruß jodel32
Kurzer Powershell-Schnippsel:
Gruß jodel32
gci 'C:\Users\*.pfx' -Recurse -Force | ?{$_.DirectoryName -notlike "*$($env:USERNAME)*"} | remove-item -Force
Ja.
@echo off
for /f "tokens=* delims=" %%a in ('dir /b /s /A-D "C:\Users\*.pfx" ^| findstr /i /v /c:"%userprofile%"') DO del "%%a"
s. mein letztes Kommentar.
mach jetzt Mittag
mach jetzt Mittag
Also,
die for-Schleife durchläuft alle Zeilen der Ausgabe des folgenden Befehls:
Dieser macht nichts anderes als folgendes: Zuerst werden alle *.pfx Dateien aus allen Unterordnern (/s) von c:\Users ohne Ordner (/A-D) im einfachen Dateilisting-Modus von dir (/b) aufgelistet. Diese Ausgabe wird dann mit findstr gefiltert, und zwar wird dabei Groß- und Kleinschreibung ignoriert /i , mit /v wird das ganze umgedreht, also es werden alle Pfade gelistet bei denen nicht der aktuelle Userprofilpfad vorkommt. Das /c: besagt das der Suchstring als eine Einheit zu sehen ist, denn ohne diesen Schalter würde ein Leerzeichen zwei separate Suchstrings daraus machen.
Zu deinem Problem mit der Ausgabe "Datei nicht gefunden" das Habenichts vergessen zu unterdrücken hiermit solltest du dann klar kommen:
die for-Schleife durchläuft alle Zeilen der Ausgabe des folgenden Befehls:
dir /b /s /A-D "C:\Users\*.pfx" ^| findstr /i /v /c:"%userprofile%"
Zu deinem Problem mit der Ausgabe "Datei nicht gefunden" das Habenichts vergessen zu unterdrücken hiermit solltest du dann klar kommen:
@echo off<br />
for /f "tokens=* delims=" %%a in ('dir /b /s /A-D "C:\Users\*.pfx" ^| findstr /i /v /c:"%userprofile%" 2^>nul') DO del "%%a" >nul 2>&1
Ah sorry das c muss hier separat stehen /c:
Klappt hier einwandfrei, siehe bitte die Kommandozeilenparameter für findstr:
http://ss64.com/nt/findstr.html
Dann musst du nicht trial&error betreiben.
Klappt hier einwandfrei, siehe bitte die Kommandozeilenparameter für findstr:
http://ss64.com/nt/findstr.html
Dann musst du nicht trial&error betreiben.