Hoe mappen of bestanden te verwijderen met PowerShell
Wil je bestanden en mappen verwijderen met PowerShell, maar weet je niet hoe? Dit artikel geeft u een stapsgewijze handleiding voor het gebruik van PowerShell om een map, bestand of alle mappen en bestanden in een opgegeven pad te verwijderen.
Deze blogpost leert je verschillende manieren om mappen en bestanden te verwijderen met PowerShell. Als dit interessant klinkt, lees dan verder!
De gids begint met uitleg over 2 manieren om PowerShell te gebruiken om mappen en bestanden te verwijderen. Vervolgens leert u in het tweede gedeelte hoe u veelvoorkomende fouten kunt oplossen die verband houden met het verwijderen van bestanden en mappen met PowerShell.
Ten slotte bevat de gids meer dan 20 voorbeelden.
Blader door berichtonderwerpen
- 2 manieren om map of bestand te verwijderen met PowerShell
- Veelvoorkomende fouten herstellen met Powershell Verwijder map of bestand
- Hoe Powershell te repareren Verwijder map of bestandstoegang geweigerd Fout
- Hoe u de Powershell-verwijdermap kunt repareren, kan niet worden verwijderd omdat deze niet leeg is Fout
- Hoe u Powershell-verwijdermap kunt repareren die wordt gebruikt door een andere procesfout
- Hoe Powershell te repareren Verwijder map of bestandsmap of bestandsnaam te lang Fout
- Hoe Powershell te repareren Verwijder map Toegang tot het pad wordt geweigerd Fout
- Meer Powershell Delete-map- of bestandsvoorbeelden
- Hoe een map of bestand met PowerShell verwijderen als het bestaat?
- Een map en zijn submappen verwijderen met PowerShell
- Een map of bestand ouder dan x dagen (of op basis van datum) verwijderen met PowerShell
- Hoe PowerShell gebruiken om alleen mapinhoud te verwijderen
- Hoe PowerShell gebruiken om map en inhoud te verwijderen zonder bevestiging of prompt?
- Hoe PowerShell gebruiken om een map of bestand naar de Prullenbak te verwijderen?
- Hoe PowerShell gebruiken om een map of bestand te verwijderen en andere mappen of bestanden uit te sluiten?
- Hoe PowerShell gebruiken om een map te verwijderen, zelfs als deze niet leeg is?
- Hoe PowerShell gebruiken om lege mappen ouder dan X dagen te verwijderen
- Hoe PowerShell te gebruiken om de gebruikersprofielmap te verwijderen
- Hoe PowerShell te gebruiken om een map uit Appdata te verwijderen
- Hoe PowerShell te gebruiken om een verborgen map te verwijderen
- Hoe PowerShell te gebruiken om bestanden te verwijderen, maar de mappenstructuur te behouden
- Hoe PowerShell te gebruiken om de registersleutelmap te verwijderen
- Hoe PowerShell te gebruiken om mapnaam te verwijderen Like
- Hoe PowerShell te gebruiken om mappen te verwijderen die groter zijn dan een opgegeven grootte
- Hoe PowerShell te gebruiken om een gedeelde netwerkmap te verwijderen
- Hoe PowerShell te gebruiken om een map of bestand te verwijderen, beginnend met
- Hoe PowerShell te gebruiken om de softwaredistributiemap te verwijderen
- Hoe PowerShell te gebruiken om een bestand of map te verwijderen nadat het is gezipt
- Hoe PowerShell te gebruiken om een bestand of bestand te verwijderen en vervolgens een rapport naar een logbestand te schrijven
2 manieren om map of bestand te verwijderen met PowerShell
PowerShell biedt twee manieren om items te verwijderen. U kunt een map of bestand verwijderen met de PowerShell-verwijdermethode.
Ten tweede kunt u Remove-Item gebruiken om items in PowerShell te verwijderen. In de volgende 2 subsecties van deze sectie leert u hoe u deze methoden kunt gebruiken.
Methode 1: Powershell gebruiken Verwijderen() Methode om een map of bestand te verwijderen
Om PowerShell een map te laten verwijderen, hebt u de Get-ChidItem-cmdlet nodig. Get-ChildItem Cmdlet retourneert de items en onderliggende items op een opgegeven locatie.
Om alle bestanden en mappen in het pad weer te geven E: rapporten , voer de onderstaande opdracht uit:
|__+_|Hier is het resultaat in PowerShell...
Dit commando heeft een methode genaamd Verwijderen . U kunt de Verwijderen Methode om mappen en bestanden te verwijderen.
Om de beschikbare methoden in de bovenstaande opdracht te zien, pijpt u de opdracht naar de Get-Member-cmdlet.
|__+_|De opdracht heeft twee typen Eigenschappen geretourneerd. een , System.IO.DirectoryInfo (zie de eerste afbeelding hieronder). twee , System.IO.FileInfo . De eerste heeft betrekking op mappen in het pad, terwijl de tweede betrekking heeft op bestanden.
Kijk goed naar de twee afbeeldingen. Merk op dat elk van hen een methode heeft genaamd Verwijderen . U kunt de Verwijderen Methode in PowerShell om een map of bestand te verwijderen.
In de volgende subsectie zal ik laten zien hoe te gebruiken Verwijderen Methode.
Hoe te gebruiken Verwijderen () Methode in Powershell om een map of bestand te verwijderen
De syntaxis van de Verwijderen Methode is:
|__+_|Object is de map met bestandsdetails die wordt geretourneerd door de Get-ChidItem-cmdlet. Verder, Verwijderen is de methode die gewoonlijk wordt gevolgd door de operator ().
Om het bovenstaande syntaxiscommando gemakkelijk te begrijpen, is hier het originele Get-ChildItem-commando:
|__+_|en het resultaat...
Op basis van wat ik tot nu toe heb uitgelegd, zou je in theorie de PowerShell-verwijdermethode kunnen gebruiken om de map met de naam rapporten te verwijderen door de onderstaande opdracht uit te voeren:
|__+_|De laatste opdracht retourneert echter het foutbericht De map is niet leeg.
Om dit probleem op te lossen, heb ik een opdracht nodig die alle bestanden en mappen en submappen in het pad retourneert. Dan moet ik het resultaat naar aForEach loop .
ares wizard check log fout
Hier is de gewijzigde opdracht:
|__+_|Hier is de opdracht in PowerShell. Alle bestanden zijn verwijderd uit het opgegeven pad.
De laatste opdracht verwijdert de bestanden in de opgegeven map en de bijbehorende submappen. Het verwijdert de mappen echter niet.
Voer de onderstaande opdracht uit om de mappen te verwijderen:
|__+_|Om dat te bevestigen: E: rapporten nu leeg is, zal ik de opdracht Get-ChildItem opnieuw uitvoeren.
|__+_|Het levert niets op!
Voordat ik verder ga met het volgende gedeelte, wil ik u eerst uitleggen hoe deze opdracht alle bestanden en submappen heeft verwijderd.
|__+_|Get-ChildItem heeft twee parameters genaamd Erbij betrekken en recursief . In de opdracht gebruikte ik -Erbij betrekken *.* om PowerShell te vertellen dat elk bestand in het resultaat moet worden opgenomen.
recursief , aan de andere kant, vertelt Get-ChildItem om alle mappen en submappen te retourneren.
In het tweede deel van de opdracht heb ik Get-ChildItem naar ForEach-statement gepipt. ForEach doorloopt alle objecten die worden geretourneerd door Get-ChildItem en gebruikt de Verwijderen Methode om ze te verwijderen.
Zoals ik al zei toen ik deze sectie introduceerde, heeft PowerShell een cmdlet genaamd Verwijder voorwerp specifiek. U kunt deze PowerShell-cmdlet ook gebruiken om een map of een bestand te verwijderen.
Het volgende gedeelte behandelt het gebruik van Verwijder voorwerp . In mijn ervaring, met behulp van Verwijder voorwerp is beter dan gebruiken Verwijderen() Methode.
Methode 2: Powershell gebruiken Verwijder voorwerp Cmdlet om een map of bestand te verwijderen
Een bestand of map verwijderen met Verwijder voorwerp u moet nog steeds de PowerShell-cmdlet Get-ChildItem gebruiken. Leid het resultaat vervolgens naar Verwijder voorwerp .
Je kan lopen Verwijder voorwerp zonder Get-ChildItem . Echter, uit mijn ervaring, werkt het voor de meeste omstandigheden het beste om het item te vermelden met Get-ChildItem . Leid vervolgens de uitvoer naar Verwijder voorwerp .In mijn eerste voorbeeld in deze sectie wil ik PowerShell gebruiken om de map met de naam ITGServer2 te verwijderen. Zie de schermafbeelding hieronder.
Hier is de PowerShell-opdracht die de map zal verwijderen ...
|__+_|Na het uitvoeren van de bovenstaande opdracht is de map verdwenen!
In mijn tweede voorbeeld wil ik de mappen en submappen in E: eports verwijderen. De onderstaande opdracht zal het werk doen ...
|__+_|Na het uitvoeren van de laatste opdracht zijn alle mappen in de opgegeven map verdwenen!
Veelvoorkomende fouten herstellen met Powershell Verwijder map of bestand
Wanneer u de PowerShell-opdracht Remove-Item uitvoert om een map of bestand te verwijderen, kan dit enkele fouten opleveren. In dit gedeelte worden enkele van die fouten besproken en hoe u ze kunt oplossen.
Ik denk dat het beter is om oplossingen voor deze veelvoorkomende fouten te bespreken voordat we ingaan op enkele real-life sysadmin-voorbeelden van het gebruik van PowerShell om mappen of bestanden te verwijderen.
Hoe Powershell te repareren Verwijder map of bestandstoegang geweigerd Fout
Als u Remove-Item uitvoert om een bestand of map te verwijderen en een foutmelding Toegang geweigerd krijgt, probeert u het volgende:
- Wijzig de eigenaar van het bestand of de map - gebruik de onderstaande codes om de eigenaar van een bestand of map te wijzigen in de lokale beheerder
Om deze opdracht uit te voeren, opent u PowerShell als beheerder, anders mislukt de laatste opdracht.
|__+_| Wijzig het mappad, F:ITGFilesTextfiles in het volledige pad van uw bestand of mapNadat u de eigenaar hebt gewijzigd in de lokale beheerder, probeert u het bestand of de map opnieuw te verwijderen met PowerShell. Als het niet werkt, probeer dan deze oplossingen.
- Voeg de . toe Kracht parameter om item te verwijderen
- Probeer in plaats daarvan de methode Delete() . Als u niet weet hoe u de PowerShell Delete()-methode moet gebruiken, raadpleegt u de sectie Delete()-methode in Powershell gebruiken om een map of bestand te verwijderen (link opent in een ander browsertabblad) van deze handleiding.
Hoe u de Powershell-verwijdermap kunt repareren, kan niet worden verwijderd omdat deze niet leeg is Fout
Als u ontvangt kan niet worden verwijderd omdat het geen lege fout is wanneer u de opdracht uitvoert:
|__+_|Probeer Get-ChildItem te gebruiken met de parameter Recurse. Leid het vervolgens naar Remove-Item met de Kracht en recursief parameters.
Hier is een voorbeeldopdracht:
|__+_|U kunt ook Get-ChildItem uitvoeren en sterretjes opgeven achter de laatste schuine streep in het pad. Hiermee wordt alle inhoud van de map verwijderd.
Als ik bijvoorbeeld de opdracht uitvoer...
|__+_|... en ontvang Kan niet worden verwijderd omdat het niet leeg is, om het probleem op te lossen, voer ik eerst de onderstaande opdracht uit:
|__+_|Het laatste commando verwijdert alleen de items in E: eports. Ten slotte, om de map (die nu leeg is) te verwijderen, voer ik de onderstaande opdracht uit ...
|__+_|Hoe u Powershell-verwijdermap kunt repareren die wordt gebruikt door een andere procesfout
Als Remove-Item het foutbericht retourneert omdat het door een ander proces wordt gebruikt, moet u de parameter Force opnemen.
Hier is het origineel dat de foutmelding terugstuurde...
|__+_|Voer de onderstaande opdracht uit voor een bestand om dit probleem op te lossen:
|__+_|De laatste opdracht heeft het bestand met succes verwijderd ...
Hoe Powershell te repareren Verwijder map of bestandsmap of bestandsnaam te lang Fout
Dit lijkt een bekende beperking te zijn bij PowerShell.
Om dit probleem op te lossen, kunt u de aan u cmd commando. Leid het resultaat vervolgens naar de opdracht Remove-Item.
Hier is een voorbeeld…
|__+_| De opdracht dir is het cmd-equivalent van PowerShell's Get-ChildItem.Hoe Powershell te repareren Verwijder map Toegang tot het pad wordt geweigerd Fout
PowerShell Remove-Item-opdracht genereert het foutbericht Toegang tot het pad is geweigerd als u probeert een map te verwijderen waarvoor u geen toestemming hebt om te verwijderen.
De reden dat u deze foutmelding krijgt, is dat u geen toegang hebt tot de map. Voordat u de opdracht Remove-Item uitvoert, voert u de volgende opdrachten uit om lokale beheerders toegang tot de map te verlenen.
Bij deze oplossing wordt ervan uitgegaan dat het account waarmee u zich aanmeldt, lid is van de lokale beheerdersgroep. Voordat u de onderstaande opdracht uitvoert in PowerShell ISE , wijzigt u het pad F:ITGFilesTextfiles in het mappad dat u probeert te verwijderen. |__+_|Zodra u klaar bent met het uitvoeren van het bovenstaande script, voert u de opdracht Remove-Item opnieuw uit.
Meer Powershell Delete-map- of bestandsvoorbeelden
Dit laatste gedeelte van de handleiding behandelt meerdere voorbeelden van het gebruik van PowerShell om bestanden of mappen te verwijderen.
Hoe een map of bestand met PowerShell verwijderen als het bestaat?
Aangezien dit voorbeeld een voorwaarde heeft - als de map of het bestand bestaat - controleert het eerste pad van de opdracht of het item bestaat.
U kunt de Test-pad commando om te controleren of een map of bestand bestaat. Vervolgens gebruikt u de voorwaardelijke instructie IF om de map of het bestand te verwijderen als deze bestaat.
We kunnen beide commando's combineren in het IF-statementblok...
In dit voorbeeld wil ik een map met de naam ITGServer in het pad F:ITGFilesTextfiles verwijderen - als de map bestaat.
Hier is de opdracht...
|__+_|In dit voorbeeld bestaat deze map dus is deze verwijderd. Als we de opdracht echter proberen met een bestand dat niet bestaat, ontvangen we het bericht in de Anders blok van het IF-statement.
Een map en zijn submappen verwijderen met PowerShell
Om een map en alle submappen te verwijderen, voer je de Verwijder voorwerp commando met de recursief en Kracht parameters.
Hier is een voorbeeld…
|__+_|Een map of bestand ouder dan x dagen (of op basis van datum) verwijderen met PowerShell
Omdat we in dit voorbeeld bestanden of mappen ouder dan x dagen willen verwijderen, is de eerste stap het verkrijgen van de dagenreferentie. Dit doe je met het Get-Date commando.
Omdat we echter items ouder dan x dagen willen verwijderen, moeten we x dagen als een negatieve waarde opgeven. Als u bijvoorbeeld alle bestanden of mappen ouder dan 7 dagen wilt verwijderen, haalt u de dagenreferentie op met de onderstaande opdracht:
hoeveel kernen heeft mijn macbook pro|__+_|
Gebruik dan de Get-ChildItem commando om de . te krijgen LaatsteSchrijfTijd eigendom van het artikel. De LaatsteSchrijfTijd eigenschap registreert de laatste datum waarop een map of bestand is gewijzigd.
Naast de LaatsteSchrijfTijd eigenschap, retourneert de opdracht Get-ChildItem een andere eigenschap met de naam PSI'sContainer . De eigenschap PSIsContainer onderscheidt een bestand van een map.
Als PSI'sContainer waar is, betekent dit dat het item een map is. Aan de andere kant, als PSI'sContainer onwaar is, betekent dit dat het item een bestand is.
Voordat ik de eigenschap LastWriteTime introduceer, wil ik eerst een Get-ChildItem-opdracht uitvoeren en filteren op de eigenschap PSIsContainer:
|__+_|Deze opdracht heeft een enkel object geretourneerd met de naam ITG omdat dit de enige map is in het pad F:ITGFilesTextfiles.
U kunt ook de onderstaande opdracht uitvoeren om alleen bestanden in het pad weer te geven:
|__+_|Deze keer, omdat ik gespecificeerd door $ _. PSI'sConta daalt af -eq $FALSE , PowerShell retourneert alle niet-mappen.
Nu u begrijpt hoe u mappen of bestanden in een map kunt weergeven, gaan we de eigenschap LastWriteTime introduceren. Zoals ik eerder al zei, worden de laatste datum en tijd waarop het item is gewijzigd vastgelegd in de eigenschap LastWriteTime.
Deze opdrachten bevatten de eigenschap LastWriteTime:
|__+_|De eerste opdracht retourneert alle mappen die het laatst zijn gewijzigd vóór de dagreferentie die is opgeslagen in de $DaysRef-variabele. In dit voorbeeld is de dagreferentie 7 dagen.
Integendeel, het tweede commando retourneert alle bestanden die de laatste x dagen zijn gewijzigd – waarbij x dagen in dit voorbeeld gelijk is aan 7.
De tweede en laatste fase van dit voorbeeld waarin PowerShell wordt gebruikt om mappen met bestanden ouder dan x dagen te verwijderen, is om de opdracht Where-Object door te sturen naar Remove-Item.
Het onderstaande script voltooit de taak om de bestanden en mappen te verwijderen ...
|__+_| Als geen bestand of map aan de LastWriteTime-criteria voldoet, wordt er geen verwijderd.Hoe PowerShell gebruiken om alleen mapinhoud te verwijderen
In dit voorbeeld zal ik de inhoud van F:ITGFilesfolder verwijderen, maar niet de map zelf.
Als u alleen de inhoud van een map wilt verwijderen maar de map wilt behouden, voert u de opdracht Remove-Item uit zoals in het onderstaande voorbeeld:
|__+_|De truc is om een asterisk toe te voegen na de laatste schuine streep aan het einde van het mappad.
De recursief parameter verwijdert alle mappen en submappen in het opgegeven pad. In dit voorbeeld F:ITGFilesfolder*
Hoe PowerShell gebruiken om map en inhoud te verwijderen zonder bevestiging of prompt?
De truc om een map en inhoud te verwijderen zonder u om bevestiging te vragen, is door de Kracht en Bevestig:$false parameters naar de Verwijder voorwerp opdracht.
Als ik de onderstaande opdracht uitvoer zonder de . toe te voegen Bevestig:$false parameter, kan ik bevestigen dat ik de map en al zijn inhoud wil verwijderen.
|__+_|Als ik deze bevestigingsprompt echter niet wil ontvangen, zal ik de parameter Confirm:$false opnemen.
|__+_|De opdracht moet worden uitgevoerd zonder te vragen om de actie te bevestigen. Merk ook op dat de parameter die de bevestigingsprompt stopt, is: Bevestig:$false .
Als de laatste opdracht nog steeds om bevestiging vraagt, voer dan eerst de Get-ChildItem opdracht. Leid vervolgens de uitvoer naar de opdracht Remove-Item, zoals hieronder wordt weergegeven:
|__+_|Helaas verwijdert de laatste opdracht de bovenliggende map niet. Om de bovenliggende map en al zijn inhoud te verwijderen, voegt u de parameter -filter toe aan de opdracht Get-ChildItem, zoals weergegeven in deze opdracht:
|__+_|Hoe PowerShell gebruiken om een map of bestand naar de Prullenbak te verwijderen?
Als u een map of bestand verwijdert met de opdracht Remove-Item, wordt deze permanent verwijderd. Met andere woorden, de map wordt niet naar de Prullenbak verplaatst.
Helaas is er geen PowerShell-cmdlet om een map of bestand naar de Prullenbak te verwijderen. Ik probeerde een aangepaste functie voor deze taak te maken. Ik heb echter een bestaande functie gevonden die is gemaakt door a stackoverflow.com bijdrager.
Om het beschikbaar te maken voor onze lezers, heb ik een kopie van de functie geüpload naar S Zone. Volg de onderstaande stappen om de functie te downloaden en te gebruiken:
- Klik op Download Remove-ItemToRecycleBin.zip om de functie te downloaden
- Pak vervolgens het gedownloade zipbestand uit. Wanneer u het bestand uitpakt, wordt er een map gemaakt met de naam Remove-ItemToRecycleBin.
- Kopieer ten slotte de map naar uw Windows 10 PowerShell-profielmatrijsmap. De map bevindt zich in het onderstaande pad
Nadat u de modulemap naar uw modulemap hebt gekopieerd, kunt u deze gebruiken zoals elke andere PowerShell-opdracht. Om te illustreren hoe het werkt, zal ik E: eports naar de Prullenbak verwijderen.
Voordat ik de opdracht echter uitvoer, is hier een screenshot van mijn lege Prullenbak.
Om nu PowerShell te gebruiken om de map E: eports to Prullenbak te verwijderen, voer ik de onderstaande opdracht uit:
|__+_|Nadat de bovenstaande opdracht is uitgevoerd, wordt de map met rapporten verplaatst naar de Prullenbak. Zie onderstaande schermafbeelding...
Hoe PowerShell gebruiken om een map of bestand te verwijderen en andere mappen of bestanden uit te sluiten?
De opdracht Remove-Item heeft een Uitsluiten parameter. Deze parameter wordt gebruikt om een map of bestand uit te sluiten dat u niet wilt verwijderen.
Hier is een voorbeeld. Ik wil alle mappen in het pad F:ITGFilesTextfiles5 verwijderen. Ik wil folder3 echter niet verwijderen.
Zoals je kunt zien aan de bovenstaande schermafbeelding, heeft de map zowel mappen als bestanden.
Om alleen mappen te verwijderen, moet ik eerst de opdracht Get-ChildItem gebruiken om alle items in het pad weer te geven. Leid vervolgens de uitvoer naar het Where-Object en filter op de eigenschap PSIsContainer.
|__+_|Na het uitvoeren van de laatste opdracht worden alle mappen verwijderd, maar niet folder3. U merkt ook dat bestanden in F:ITGFilesTextfiles5 niet zijn verwijderd.
De reden dat alleen mappen zijn verwijderd, is dat binnen de Waar-Object block, heb ik gefilterd op {$_.PSIsContainer -eq $TRUE}. De eigenschap PSIsContainer geeft aan dat een object een map is.
Verderop heeft het Remove-Item ook een parameter met de naam Include. Deze parameter voert de tegenovergestelde actie uit van de parameter Exclude.
Ik kan hetzelfde resultaat bereiken als de laatste opdracht door Exclude te vervangen door Include. In tegenstelling tot de vorige opdracht, zal ik nu echter de mappen weergeven die ik wil verwijderen.
Hier is een voorbeeldopdracht die alleen map1 verwijdert uit F:ITGFilesTextfiles5.
|__+_|Nadat u de vorige opdracht hebt uitgevoerd, zult u merken dat alleen map1 is verwijderd.
Als u bestanden wilt verwijderen in plaats van mappen, wijzigt u $_.PSIsContainer -eq $TRUE in $_.PSIsContainer -eq $FALSEHoe PowerShell gebruiken om een map te verwijderen, zelfs als deze niet leeg is?
Als u een map met PowerShell wilt verwijderen - zelfs als de map niet leeg is - neemt u de Kracht en recursief parameters. Hier is een voorbeeld.
|__+_|Hoe PowerShell gebruiken om lege mappen ouder dan X dagen te verwijderen
Volg de onderstaande stappen om PowerShell te gebruiken om lege mappen ouder dan x dagen te verwijderen...
In dit voorbeeld wil ik mappen die ouder zijn dan 90 dagen verwijderen uit mijn Windows 10-profiel, C:UsersVictorA.
- Gebruik Get-ChildItems om alleen mappen in het opgegeven pad weer te geven:
De opdracht geeft een overzicht van alle mappen in het opgegeven pad. Als u zich herinnert, in eerdere opdrachten in deze handleiding, om mappen terug te geven, gebruikten we Waar-Object om op te filteren PSI'sContainer eigendom. Ik besluit echter hetzelfde resultaat te bereiken met de Directory parameter van Get-ChildItem .
- Leid vervolgens het resultaat van de opdracht Get-ChildItem naar Where-Object. Voeg binnen de opdracht Where-Object een filter toe dat alleen lege mappen retourneert. Hier is de opdracht...
- Nu moeten we het pad toevoegen waarmee mappen in de vorige lijst ouder dan 90 dagen worden geretourneerd. Het gaat om twee commando's.
In het eerste commando zal ik Get-Date gebruiken om de datum voor de tijdsperiode te bepalen. In het voorbeeld 90 dagen geleden. Om het gemakkelijker te maken, zal ik het resultaat opslaan in een variabele met de naam $DaysRef.
|__+_|Vervolgens zal ik in de tweede opdracht nog een filter opnemen in het Where-Object-gedeelte van de laatste opdracht.
|__+_|Hier is het resultaat van het laatste commando...
Zoals u kunt zien, worden nu slechts twee lege mappen geretourneerd door de laatste opdracht. Ik heb deze opdracht uitgevoerd op 4 augustus 2021. Zoals je kunt zien, is de LaatsteSchrijfTijd van de twee mappen is 16/06/2021 16:29.
Voor Amerikaanse lezers is deze datum 16 augustus 2021 (16-06-2021)Dit betekent dat de laatste keer dat de twee mappen voor het laatst zijn gewijzigd, meer dan 90 dagen is vanaf het moment dat ik de opdracht uitvoerde.
- Ten slotte, om deze lege mappen ouder dan 90 dagen te verwijderen, pipet u de laatste opdracht naar de Remove-Item PowerShell-opdracht.
Hoe PowerShell te gebruiken om de gebruikersprofielmap te verwijderen
Om de gebruikersprofielmap te verwijderen met de opdrachten in deze sectie, MOET u: open PowerShell als beheerder . Anders krijgt u mogelijk een foutbericht voor toegang geweigerdDe eerste stap om PowerShell te gebruiken om de profielmap van een gebruiker te verwijderen, is om het pad naar de map van de gebruiker te bepalen. PowerShell heeft een omgevingsvariabele die het pad naar de Windows-installatiemap retourneert.
De variabele is…
|__+_|Deze opdracht retourneert een pad zoals C:WINDOWS. Ondertussen bevindt de map Gebruikers (die alle mappen met gebruikersprofielen bevat) zich in de hoofdmap van het station waarop Windows is geïnstalleerd.
In mijn voorbeeld bevindt de map Gebruikers zich in station C:WINDOWS.
Als u echter C: wilt retourneren vanuit C:WINDOWS, gebruikt u de split-methode zoals weergegeven in de onderstaande opdracht.
|__+_|De opdracht retourneert C: en WINDOWS. De volgende stap is het retourneren van C: – dit is het eerste item in de array.
Om toegang te krijgen tot dit item, voegt u deze [0] toe aan de laatste opdracht, zoals hieronder weergegeven.
|__+_|Nu hebben we C:
Ik heb eerder gezegd dat alle gebruikersprofielen zich in de map Gebruikers bevinden. Vanaf het laatste commando zal ik Users toevoegen aan de return C:Users
|__+_|Nu hebben we het volledige pad naar de map Gebruikers.
In de volgende opdracht zal ik Get-ChildItem gebruiken om alle gebruikersprofielmappen in de map Gebruikers weer te geven. Om fouten te voorkomen, zal ik eerst de laatste opdracht in een variabele opslaan.
|__+_|Nu kan ik Get-ChildItem gebruiken om alle gebruikersprofielmappen in de map Gebruikers te retourneren. Hier is de opdracht:
wmpnetwk exe hoog geheugen|__+_|
En het resultaat in PowerShell...
Het laatste deel zal zijn om de laatste opdracht naar Remove-Item te pipen. U moet echter de parameter Filter gebruiken om alleen de map met gebruikersprofielen te verwijderen waarvan u zich wilt ontdoen.
In dit voorbeeld wil ik de gebruikersprofielmap met de naam victo en al zijn submappen verwijderen
Hier is de laatste opdracht die PowerShell gebruikt om de gebruikersprofielmap te verwijderen:
|__+_|Nadat u deze opdracht hebt uitgevoerd en nu de onderstaande opdracht uitvoert, wordt het verwijderde profiel niet langer weergegeven.
|__+_|
Hoe PowerShell te gebruiken om een map uit Appdata te verwijderen
PowerShell heeft twee omgevingsvariabelen voor de AppData-map van een aangemelde gebruiker.
|__+_|De omgevingsvariabele die u besluit te gebruiken, hangt af van de locatie van de map die u wilt verwijderen. Als u echter niet zeker bent van de locatie van de map die u wilt verwijderen, kunt u op beide locaties zoeken.
Om dit te bereiken, zal ik beide omgevingsvariabelen opslaan in een variabele genaamd $appdatafolders...
|__+_|Vervolgens zal ik de ForEach-lus gebruiken om beide locaties te controleren. Hier is de code die dit werk doet ...
|__+_| Ik heb de WhatIf-parameter opgenomen, zodat PowerShell de map niet verwijdert. In plaats daarvan geeft PowerShell de actie weer die moest worden uitgevoerd als de WhatIf-parameter niet was opgenomen.Hier is het resultaat van de opdracht in PowerShell. De afbeelding rechts van de schermafbeelding is de map in mijn AppData-map.
Hoe PowerShell te gebruiken om een verborgen map te verwijderen
De opdracht Get-ChildItem heeft een parameter met de naam Hidden. Als u verborgen mappen in een opgegeven map wilt weergeven, neemt u de parameter Verborgen op.
In mijn screenshot hieronder heb ik 3 mappen (niet of verborgen).
Om te demonstreren hoe ik PowerShell kan gebruiken om verborgen mappen te verwijderen, zal ik Textfiles3 verbergen. Nu is de map verborgen.
Om de verborgen map weer te geven, voer ik de onderstaande opdracht uit ...
|__+_|Zoals verwacht, geeft de opdracht alleen de verborgen map weer.
Om de verborgen map met PowerShell te verwijderen, zal ik nu de laatste opdracht naar de opdracht Remove-Item pipen.
|__+_|Om te bevestigen dat de map is verwijderd, heb ik het kenmerk Verborgen items weergeven in Verkenner ingeschakeld.
Hoe PowerShell te gebruiken om bestanden te verwijderen, maar de mappenstructuur te behouden
Er kunnen gevallen zijn waarin u alle bestanden in een map wilt verwijderen, inclusief de submappen, maar de mapstructuur wilt behouden.
Om dit te bereiken, moet u de opdracht Get-ChildItem uitvoeren en de parameter File opgeven. Wanneer u de parameter File gebruikt, geeft Get-ChildItem alleen bestanden weer in de opgegeven map.
Om te demonstreren hoe dit werkt, heb ik een mappenstructuur gemaakt die wordt weergegeven in de onderstaande schermafbeelding:
Zoals te zien is in de schermafbeelding, heeft map1 twee submappen, map2 en map3. Verder hebben map2 en map3 enkele bestanden.
Om Get-ChildItem te gebruiken om alleen bestanden in het pad F:ITGFilesfolder1 weer te geven, voer ik de onderstaande opdracht uit:
|__+_|De opdracht geeft alleen bestanden weer in de twee paden, F:ITGFilesfolder1folder2 en Directory: F:ITGFilesfolder1folder3
Ten slotte, om de bestanden te verwijderen maar de mapstructuur te behouden, pijpt u de laatste opdracht naar Remove-Item ...
|__+_|De opdracht verwijdert alle bestanden maar laat de mappenstructuur intact!
Hoe PowerShell te gebruiken om de registersleutelmap te verwijderen
De opdracht voor het weergeven en verwijderen van een registersleutelmap is dezelfde opdracht die wordt gebruikt om normale mappen te verwijderen.
Als je deze handleiding vanaf het begin hebt gelezen, hebben we tot nu toe twee commando's gebruikt:
Get-ChildItem : gebruikt om items in een opgegeven pad weer te geven
Verwijder voorwerp : gebruikt om de bestanden/mappen te verwijderen die worden vermeld door Get-ChildItem
Het enige verschil is echter hoe u toegang krijgt tot registersleutelmappen.
Er zijn meerdere manieren om een registersleutel op te maken voor gebruik in de opdrachten Get-ChildItem en Remove-Item. Voor dit voorbeeld zal ik echter de onderstaande methode gebruiken:
|__+_|In dit voorbeeld wil ik toegang krijgen tot de registersleutelmap, HKEY_CURRENT_USERConfiguratieschermDesktop. Zoals je kunt zien in de opdrachtindeling hierboven, heb ik hiervoor het woordregister toegevoegd, gevolgd door twee dubbele punten, ::
Lees onze gids voor meer informatie over hoe PowerShell werkt met het Windows-register: Hoe PowerShell te gebruiken om de registerwaarde te lezen .
Verplaats het voorbeeld naar de volgende stap om de items in de bovenstaande registersleutelmap weer te geven, voer de onderstaande opdracht uit:
|__+_|De opdracht geeft alle subsleutelmappen weer in de opgegeven registersleutelmap.
Als ik een opgegeven map wil verwijderen, voer ik eerst Get-ChildItem uit. Vervolgens zal ik de uitvoer naar Select-Object sturen
|__+_|De bovenstaande opdracht geeft het volledige pad naar alle subsleutels in mijn oorspronkelijke registersleutelmap weer:
Om vervolgens de subsleutels te verwijderen, zal ik de laatste opdracht naar Remove-Item sturen. Om echter een specifieke subsleutelmap te verwijderen, zal ik eerst de laatste opdracht naar Where-Object pipen en filteren op de naam van de subsleutel die ik wil verwijderen:
|__+_|De laatste opdracht retourneert nu alleen het opgegeven mappad van de registersubsleutel.
Ten slotte, om deze mapsubsleutel met PowerShell te verwijderen, pijpt u de laatste opdracht naar Remove-Item. Voor die tijd moet u echter de registersleutel wijzigen en deze naar Get-Item doorsluizen.
Om het gemakkelijk te maken, zal ik de laatste opdracht in een variabele opslaan
|__+_|Formatteer het vervolgens voor de opdracht Get-Item
|__+_|Leid tot slot het geformatteerde sleutelpad naar Get-Item...
|__+_|Nu kunnen we de waarde verwijderen door de laatste opdracht naar Remove-Item te sturen (ik heb de whatif-parameter toegevoegd omdat ik deze sleutel NIET wil verwijderen)
|__+_|En hier is het resultaat…
dxgmms2.sys system_thread_exception_not_handled
Hoe PowerShell te gebruiken om mapnaam te verwijderen Like
In de loop van andere voorbeelden in deze handleiding heb ik laten zien hoe u PowerShell kunt gebruiken om een mapnaam te verwijderen met behulp van het Like-filter. Zoals al in eerdere voorbeelden is getoond, kan dit filter ook worden toegepast in de opdracht Get-ChildItem of in de opdracht Where-Object.
Om bijvoorbeeld alle bestanden en mappen met namen als bestand in het pad F:ITGFiles te verwijderen, kan ik de onderstaande opdracht gebruiken:
|__+_| Om het filter te laten werken, moet u mogelijk een jokerteken gebruiken. In dit voorbeeld gebruik ik het asterisk-jokerteken.
Ik kan hetzelfde resultaat bereiken door Get-ChildItem naar Where-Object te leiden. Voer vervolgens de filtering uit in Where-Object.
|__+_|De opdracht geeft hetzelfde resultaat als de laatste opdracht!
Net als bij andere voorbeelden in deze handleiding, moet u de uitvoer van een van de twee opdrachten naar Remove-Item sturen om de map te verwijderen.
Hoe PowerShell te gebruiken om mappen te verwijderen die groter zijn dan een opgegeven grootte
Als u met PowerShell mappen groter dan een opgegeven grootte wilt verwijderen, moet u eerst de mapgroottes in het opgegeven pad berekenen.
U moet echter het volledige pad naar de submappen in het opgegeven mappad vermelden. Om het volledige pad naar alle submappen in een mappad weer te geven, voert u een opdracht uit die vergelijkbaar is met die hieronder:
|__+_|De opdracht geeft de volledige paden weer naar alle submappen in het mappad, F:ITGFiles
De ... gebruiken Diepte parameter met een waarde 0, in plaats van recursief zorgt ervoor dat alleen de submappen van het eerste niveau worden geretourneerd.
Nu ik het volledige pad naar de submap heb, zal ik deze informatie gebruiken om de grootte van elke submap te berekenen. Om echter het volledige pad naar de submappen te hebben (vereist om het later te verwijderen) en de grootte, moet ik een aangepast script maken.
Hier is het volledige script:
|__+_|En hier is het resultaat van de opdracht in PowerShell ISE .
Zoals je kunt zien aan de screenshot, retourneert het script slechts één bestand dat voldoet aan de criteria voor grootte (10 MB).
Het is duidelijk dat we nog een laatste stukje hebben om de taak te voltooien - verwijder het bestand. Om het bestand te verwijderen dat voldoet aan de vereiste grootte, heb ik de IF-instructie gewijzigd zoals weergegeven in dit script ...
|__+_|Dus, hier is het laatste script dat mappen verwijdert die groter zijn dan een opgegeven waarde
|__+_| Om het script te gebruiken, wijzigt u het pad F:ITGFiles in de Get-ChildItem - regel 1. Wijzig ook de grootte van de map die u wilt verwijderen - van 10 (in MB) naar de gewenste grootte.Hoe PowerShell te gebruiken om een gedeelde netwerkmap te verwijderen
Het proces van het gebruik van PowerShell om netwerkmappen te verwijderen verschilt niet van het verwijderen van lokale mappen. Het enige verschil is hoe u een netwerkmap opgeeft.
Naast de manier waarop je een netwerkmap specificeert, moet je ook de juiste rechten hebben. In het bijzonder moet u de machtiging Share Share hebben.
Bovendien moet u ook NTFS-beveiligingsmachtiging wijzigen.
Zodra aan deze machtigingsvereisten is voldaan, hebt u toegang tot de netwerkmap met de opdracht Get-ChildItem. Om de map te verwijderen, pipet u vervolgens de uitvoer van Get-ChildItem naar Remove-Item.
Om te demonstreren hoe ik PowerShell kan gebruiken om een netwerkmap te verwijderen, gebruik ik een gedeelde map met de naam TestShare. De map bevindt zich op mijn Windows 11 test-pc genaamd ITGWIN11BETA.
Om de inhoud van de gedeelde netwerkmap weer te geven, gebruik ik de opdracht Get-ChildItem zoals hieronder wordt weergegeven ...
|__+_|Net als een lokale map, geeft de opdracht een overzicht van alle mappen en submappen in de gedeelde netwerkmap.
Vanaf dit punt kunt u de laatste opdracht rechtstreeks naar Remove-Item sturen. U kunt ook een filter toepassen voordat u het naar Remove-Item leidt.
Als u bijvoorbeeld een specifieke map wilt verwijderen, kunt u de Filter parameter in Get-ChildItem. Als alternatief kunt u Get-ChildItem doorsluizen naar Where-Object en de . gebruiken Filter parameter in Where-Object.
Ten slotte, om het item in de gedeelde netwerkmap te verwijderen, pijpt u het resultaat naar Remove-Item.
Hoe PowerShell te gebruiken om een map of bestand te verwijderen, beginnend met
Als u mappen of bestanden wilt verwijderen die met een bepaalde naam beginnen, kunt u de Filter parameter in Get-ChildItem cmdlet om de bestanden weer te geven. Ipe het resultaat vervolgens naar Remove-Item.
Als alternatief kunt u de Verwijderen() Methode in Get-ChildItem.
Om dit voorbeeld te illustreren, zal ik alle bestanden en mappen verwijderen die beginnen met f in de onderstaande schermafbeelding.
Zoals ik eerder al zei, is de eerste stap om Get-ChildItem Cmdlet te gebruiken met de parameter Filter. Hier is een voorbeeldopdracht:
|__+_| Een andere optie kan zijn om Get-ChildItem door te sturen naar Where-Object en de filtering uit te voeren in Where-Object .De opdracht geeft een overzicht van alle bestanden die beginnen met f. Zie de schermafbeelding hieronder:
De laatste stap voor het verwijderen van alle mappen en bestanden die beginnen met f is het pipen van de uitvoer van
|__+_|Hoe PowerShell te gebruiken om de softwaredistributiemap te verwijderen
Zoals u wellicht al weet, slaat Windows gedownloade updates op in de map SoftwareDistribution. In het ideale geval hoeft u deze map niet te verwijderen.
Als de Windows Update-database echter beschadigd is, kunt u dit oplossen door de Software distributie map. Voordat u dat echter doet, moet u eerst de Windows Update stoppen.
Om de Windows Update-service te stoppen, voert u PowerShell uit als beheerder. Voer vervolgens de onderstaande opdracht uit:
|__+_| Als u de Windows Update-service niet stopt, kunt u de Software distributie mapVoer vervolgens de onderstaande opdrachten uit om PowerShell te gebruiken om de map SoftwareDistribution te verwijderen:
|__+_|Ten slotte, om de map SoftwareDistribution opnieuw te maken, start u de Windows Update-service opnieuw
dd-wrt of openwrt|__+_|
Hoe PowerShell te gebruiken om een bestand of map te verwijderen nadat het is gezipt
Om een bestand of map te zippen, gebruikt u de opdracht Compress-Archive zoals weergegeven in het onderstaande voorbeeld:
|__+_| Wijzig LiteralPath in het bronpad van het bestand of de map die u wilt zippen. Wijzig ook DestinationPath in het pad waar u het gecomprimeerde bestand wilt opslaan.Nadat u het bestand hebt gecomprimeerd, gebruikt u de onderstaande opdracht om het te verwijderen ...
|__+_|Hoe PowerShell te gebruiken om een bestand of bestand te verwijderen en vervolgens een rapport naar een logbestand te schrijven
Als u PowerShell wilt gebruiken om een bestand of map te verwijderen en de acties vervolgens wilt rapporteren aan een logbestand, moet u eerst de logbestandsnamen definiëren.
In dit voorbeeld wil ik twee logbestanden hebben, 1 om succes te loggen en de tweede om fouten te loggen.
Normaal gesproken maak ik mijn logbestanden graag op basis van datum. Voor dit voorbeeld zal ik eerst een datumstempel maken en deze opslaan in een variabele:
|__+_|Vervolgens maak ik twee logbestanden op basis van de datumstempel ...
|__+_|Er ontbreekt één stuk: het directorypad om de logbestanden op te slaan. Om dit bit toe te voegen, zal ik het pad opslaan in een variabele ...
|__+_|Voeg vervolgens het pad toe aan de logbestanden hierboven...
|__+_|Met de laatste twee opdrachten worden twee logbestanden gemaakt. Zie de onderstaande schermafbeelding voor details...
Nu ik onze logbestanden heb gemaakt, zal ik nu een PowerShell-script maken waarmee bestanden en mappen in een opgegeven pad worden verwijderd. Schrijf vervolgens rapporten naar de logbestanden.
In dit voorbeeld wil ik bestanden in de map WindowsTemp verwijderen. De eerste stap is om het pad naar deze map op te slaan in een variabele...
|__+_|Vervolgens zal ik Get-ChildItem gebruiken om de inhoud van de map weer te geven en de uitvoer naar Remove-Item te leiden.
Om de fouten echter te kunnen vastleggen, moet ik het hele commando insluiten in een Try, Catch.
Hier is het volledige script...
|__+_| Als u het script wilt gebruiken, kopieert u het naar PowerShell ISE . Wijzig vervolgens de variabele $Path in het pad van de map die u wilt verwijderen. Wijzig ook $LogPath in het mappad waarin u uw logbestanden wilt opslaan.Dat is het - onze uitgebreide gids om PowerShell te gebruiken om bestanden of mappen te verwijderen! Ik hoop dat je de gids nuttig vond.
Als je het nuttig vond, stem dan vriendelijk Ja naar Was dit bericht nuttig? onderstaand. U kunt ook gedetailleerde feedback delen met het formulier LAAT EEN ANTWOORD achter aan het einde van deze pagina.
Bezoek ten slotte onze Windows PowerShell How-To-pagina voor meer PowerShell-handleidingen met voorbeelden. Mogelijk vindt u onze GRATIS PowerShell-trainingsgidsen ook nuttig.


