[XP] Oude profiles wissen van PCs*

Pagina: 1
Acties:

  • weppe
  • Registratie: Maart 2002
  • Niet online
Misschien is de oplossing wel heel simpel maar het lukt me niet en ik kan er ook niets over vinden.

Ik wil met behulp van een dos commando mappen (inclusief bestanden) verwijderen met een punt erin. Dit zijn mappen van gebruikersnamen.

De map documents and settings zit bijvoorbeeld gevuld met de volgende mappen

All Users
Default User
user.een
user.twee
user.drie

Nu moeten alleen de mappen verwijderd worden met een punt erin. (user.een, user.twee, enz).
Heb al geprobeerd met hetvolgende commando:

del /S /A /Q C:\Docume~1\*.* -"All Users" -"Default User"

Dit betekend dat alle bestanden verwijderd worden behalve "All Users" en "Default User"
Werkt verder prima, maar hij verwijderd alleen de bestanden in de mappen, dus hij laat de mappen zelf staan. Resultaat is dus een rij met alleen maar lege mappen.

Nu zou ik er nog het commando "RD" (remove directory) er achteraan kunnen zetten maar hier is het niet mogelijk om uitzonderingen mee te geven, bijvoorbeeld -"All Users". Resultaat is dus dat alle mappen verwijderd worden wat natuurlijk niet de bedoeling is.

Iemand een idee op welke manier dit wel mogelijk is?

  • utbone
  • Registratie: September 2002
  • Laatst online: 20:49
deltree is het juiste commando

U heeft de melk horen klotsen maar weet niet waar de tepel hangt


  • ReallyStupidGuy
  • Registratie: Januari 2002
  • Laatst online: 27-03 13:41
Ik zat te denken aan deltree maar zie in de dosbox dat die niet meer wordt ondersteund. Misschien kun je deltree nog ergens downloaden?

Duizend wijzen kunnen meer vragen stellen dan één idioot kan beantwoorden.


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 23:37

The Eagle

I wear my sunglasses at night

^^ Met stom :) Wel zorgen dat je op het goede niveau zit ;)

OK, deltree gaat dus niet meer lukken. Dan maar een batchbestand, zoiets als:
code:
1
2
3
@echo Verwijder.cmd
del /s %1
rd %1


Ook zou je kunnen werken met een input-bestand, dan krijg je zoiets als
code:
1
verwijder <input.txt

Waarbij het inputbestand de gebruikersnamen bevat die weg moeten :Y)

[ Voor 26% gewijzigd door The Eagle op 20-07-2005 10:53 ]

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • Krypt
  • Registratie: April 2000
  • Laatst online: 12-02 20:18
Of in 1 regel
code:
1
for /d %x in (*.*) do for /f "delims=. tokens=1,*" %y in ("%x") do if not "%z"=="" rd "%x" /s /Q


Even uitleg erbij..

For /d %x in (*.*) do = Een for lus voor alle directories op te vragen in de huidige directory
For /f "delims=. tokens=1,*" %y in ("%%x") do = Aangezien de /D geen delims/tokens zooi kent dan maar in een extra for lusje. De lus zoekt uit elke opgevraagde directory de punt op en plaatst alles voor de punt in variable %y en alles na de punt in variable %z
If not "%z"=="" rd %x /s /Q = Als na de punt wel iets staat (als er dus bijv geen punt in staat dan is %z leeg) de hele directory en subdirs verwijderen.

Edit:
Wilke: Als hij met del al exceptions kan aangeven dan is dit W2k,XP of W2k3Server (NT4 zou ook nog kunnen)

[ Voor 128% gewijzigd door Krypt op 20-07-2005 11:01 ]

Pvouput live


  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:49
Over welk OS hebben we het hier uberhaupt?

  • weppe
  • Registratie: Maart 2002
  • Niet online
We hebben het hier over windows XP. Deltree wordt inderdaad niet ondersteunt, en het is ook geen oplossing om het ergens te downloaden want het moet op verschillende werkstations uitgevoerd worden.

  • JorisPenders
  • Registratie: April 2004
  • Laatst online: 23-03 20:57

JorisPenders

Designer & Coder

Kun je niet gewoon even een windows 98 opstartdiskette erin doen?
Dan heb je wel de command deltree ;-)

SystemSpecs -- WebArea - Your Online Home -- Webdesign


  • weppe
  • Registratie: Maart 2002
  • Niet online
Krypt schreef op woensdag 20 juli 2005 @ 10:54:
Of in 1 regel
code:
1
for /d %x in (*.*) do for /f "delims=. tokens=1,*" %y in ("%x") do if not "%z"=="" rd "%x" /s /Q


Even uitleg erbij..

For /d %x in (*.*) do = Een for lus voor alle directories op te vragen in de huidige directory
For /f "delims=. tokens=1,*" %y in ("%%x") do = Aangezien de /D geen delims/tokens zooi kent dan maar in een extra for lusje. De lus zoekt uit elke opgevraagde directory de punt op en plaatst alles voor de punt in variable %y en alles na de punt in variable %z
If not "%z"=="" rd %x /s /Q = Als na de punt wel iets staat (als er dus bijv geen punt in staat dan is %z leeg) de hele directory en subdirs verwijderen.

Edit:
Wilke: Als hij met del al exceptions kan aangeven dan is dit W2k,XP of W2k3Server (NT4 zou ook nog kunnen)
En dat kan gewoon in DOS?

  • Krypt
  • Registratie: April 2000
  • Laatst online: 12-02 20:18
Je zit toch in een command prompt van XP?? dan is het antwoord "ja", dat kan.. en als je het in een batchfile wilt proppen dan moet je wel even alle % variables een extra procentje geven..
dus %%x, %%y en %%z ipv %x,%y en %z.

Maar je kunt het ook in VBS doen; misschien wat mooier dan dat batch gepriegel.

code:
1
2
3
4
5
6
7
8
9
10
strFolder = "."
Set objFso = Wscript.CreateObject("Scripting.FileSystemObject")
Set objFolders = objFso.GetFolder(strFolder)

Set colFolders = objFolders.Subfolders
For each objFolder in colFolders
 If Instr ( lcase(objFolder.Name) ,".") then
   objFso.DeleteFolder objFolder.Path,True
 End If
Next


Even in notepad gooien en save als DelDirectoryWithDot.vbs oid. De strFolder = "." geeft nu aan dat het de default directory is (vanwaar de vbs wordt opgestart) maar die kun je dus ook verwijzen naar C:\Docume~1 in jou geval.

[ Voor 5% gewijzigd door Krypt op 20-07-2005 11:19 ]

Pvouput live


  • weppe
  • Registratie: Maart 2002
  • Niet online
Krypt schreef op woensdag 20 juli 2005 @ 11:19:
Je zit toch in een command prompt van XP?? dan is het antwoord "ja", dat kan.. en als je het in een batchfile wilt proppen dan moet je wel even alle % variables een extra procentje geven..
dus %%x, %%y en %%z ipv %x,%y en %z.

Maar je kunt het ook in VBS doen; misschien wat mooier dan dat batch gepriegel.

code:
1
2
3
4
5
6
7
8
9
10
strFolder = "."
Set objFso = Wscript.CreateObject("Scripting.FileSystemObject")
Set objFolders = objFso.GetFolder(strFolder)

Set colFolders = objFolders.Subfolders
For each objFolder in colFolders
 If Instr ( lcase(objFolder.Name) ,".") then
   objFso.DeleteFolder objFolder.Path,True
 End If
Next


Even in notepad gooien en save als DelDirectoryWithDot.vbs oid. De strFolder = "." geeft nu aan dat het de default directory is (vanwaar de vbs wordt opgestart) maar die kun je dus ook verwijzen naar C:\Docume~1 in jou geval.
YES! Thanks, die werkt perfect. Ik heb er nog even een "On error resume next" boven gezet zodat hij altijd door gaat (mocht een bestand niet verwijderd kunnen worden).


Ter info:
Dit script gaat toegepast worden op een groot callcenter waar medewerkers geen vaste werkplek hebben. Dit betekend dat iedereen op elke pc wel een keer heeft ingelogd. Er komen zoveel lokale profielen op te staan dat op een gegeven moment de C-schijf vol zit. En dan kunnen gebruikers niet meer inloggen. Dit script zet ik een group policy dat bij uitschakelen van de PC geladen wordt.

  • Krypt
  • Registratie: April 2000
  • Laatst online: 12-02 20:18
Hmm. Groot callcenter.. krijg ik nu een bonus? Waar kan ik mijn rekening nummer dumpen :P :D

Pvouput live


  • weppe
  • Registratie: Maart 2002
  • Niet online
Krypt schreef op woensdag 20 juli 2005 @ 11:57:
Hmm. Groot callcenter.. krijg ik nu een bonus? Waar kan ik mijn rekening nummer dumpen :P :D
Zo groot is het nu ook weer niet :P

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

weppe schreef op woensdag 20 juli 2005 @ 11:52:
Dit script gaat toegepast worden op een groot callcenter waar medewerkers geen vaste werkplek hebben. Dit betekend dat iedereen op elke pc wel een keer heeft ingelogd. Er komen zoveel lokale profielen op te staan dat op een gegeven moment de C-schijf vol zit. En dan kunnen gebruikers niet meer inloggen. Dit script zet ik een group policy dat bij uitschakelen van de PC geladen wordt.
Dit is een grapje hoop ik?

Windows heeft hier gewoon functies voor ingebakken (google eens op DeleteRoamingCache - er zitten ook GPO's in Windows), bovendien vergeet je even mooi dat je je HKLM niet update.

Ik mag hopen dat je dit niet beheert in een productie omgeving?

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

knip.

[ Voor 94% gewijzigd door elevator op 20-07-2005 12:06 ]


  • weppe
  • Registratie: Maart 2002
  • Niet online
elevator schreef op woensdag 20 juli 2005 @ 12:05:
[...]

Dit is een grapje hoop ik?

Windows heeft hier gewoon functies voor ingebakken (google eens op DeleteRoamingCache - er zitten ook GPO's in Windows), bovendien vergeet je even mooi dat je je HKLM niet update.

Ik mag hopen dat je dit niet beheert in een productie omgeving?
Nee het is geen productie omgeving.

Maar het moet toegepast worden op computers waar al heel veel profielen staan (ook nog oude van gebruikers die al lang niet meer in dienst zijn)

[ Voor 24% gewijzigd door weppe op 20-07-2005 12:09 ]


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

weppe schreef op woensdag 20 juli 2005 @ 12:07:
Had dat ff eerder gezegd, zoveel verstand heb ik er nu ook weer niet van. En nee het is geen productie omgeving.
Je geeft niet eerder je doel aan - je geeft enkel aan hoe je iets wil bereiken, bovendien post je het in een niet-Windows forum dus wat verwacht je? ;)
Bovendien moet het toegepast worden op computers waar al heel veel profielen staan (ook nog oude van gebruikers die al lang niet meer in dienst zijn)
Daar heb je o.a. 'delprof' voor :)

  • Muppet
  • Registratie: Maart 2001
  • Laatst online: 10-09-2024

Muppet

GT: Beestig

weppe schreef op woensdag 20 juli 2005 @ 11:52:
[...]


YES! Thanks, die werkt perfect. Ik heb er nog even een "On error resume next" boven gezet zodat hij altijd door gaat (mocht een bestand niet verwijderd kunnen worden).


Ter info:
Dit script gaat toegepast worden op een groot callcenter waar medewerkers geen vaste werkplek hebben. Dit betekend dat iedereen op elke pc wel een keer heeft ingelogd. Er komen zoveel lokale profielen op te staan dat op een gegeven moment de C-schijf vol zit. En dan kunnen gebruikers niet meer inloggen. Dit script zet ik een group policy dat bij uitschakelen van de PC geladen wordt.
Lol dan zou ik het even anders doen als ik jou was :D

Laat in het inlog of aflog script een commando starten met het tooltje delprof. Delprof.exe is een tooltje wat locale profielen weghaalt. Werkt even netter als dat vbs scriptje.

http://www.microsoft.com/...63-4462-8150-360394E98E1E

There is no art to find the minds construction in the face


  • weppe
  • Registratie: Maart 2002
  • Niet online
Hm dat werkt inderdaad ook wel fijn :)

Ik had het in non-windows gezet omdat ik op zoek was naar een dos-commando maar ik had mijn probleem beter direct goed kunnen beschrijven.

[ Voor 21% gewijzigd door weppe op 20-07-2005 12:41 ]


  • Demo
  • Registratie: Juni 2000
  • Laatst online: 25-03 14:32

Demo

Probleemschietende Tovenaar

weppe schreef op woensdag 20 juli 2005 @ 12:35:
Hm dat werkt inderdaad ook wel fijn :)

Ik had het in non-windows gezet omdat ik op zoek was naar een dos-commando maar ik had mijn probleem beter direct goed kunnen beschrijven.
XP Command prompt != MS-DOS.. wanneer leren mensen dat nou eens :/ Als ik met PuTTY op mijn BSD-server zit roepen mensen ook meteen 'Wat zit je nou met DOS te doen?' |:(

[ Voor 13% gewijzigd door Demo op 20-07-2005 13:15 ]

Unix doesn't prevent a user from doing stupid things, because that would necessarily prevent them from doing brilliant things.
while true ; do echo -n "bla" ; sleep 1 ; done


  • Wilke
  • Registratie: December 2000
  • Laatst online: 22:49
Demoniac zegt het al, en dit was ook inderdaad de reden dat ik vroeg over welk OS we het eigenlijk hadden.

De Windows XP command line interface is iets compleet anders dan DOS, het een heeft zelfs vrijwel niets met het ander te maken. Aangezien "scripting onder Windows XP" tegenwoordig echt vrij weinig meer met NOS te maken heeft, zetten we topics erover dan ook in WOS - dit is inderdaad anders geweest vroeger :)

Overigens kan ik me niet aan de indruk onttrekken dat dit wel erg triviaal is om zelf uit te vinden, maar dat mogen ze in WOS zelf beslissen - ik snap in ieder geval het probleem met die profiles nu, maar zoals Elevator al zegt *denk* ik dat daar betere oplossingen voor bestaan ;)
DJ_Jorizzz schreef op woensdag 20 juli 2005 @ 11:11:
Kun je niet gewoon even een windows 98 opstartdiskette erin doen?
Dan heb je wel de command deltree ;-)
1 woord: NTFS ;)

[ Voor 23% gewijzigd door Wilke op 20-07-2005 13:48 ]


Verwijderd

Nu dit toch in de richting gaat van batch/vbs, knip knip

Modbreak:Wat is dit dan, je eigen compleet ongerelateerde draad promoten in die van iemand anders?
Hopelijk hoef ik niet uitgebreid toe te lichten waarom dat ongewenst is....

[ Voor 63% gewijzigd door Wilke op 20-07-2005 13:58 ]


  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
Demoniac schreef op woensdag 20 juli 2005 @ 13:14:
[...]

XP Command prompt != MS-DOS.. wanneer leren mensen dat nou eens :/ Als ik met PuTTY op mijn BSD-server zit roepen mensen ook meteen 'Wat zit je nou met DOS te doen?' |:(
Nee dat ding is een emulator die heel veel dos-functies emuleert in Windows NT.

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters


  • Nielson
  • Registratie: Juni 2001
  • Laatst online: 19:23
Dit zou moeten werken in een batchfile, kan het alleen even niet op m'n eigen systeem testen :) :

code:
1
FOR /D %%D IN (C:\Documents and Settings\*) DO IF NOT "%%D"=="C:\Documents and Settings\All Users" IF NOT "%%D"=="C:\Documents and Settings\Default User" RD /S /Q "%%D"
Pagina: 1