about_FileSystem_Provider
Providernaam
Bestandssysteem
Aandrijfeenheden
C:
, D:
, Temp:
...
Functies
Filter, ShouldProcess
Korte beschrijving
Biedt toegang tot bestanden en mappen.
Gedetailleerde beschrijving
Met de PowerShell-bestandssysteemprovider kunt u bestanden en mappen ophalen, toevoegen, wijzigen, wissen en verwijderen in PowerShell.
De bestandssysteemstations zijn een hiërarchische naamruimte met de mappen en bestanden op uw computer. Een bestandssysteemstation kan een logisch of fysiek station, map of toegewezen netwerkshare zijn.
Vanaf PowerShell versie 7.0 wordt een station met de naam TEMP:
toegewezen aan het tijdelijke mappad van de gebruiker. PowerShell gebruikt de methode .NET GetTempPath() om de locatie van de tijdelijke map te bepalen. In Windows is de locatie hetzelfde als $env:TEMP
. Op niet-Windows-systemen is de locatie hetzelfde als $env:TMPDIR
of /tmp
als de omgevingsvariabele niet is gedefinieerd.
De bestandssysteemprovider ondersteunt de volgende cmdlets, die in dit artikel worden behandeld.
- Get-Location
- Set-Location
- Get-Item
- Get-ChildItem
- Invoke-Item
- Move-Item
- New-Item
- Remove-Item
- Get-ItemProperty
- Set-ItemProperty
- Clear-Item
- Clear-ItemProperty
- Remove-Item
- Remove-ItemProperty
- Get-Acl
- Set-Acl
- Get-AuthenticodeSignature
- Set-AuthenticodeSignature
- Add-Content
- Clear-Content
- Get-Content
- Set-Content
Typen die door deze provider worden weergegeven
Bestanden zijn exemplaren van de klasse System.IO.FileInfo . Directory's zijn exemplaren van de klasse System.IO.DirectoryInfo .
Het Uitgebreide Type-systeem van PowerShell voegt extra eigenschappen toe aan deze objecttypen om aanvullende informatie te bieden. Sommige informatie is platformspecifiek. De mogelijke waarden van de eigenschap LinkType zijn bijvoorbeeld afhankelijk van het platform en het bestandssysteem dat wordt gebruikt. Linux- en macOS-bestandssystemen ondersteunen HardLink
en SymLink
. Windows NTFS ondersteunt HardLink
, SymLink
, Junction
en verschillende andere waarden voor LinkType.
Wanneer u of Get-ChildItem
gebruikt Get-Item
voor informatie over een gekoppeld item, bevat de eigenschap Mode een l
om aan te geven dat het item een koppeling is. De eigenschap LinkType bevat het type koppeling.
AppExecLink
koppelingen worden gemaakt wanneer u een toepassing installeert vanuit de Microsoft Store. Voor AppExecLink
koppelingen biedt Windows geen waarden voor de eigenschappen LinkType of LinkTarget .
Get-Item ~\AppData\Local\Microsoft\WindowsApps\winget.exe
Directory: C:\Users\user1\AppData\Local\Microsoft\WindowsApps
Mode LastWriteTime Length Name
---- ------------- ------ ----
la--- 6/8/2023 12:20 PM 0 winget.exe ->
Navigeren door de bestandssysteemstations
De bestandssysteemprovider maakt de gegevensarchieven beschikbaar door logische stations op de computer toe te staan als PowerShell-stations. Als u wilt werken met een bestandssysteemstation , kunt u uw locatie wijzigen in een station met behulp van de naam van het station gevolgd door een dubbele punt (:
).
Set-Location C:
U kunt ook werken met de bestandssysteemprovider vanaf elk ander PowerShell-station. Als u wilt verwijzen naar een bestand of map vanaf een andere locatie, gebruikt u de naam van het station (C:
, D:
, ...) in het pad.
Notitie
PowerShell maakt gebruik van aliassen, zodat u op een vertrouwde manier met providerpaden kunt werken. Opdrachten zoals dir
en ls
zijn nu aliassen voor Get-ChildItem
, cd
is een alias voor Set-Location
. en pwd
is een alias voor Get-Location
.
Bestanden en mappen ophalen
De Get-ChildItem
cmdlet retourneert alle bestanden en mappen op de huidige locatie. U kunt een ander pad opgeven om te zoeken en ingebouwde parameters te gebruiken om de diepte van de recursie te filteren en te beheren.
Get-ChildItem
Zie Get-ChildItem voor meer informatie over het gebruik van cmdlets.
Bestanden en mappen kopiëren
Met de Copy-Item
cmdlet worden bestanden en mappen gekopieerd naar een locatie die u opgeeft.
Parameters zijn beschikbaar om te filteren en recurse, vergelijkbaar met Get-ChildItem
.
Met de volgende opdracht worden alle bestanden en mappen onder het pad C:\temp\
naar de map C:\Windows\Temp
gekopieerd.
Copy-Item -Path C:\temp\* -Destination C:\Windows\Temp -Recurse -File
Copy-Item
Bestanden in de doelmap worden overschreven zonder dat u om bevestiging wordt gevraagd.
Met deze opdracht wordt het a.txt
bestand van de C:\a
map naar de C:\a\bb
map gekopieerd.
Copy-Item -Path C:\a\a.txt -Destination C:\a\bb\a.txt
Kopieert alle mappen en bestanden in de C:\a
map naar de C:\c
map. Als een van de te kopiëren mappen al in de doelmap bestaat, mislukt de opdracht, tenzij u de parameter Force opgeeft.
Copy-Item -Path C:\a\* -Destination C:\c -Recurse
Zie Copy-Item (Item kopiëren) voor meer informatie.
Bestanden en mappen verplaatsen
Met deze opdracht wordt het c.txt
bestand in de C:\a
map naar de C:\a\aa
map verplaatst:
Move-Item -Path C:\a\c.txt -Destination C:\a\aa
Standaard overschrijft de cmdlet geen bestaand bestand met dezelfde naam. Als u wilt afdwingen dat de cmdlet een bestaand bestand overschrijft, geeft u de parameter Force op.
U kunt een map niet verplaatsen als deze map de huidige locatie is. Wanneer u gebruikt Move-Item
om de map op de huidige locatie te verplaatsen, ziet u deze fout.
C:\temp> Move-Item -Path C:\temp\ -Destination C:\Windows\Temp
Move-Item : Cannot move item because the item at 'C:\temp\' is in use.
At line:1 char:1
+ Move-Item C:\temp\ C:\temp2\
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Move-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.MoveItemCommand
Bestandsinhoud beheren
De inhoud van een bestand ophalen
Met deze opdracht wordt de inhoud van het bestand 'Test.txt' opgehaald en weergegeven in de console.
Get-Content -Path Test.txt
U kunt de inhoud van het bestand doorspezen naar een andere cmdlet. De volgende opdracht leest bijvoorbeeld de inhoud van het Test.txt
bestand en levert deze als invoer aan de cmdlet ConvertTo-HTML :
Get-Content -Path Test.txt | ConvertTo-Html
U kunt ook de inhoud van een bestand ophalen door het pad van de provider te voorzien van het dollarteken ($
). Het pad moet tussen accolades worden geplaatst vanwege variabele naamgevingsbeperkingen. Zie about_Variables voor meer informatie.
${C:\Windows\System32\Drivers\etc\hosts}
Inhoud toevoegen aan een bestand
Met deze opdracht wordt de tekenreeks 'testinhoud' toegevoegd aan het Test.txt
bestand:
Add-Content -Path test.txt -Value "test content"
De bestaande inhoud in het Test.txt
bestand wordt niet verwijderd.
De inhoud van een bestand vervangen
Met deze opdracht wordt de inhoud van het Test.txt
bestand vervangen door de tekenreeks 'testinhoud':
Set-Content -Path test.txt -Value "test content"
De inhoud van Test.txt
wordt overschreven. U kunt de waardeparameter van de New-Item
cmdlet gebruiken om inhoud toe te voegen aan een bestand wanneer u het maakt.
De inhoud van een bestand doorlopen
Standaard gebruikt de Get-Content
cmdlet het teken einde van regel als scheidingsteken, dus krijgt het een bestand als een verzameling tekenreeksen, met elke regel als één tekenreeks in het bestand.
U kunt de parameter Scheidingsteken gebruiken om een alternatief scheidingsteken op te geven. Als u het instelt op de tekens die het einde van een sectie of het begin van de volgende sectie aandukt, kunt u het bestand splitsen in logische onderdelen.
De eerste opdracht haalt het Employees.txt
bestand op en splitst het in secties, die elk eindigen met de woorden 'Einde van werknemerrecord' en het wordt opgeslagen in de $e
variabele.
De tweede opdracht maakt gebruik van matrixnotatie om het eerste item in de verzameling in $e
op te halen. Er wordt een index van 0 gebruikt, omdat PowerShell-matrices op nul zijn gebaseerd.
Zie het Help-onderwerp voor de voor meer informatie over Get-Content
cmdlets Get-Content
.
Zie about_Arrays voor meer informatie over matrices.
$e = Get-Content c:\test\employees.txt -Delimited "End Of Employee Record"
$e[0]
Beveiligingsdescriptors beheren
De ACL voor een bestand weergeven
Deze opdracht retourneert een System.Security.AccessControl.FileSecurity-object :
Get-Acl -Path test.txt | Format-List -Property *
Voor meer informatie over dit object sluist u de opdracht door naar de cmdlet Get-Member of raadpleegt u de klasse FileSecurity .
Bestanden en mappen maken
Een map maken
Met deze opdracht maakt u de logfiles
map op het C
station:
New-Item -Path c:\ -Name logfiles -Type directory
PowerShell bevat ook een mkdir
functie (alias md
) die de New-Item
cmdlet gebruikt om een nieuwe map te maken.
Een bestand maken
Met deze opdracht maakt u het log2.txt
bestand in de C:\logfiles
map en voegt u vervolgens de tekenreeks 'testlogboek' toe aan het bestand:
New-Item -Path c:\logfiles -Name log2.txt -Type file
een bestand met inhoud Creatie
Hiermee maakt u een bestand met de naam log2.txt
in de C:\logfiles
map en voegt u de tekenreeks 'testlogboek' toe aan het bestand.
New-Item -Path c:\logfiles -Name log2.txt -Type file -Value "test log"
De naam van bestanden en mappen wijzigen
De naam van een bestand wijzigen
Met deze opdracht wijzigt u de naam van het a.txt
bestand in de C:\a
map in b.txt
:
Rename-Item -Path c:\a\a.txt -NewName b.txt
De naam van een map wijzigen
Met deze opdracht wordt de naam van de C:\a\cc
map gewijzigd in C:\a\dd
:
Rename-Item -Path c:\a\cc -NewName dd
Bestanden en mappen verwijderen
Een bestand verwijderen
Met deze opdracht verwijdert u het Test.txt
bestand in de huidige map:
Remove-Item -Path test.txt
Bestanden verwijderen met jokertekens
Met deze opdracht verwijdert u alle bestanden in de huidige map met de .xml
bestandsnaamextensie:
Remove-Item -Path *.xml
Een programma starten door een gekoppeld bestand aan te roepen
Een bestand aanroepen
De cmdlet Get-Service voor het ophalen van informatie over lokale services en leidt de informatie door naar de cmdlet Export-CSV om de informatie in het Services.csv
bestand op te slaan.
Vervolgens opent Invoke-Item het services.csv
bestand in het programma dat is gekoppeld aan de .csv
extensie:
Get-Service | Export-Csv -Path services.csv
Invoke-Item -Path services.csv
Bestanden en mappen met opgegeven kenmerken ophalen
Systeembestanden ophalen
Met deze opdracht worden systeembestanden in de huidige map en de bijbehorende submappen opgeslagen.
De parameter Bestand wordt gebruikt om alleen bestanden (geen mappen) op te halen en de parameter System om alleen items met het kenmerk 'system' op te halen.
De parameter Recurse wordt gebruikt om de items in de huidige map en alle submappen op te halen.
Get-ChildItem -File -System -Recurse
Verborgen bestanden ophalen
Met deze opdracht worden alle bestanden, inclusief verborgen bestanden, in de huidige map opgeslagen.
Er wordt gebruikgemaakt van de parameter Attributes met twee waarden, !Directory+Hidden
, waarmee verborgen bestanden worden opgehaald, en !Directory
, waarmee alle andere bestanden worden opgehaald.
Get-ChildItem -Attributes !Directory,!Directory+Hidden
dir -att !d,!d+h
is het equivalent van deze opdracht.
Gecomprimeerde en versleutelde bestanden ophalen
Met deze opdracht worden bestanden opgehaald in de huidige map die zijn gecomprimeerd of versleuteld.
Er wordt gebruikgemaakt van de parameter Attributes met twee waarden, Compressed
en Encrypted
. De waarden worden gescheiden door een komma ,
die de operator 'OR' vertegenwoordigt.
Get-ChildItem -Attributes Compressed,Encrypted
Dynamische parameters
Dynamische parameters zijn cmdlet-parameters die worden toegevoegd door een PowerShell-provider en die alleen beschikbaar zijn wanneer de cmdlet wordt gebruikt in het station met provider.
Encoding <Encoding>
Hiermee geeft u de bestandscodering. De standaardwaarde is ASCII.
ascii
: maakt gebruik van de codering voor de ASCII-tekenset (7-bits).bigendianunicode
: Codeert in UTF-16-indeling met behulp van de bytevolgorde big-endian.bigendianutf32
: Codeert in UTF-32-indeling met behulp van de bytevolgorde big-endian.oem
: Maakt gebruik van de standaardcodering voor MS-DOS en consoleprogramma's.unicode
: Codeert in UTF-16-indeling met behulp van de bytevolgorde little-endian.utf7
: Codeert in UTF-7-indeling.utf8
: Codeert in UTF-8-indeling.utf8BOM
: Codeert in UTF-8-indeling met Byte Order Mark (BOM)utf8NoBOM
: Codeert in UTF-8-indeling zonder Byte Order Mark (BOM)utf32
: Codeert in UTF-32-indeling.
Ondersteunde cmdlets
Add-Content
Get-Content
Set-Content
Tekenreeks met <scheidingstekens>
Hiermee geeft u het scheidingsteken op dat Get-Content
wordt gebruikt om het bestand te verdelen in objecten terwijl het wordt gelezen.
De standaardwaarde is \n
, het einde van regelteken.
Bij het lezen van een tekstbestand wordt Get-Content
een verzameling tekenreeksobjecten geretourneerd, die elk eindigen met het scheidingsteken.
Als u een scheidingsteken invoert dat niet in het bestand bestaat, Get-Content
wordt het hele bestand geretourneerd als één niet-gescheiden object.
U kunt deze parameter gebruiken om een groot bestand op te splitsen in kleinere bestanden door een bestandsscheidingsteken op te geven, zoals 'Einde van voorbeeld', als scheidingsteken. Het scheidingsteken blijft behouden (niet verwijderd) en wordt het laatste item in elke bestandssectie.
Notitie
Wanneer de waarde van de parameter Scheidingsteken een lege tekenreeks is, Get-Content
retourneert momenteel niets. Dit is een bekend probleem. Als u wilt afdwingen Get-Content
dat het hele bestand als één tekenreeks zonder scheidingsteken wordt geretourneerd, voert u een waarde in die niet in het bestand bestaat.
Ondersteunde cmdlets
Get-Content
WachtschakelaarParameter <>
Wacht totdat inhoud aan het bestand is toegevoegd. Als inhoud wordt toegevoegd, wordt de toegevoegde inhoud geretourneerd. Als de inhoud is gewijzigd, wordt het hele bestand geretourneerd.
Wanneer u wacht, Get-Content
controleert u het bestand eenmaal per seconde totdat u het onderbreekt, bijvoorbeeld door op Ctrl+C te drukken.
Ondersteunde cmdlets
Get-Content
Kenmerken <FlagsExpression>
Hiermee worden bestanden en mappen met de opgegeven kenmerken opgehaald. Deze parameter ondersteunt alle kenmerken en kunt u complexe combinaties van kenmerken opgeven.
De parameter Attributes is geïntroduceerd in Windows PowerShell 3.0.
De parameter Attributes ondersteunt de volgende kenmerken:
- Archiveren
- Gecomprimeerd
- Apparaat
- Directory
- Versleuteld
- Verborgen
- Normaal
- NotContentIndexed
- Offline
- Readonly
- ReparsePoint
- SparseFile
- Systeem
- Tijdelijk
Zie de opsomming FileAttributes voor een beschrijving van deze kenmerken.
Gebruik de volgende operators om kenmerken te combineren.
!
-NIET+
-EN,
-OF
Er zijn geen spaties toegestaan tussen een operator en het bijbehorende kenmerk. Spaties zijn echter toegestaan vóór komma's.
Ondersteunde cmdlets
Get-ChildItem
Directory <SwitchParameter>
Hiermee haalt u mappen (mappen) op.
De parameter Directory is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen mappen wilt ophalen, gebruikt u de mapparameter en laat u de parameter File weg. Als u mappen wilt uitsluiten, gebruikt u de parameter Bestand en laat u de parameter Directory weg of gebruikt u de parameter Kenmerken .
Ondersteunde cmdlets
Get-ChildItem
Bestandsschakelaarparameter <>
Hiermee haalt u bestanden op.
De parameter File is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen bestanden wilt ophalen, gebruikt u de parameter Bestand en laat u de parameter Directory weg. Als u bestanden wilt uitsluiten, gebruikt u de mapparameter en laat u de parameter Bestand weg of gebruikt u de parameter Kenmerken .
Ondersteunde cmdlets
Get-ChildItem
Verborgen <switchparameter>
Hiermee haalt u alleen verborgen bestanden en mappen (mappen) op. Standaard haalt Get-ChildItem
u alleen niet-verborgen items op.
De parameter Hidden is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen verborgen items wilt ophalen, gebruikt u de parameter Verborgen, h
de bijbehorende aliassen ofah
de verborgen waarde van de parameter Kenmerken. Als u verborgen items wilt uitsluiten, laat u de parameter Verborgen weg of gebruikt u de parameter Kenmerken .
Ondersteunde cmdlets
Get-ChildItem
ReadOnly <SwitchParameter>
Hiermee haalt u alleen alleen-lezenbestanden en mappen (mappen) op.
De parameter ReadOnly is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen-lezenitems wilt ophalen, gebruikt u de parameter ReadOnly , ar
de alias of de ReadOnly-waarde van de parameter Attributes . Als u alleen-lezenitems wilt uitsluiten, gebruikt u de parameter Kenmerken .
Ondersteunde cmdlets
Get-ChildItem
SysteemschakelaarParameter <>
Hiermee haalt u alleen systeembestanden en mappen (mappen) op.
De parameter System is geïntroduceerd in Windows PowerShell 3.0.
Als u alleen systeembestanden en mappen wilt ophalen, gebruikt u de systeemparameter, as
de alias of de systeemwaarde van de parameter Kenmerken. Als u systeembestanden en mappen wilt uitsluiten, gebruikt u de parameter Kenmerken.
Ondersteunde cmdlets
Get-ChildItem
NieuwerThan <DateTime>
Retourneert $True
wanneer de LastWriteTime
waarde van een bestand groter is dan de opgegeven datum. Anders wordt geretourneerd $False
.
Voer een DateTime-object in, zoals een object dat door de cmdlet Get-Date wordt geretourneerd, of een tekenreeks die kan worden geconverteerd naar een DateTime-object , zoals "August 10, 2011 2:00 PM"
.
Ondersteunde cmdlets
OlderThan <DateTime>
Retourneert $True
wanneer de LastWriteTime
waarde van een bestand kleiner is dan de opgegeven datum. Anders wordt geretourneerd $False
.
Voer een DateTime-object in, zoals een object dat door de Get-Date
cmdlet wordt geretourneerd, of een tekenreeks die kan worden geconverteerd naar een DateTime-object , zoals "August 10, 2011 2:00 PM"
.
Ondersteunde cmdlets
Test-Path
<tekenreeks Stream>
Beheert alternatieve gegevensstromen. Voer de naam van de stream in. Jokertekens zijn alleen toegestaan in Get-Item
voor- en Remove-Item
opdrachten in een bestandssysteemstation.
Ondersteunde cmdlets
Add-Content
Clear-Content
Get-Item
Get-Content
Remove-Item
Set-Content
Onbewerkte <SwitchParameter>
Hiermee worden tekens voor nieuwe regels genegeerd. Retourneert inhoud als één item.
Ondersteunde cmdlets
Get-Content
ItemType-tekenreeks <>
Met deze parameter kunt u het type item opgeven dat moet worden gemaakt met New-Item
.
De beschikbare waarden van deze parameter zijn afhankelijk van de huidige provider die u gebruikt.
In een FileSystem
station zijn de volgende waarden toegestaan:
- File
- Directory
- SymbolicLink
- Verbinding
- Hardlink
Ondersteunde cmdlets
New-Item
De pijplijn gebruiken
Provider-cmdlets accepteren pijplijninvoer. U kunt de pijplijn gebruiken om de taak te vereenvoudigen door providergegevens van de ene cmdlet naar een andere provider-cmdlet te verzenden. Zie de cmdlet-verwijzingen in dit artikel voor meer informatie over het gebruik van de pijplijn met provider-cmdlets.
Ondersteuning vragen
Vanaf Windows PowerShell 3.0 kunt u aangepaste Help-onderwerpen voor provider-cmdlets krijgen waarin wordt uitgelegd hoe deze cmdlets zich gedragen op een bestandssysteemstation.
Als u de Help-onderwerpen wilt ophalen die zijn aangepast voor het bestandssysteemstation, voert u een get-Help-opdracht uit in een bestandssysteemstation of gebruikt u de path-parameter van Get-Help
om een bestandssysteemstation op te geven.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path c: