Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Remote-Ordner löschen

Frage Entwicklung VB for Applications

Mitglied: Borber

Borber (Level 1) - Jetzt verbinden

15.01.2010, aktualisiert 17:36 Uhr, 2424 Aufrufe, 4 Kommentare

Hallo,

ich habe mir ein Script gebastelt, das mir die lokalen Profile aller User bis auf die Administratoren, Default-Profile und das des eingeloggten Users löschen soll
Das Script scheint zu funktionieren, jedoch nicht bei jedem Profil
Es überspringt sehr oft den Ordner "Temporary Internet Files", da hier für das VB-Script unlöschbare Dateien liegen.

Wenn ich allerdings per einfacher .bat-Datei mittels

01.
 rd /S /Q "\\%Rechner%\c$\Dokumente und Einstellungen\%usrlogin%" 
lösche, geht das ohne Probleme


Hier ein Auszug aus meinem VB-Script:

01.
... 
02.
    If WMIping( Rechner ) = "OK" Then 'Rechner eingeschaltet?? 
03.
     
04.
    Set objFSO = CreateObject("Scripting.FileSystemObject")  
05.
    Set objFolder = objFSO.GetFolder("\\" & Rechner & "\\c$" & "\\Dokumente und Einstellungen")  
06.
 
07.
'eingeloggter username auslesen 
08.
    Set objWMIService = GetObject("winmgmts:\\" & Rechner & "\root\CIMV2") 
09.
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _ 
10.
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly) 
11.
            
12.
'username bereinigen                               
13.
        For Each objItem In colItems 
14.
          strUser = Right(objItem.Username,Len("SysTor\")) 
15.
        Next 
16.
 
17.
 For Each Profile In objFolder.SubFolders  
18.
          Select Case (Profile.Name) 'Problem mit LCase() UCase() 
19.
            Case strUser 'username des eingeloggten Benutzers auslassen 
20.
              'msgBox Profile msgbox zu testzwecken 
21.
            Case "Administrator"  
22.
              'msgBox Profile 
23.
            Case "All Users" 
24.
              'msgBox Profile  
25.
            Case "Default User"  
26.
              'msgBox Profile 
27.
            Case "LocalService" 
28.
              'msgBox Profile   
29.
            Case "NetworkService"  
30.
              'msgBox Profile 
31.
            Case Else  
32.
              objfso.DeleteFolder Profile.Path, True 'true für die direkte Löschung 
33.
          End Select  
34.
      Next  
35.
          OutputFile.WriteLine("Rechner: " & Rechner & " bearbeitet." & vbrLF)     
36.
....
Mitglied: 45877
15.01.2010 um 13:22 Uhr
Bitte warten ..
Mitglied: Borber
15.01.2010 um 13:41 Uhr
ja,

aber es soll direkt aus dem Script gelöscht werden ohne die Verwendung von delprof.
Geht mir auch mehr um die Lösung, warum aus dem Script die Ordner nicht gelöscht werden können, vom DOS-Prompt her schon.
Bitte warten ..
Mitglied: 60730
15.01.2010 um 16:09 Uhr
Servus,

wie Chewie schon schrieb...

btw: so ganz für garnix schreiben nicht mal die Redmonter Praktikanten eine extra Software für etwas, dasm man "auch" mit del / Rd lösen könnte.

Wer Profile per Hand im Explorer löscht / oder ein Script benutzt - dass das gleiche macht - darf das gerne tun - aber hier keine Hilfe erwarten.

  • Und da delprof eh ein Werkzeug ist, das per command-line gesteuert wird....
  • wohl keiner dein halben Scriptschnippsel ausprobieren wird - um das Problem zu erkennen...Dazu sollte es schon komplett und in Code Tags stehen

Wirst du wohl mit der Aussage leben müssen.


Gruß
Bitte warten ..
Mitglied: Borber
15.01.2010 um 17:33 Uhr
es geht mir wie oben gesagt eigentlich nur darum, warum das

.DeleteFolder

nicht die gleichen "Rechte" wie das RD in einer DOS-Box hat bzw. wie man das trotzdem machen kann, ohne auf delprof/DOS u.a. ausweichen zu müssen.


hier mal das ganze script (inklusive der Ausweichmthode über ein DOS-Prompt und das .DeleteFolder aus-remarked)
Von einer Rechner.txt liest er die Remote-Rechnernamen ein.

01.
On Error Resume Next 
02.
 
03.
Dim objFSO, objWSHShell, objRechnerliste, strRechner, arrRechner, strUser 
04.
Dim Rechner, Rechnerstatus, OutputFile 
05.
 
06.
Const ForReading   = 1 
07.
Const ForWriting   = 2 
08.
Const ForAppending = 8 
09.
Const Rechnerliste = "Rechner.txt" 
10.
Const Loeschliste  = "Loesch.txt" 
11.
Const wbemFlagReturnImmediately = &h10  
12.
Const wbemFlagForwardOnly = &h20 
13.
 
14.
Set objFSO      = CreateObject("Scripting.FileSystemObject") 
15.
Set objWSHShell = WScript.CreateObject("WScript.Shell") 
16.
 
17.
'     Datei existiert?, ja, also löschen - verwendung kommt später 
18.
If  objFSO.FileExists(objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), Loeschliste)) Then 
19.
      objFSO.deleteFile (Loeschliste) 
20.
End if 
21.
 
22.
If not objFSO.FileExists(objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), Rechnerliste)) Then 
23.
    MsgBox "Rechnerliste fehlt!",64, WScript.ScriptName 
24.
Else 
25.
    Set objRechnerliste   = objFSO.OpenTextFile(objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), Rechnerliste), ForReading) 
26.
    strRechner = objRechnerliste.ReadAll 
27.
    objRechnerliste.Close 
28.
End If 
29.
 
30.
strRechner = Replace(strRechner, chr(13), "") 
31.
arrRechner = Split(strRechner, vblf) 
32.
 
33.
set OutputFile = objFSO.OpenTextFile(objFSO.BuildPath(objFSO.GetParentFolderName(WScript.ScriptFullName), Loeschliste), ForWriting, true) 
34.
 
35.
For Each Rechner in arrRechner 
36.
    If WMIping( Rechner ) = "OK" Then 
37.
     
38.
    Set objFSO = CreateObject("Scripting.FileSystemObject")  
39.
    Set objFolder = objFSO.GetFolder("\\" & Rechner & "\\c$" & "\\Dokumente und Einstellungen")  
40.
 
41.
    Set objWMIService = GetObject("winmgmts:\\" & Rechner & "\root\CIMV2") 
42.
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", _ 
43.
                                          wbemFlagReturnImmediately + wbemFlagForwardOnly) 
44.
                                           
45.
        For Each objItem In colItems 'Änderungswürdig.. 
46.
          strUser = Right(objItem.Username,Len("Systor\")) 
47.
        Next 
48.
 
49.
DQ = """" 
50.
                                          
51.
      For Each Profile In objFolder.SubFolders  
52.
          Select Case (Profile.Name) 'Problem mit LCase() UCase() 
53.
            Case strUser 'username des eingeloggten Benutzers auslassen 
54.
              'msgBox Profile 
55.
            Case "Administrator"  
56.
              'msgBox Profile 
57.
            Case "All Users" 
58.
              'msgBox Profile  
59.
            Case "Default User"  
60.
              'msgBox Profile 
61.
            Case "LocalService" 
62.
              'msgBox Profile   
63.
            Case "NetworkService"  
64.
              'msgBox Profile 
65.
            Case Else  
66.
              'objfso.DeleteFolder Profile.Path, True ' geht leider nicht immer.. aus-remarked 
67.
 
68.
              objWSHShell.run "cmd /C RD /S /Q " & DQ & Profile.Path & DQ    'geht, will aber keine dos-prompt bzw. externes Programm 
69.
          End Select  
70.
      Next  
71.
          OutputFile.WriteLine("Rechner: " & Rechner & " bearbeitet." & vbrLF)         
72.
    Else 
73.
        'do nothing while Remote-PC is offline 
74.
        OutputFile.WriteLine("Rechner: " & Rechner & " ist offline." & vbrLF) 
75.
    End If 
76.
 
77.
Next 
78.
 
79.
 
80.
OutputFile.Close 
81.
 
82.
objWSHShell.run ("Loesch.txt"),1,true 
83.
 
84.
'Freigaben 
85.
Set objWSHShell = Nothing 
86.
Set objFSO = Nothing 
87.
Set objFolder = Nothing 
88.
 
89.
'************************************************************** 
90.
Function WMIping( PCName ) 
91.
'************************************************************** 
92.
Dim objPing, objStatus 
93.
            WMIping = "OK" 
94.
    Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address = '" & PCName & "'") 
95.
    For Each objStatus in objPing 
96.
        If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then 
97.
            WMIping = "-OK" 
98.
        End If 
99.
    Next 
100.
End Function 
101.
 
102.
 
Bitte warten ..
Ähnliche Inhalte
Windows Systemdateien
Ordner Windows.old löschen
Beitrag von 10 Kommentare

Frage von Drummer11 zum Thema Windows Systemdateien

Batch & Shell
Powershell - über ACL einen Benutzer für einen Ordner herausfinden und Ordner löschen
Beitrag von 2 Kommentare

Frage von TheMaDimon zum Thema Batch & Shell

Batch & Shell
Powershell Remote Desktop Manager Session löschen
Beitrag von 1 Kommentar

Frage von blackhawk17 zum Thema Batch & Shell

Windows 8
Ordner mit Unterordner löschen od. verschieben, keine Berechtigung
Beitrag von 6 Kommentare

Frage von Joerg76 zum Thema Windows 8

Neue Wissensbeiträge
Vmware

VMware Desktopprodukte sind verwundbar

Beitrag von

Information von Penny.Cilin zum Thema Vmware

Datenschutz

Session-Replay: Viele beliebte Webseiten zeichnen jegliche Texteingabe auf

Beitrag von

Information von Penny.Cilin zum Thema Datenschutz

Sicherheit

Zufällige Speicherzuweisung: Windows-Bug hebelt Sicherheitsmechanismus ASLR aus

Beitrag von

Information von Penny.Cilin zum Thema Sicherheit

Multimedia

Raspberry Pi als Digital-Signage-Computer

Beitrag von 1 Kommentar

Information von BassFishFox zum Thema Multimedia

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Beitrag von 24 Kommentare

Frage von ahstax zum Thema Visual Studio

Windows Server
RDP macht Server schneller???
Beitrag von 16 Kommentare

Frage von JaniDJ zum Thema Windows Server

Windows Netzwerk
Netzwerk Neustrukturierung
Beitrag von 16 Kommentare

Frage von IT-Dreamer zum Thema Windows Netzwerk

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Beitrag von 15 Kommentare

Frage von Akcent zum Thema Windows 10