VB Skript Löschen von Ordner funktioniert nicht
Servus zusammen !
ich versuche schon seit einiger Zeit, ein Skript zu schreiben, welches mir bestimmte User Profil Ordner lokal auf dem PC löscht.
Das ganze habe ich im Visual Studio gemacht, um später eine .exe graf. Anwendung nutzen zu können.
Wenn ich die Ordner mit meinen momentanen Berechtigungen (lokaler Administrator) per Hand lösche klappt das ohne Probleme. (also sollten die Berechtigungen ausreichend sein)
Mit meinem Skript meckert er rum, dass die Berechtigung nicht ausreicht ^^ Hier habe ich schon in verschiedenen Foren gesucht und getestet, aber über diese Hürde komme ich nicht hinweg:
Vllt. könnnt ihr mir helfen:
-- Das Skript prüft die Namen im Case, diese Profilordner sollen nicht gelöscht werden, die übrigen schon( in meinem Fall das Profil Test4) --
bei Ausführung der exe kommt ebenfalls Zugriff verweigert:
Ich dachte, dass "System.IO.Directory.Delete(pfad & ci.Name, True)" dies übersteuern kann ...
Vielen Dank schon mal...
ich versuche schon seit einiger Zeit, ein Skript zu schreiben, welches mir bestimmte User Profil Ordner lokal auf dem PC löscht.
Das ganze habe ich im Visual Studio gemacht, um später eine .exe graf. Anwendung nutzen zu können.
Wenn ich die Ordner mit meinen momentanen Berechtigungen (lokaler Administrator) per Hand lösche klappt das ohne Probleme. (also sollten die Berechtigungen ausreichend sein)
Mit meinem Skript meckert er rum, dass die Berechtigung nicht ausreicht ^^ Hier habe ich schon in verschiedenen Foren gesucht und getestet, aber über diese Hürde komme ich nicht hinweg:
Vllt. könnnt ihr mir helfen:
-- Das Skript prüft die Namen im Case, diese Profilordner sollen nicht gelöscht werden, die übrigen schon( in meinem Fall das Profil Test4) --
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click ' Profile löschen
ListView1.Items.Clear()
Label3.Text = ""
pfad = "C:\users\"
Timer1.Start()
For Each ci As System.IO.DirectoryInfo In New System.IO.DirectoryInfo(pfad).GetDirectories()
ProgressBar1.Value = 2
secure = False
Select Case ci.Name
Case "All Users"
secure = True
Case "Default"
secure = True
Case "Default User"
secure = True
Case "Öffentlich"
secure = True
Case "Public"
secure = True
Case "LocalService"
secure = True
Case "NetworkService"
secure = True
Case "Administrator"
secure = True
Case "rwi"
secure = True
Case "admin"
secure = True
Case "Test1"
secure = True
Case "Test2"
secure = True
Case "Test3"
secure = True
Case Else
secure = False
End Select
With ListView1.Items
Dim item As ListViewItem
item = .Add(ci.Name)
If secure = False Then item.SubItems.Add(TextBox1.Text) Else item.SubItems.Add(TextBox4.Text)
End With
If secure = False Then
System.IO.Directory.Delete(pfad & ci.Name, True)
End If
Next
ProgressBar1.Value = 100
Label3.Text = "Vorgang erfolgreich abgeschlossen"
End Sub
bei Ausführung der exe kommt ebenfalls Zugriff verweigert:
Ich dachte, dass "System.IO.Directory.Delete(pfad & ci.Name, True)" dies übersteuern kann ...
Vielen Dank schon mal...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 373010
Url: https://administrator.de/forum/vb-skript-loeschen-von-ordner-funktioniert-nicht-373010.html
Ausgedruckt am: 15.05.2025 um 20:05 Uhr
4 Kommentare
Neuester Kommentar

Ist doch wie immer, erst mit Takeown den Ordner in Besitz nehmen und dann FULL Access ACLs drüber bügeln, oder mit Robocopy im Backup-Mode einen leeren Dummy-Ordner per /MIR auf den Ordner kippen, fertig!!
Auch wen du Admin bist, über die ACLs kannst du dich nicht einfach so hinwegsetzen. Also Besitz übernehmen und Zugriff ACLs setzen oder eben Robocopy den Vorgang für dich übernehmen lassen.
Einfachste Grundlagen von Windows ACLs.
Auch wen du Admin bist, über die ACLs kannst du dich nicht einfach so hinwegsetzen. Also Besitz übernehmen und Zugriff ACLs setzen oder eben Robocopy den Vorgang für dich übernehmen lassen.
Einfachste Grundlagen von Windows ACLs.
dann leg das mal bei Seite und fange an, die mit Suchmaschinen zu beschäftigen:
https://support.microsoft.com/de-de/help/318744/how-to-use-visual-basic- ...
https://support.microsoft.com/de-de/help/318744/how-to-use-visual-basic- ...

Oder eben per Process.Start takown und icacls ansprechen, fertig.