New-Item
Erstellt ein neues Element.
Syntax
New-Item
[-Path] <String[]>
[-ItemType <String>]
[-Value <Object>]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-Item
[[-Path] <String[]>]
-Name <String>
[-ItemType <String>]
[-Value <Object>]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-Item
[-Path] <string[]>
-ConnectionURI <uri>
[-ItemType <string>]
[-Value <Object>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-OptionSet <hashtable>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <string>]
[-SessionOption <SessionOption>]
[-Port <int>]
[<CommonParameters>]
New-Item
[[-Path] <string[]>]
-Name <string>
[-ItemType <string>]
[-Value <Object>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-OptionSet <hashtable>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <string>]
[-SessionOption <SessionOption>]
[-ApplicationName <string>]
[-Port <int>]
[-UseSSL]
[<CommonParameters>]
New-Item
[-Path] <string[]>
[-ItemType <string>]
[-Value <Object>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-Options <ScopedItemOptions>]
[<CommonParameters>]
New-Item
[[-Path] <string[]>]
-Name <string>
[-ItemType <string>]
[-Value <Object>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-Options <ScopedItemOptions>]
[<CommonParameters>]
Beschreibung
Das New-Item
Cmdlet erstellt ein neues Element und legt seinen Wert fest. Die Typen von Elementen, die erstellt werden können, hängen vom Speicherort des Elements ab. Im Dateisystem New-Item
werden z. B. Dateien und Ordner erstellt. Erstellt in der Registrierung New-Item
Registrierungsschlüssel und Einträge.
New-Item
kann auch den Wert der von ihr erstellten Elemente festlegen. Wenn sie beispielsweise eine neue Datei erstellt, New-Item
können Sie der Datei anfänglichen Inhalt hinzufügen.
Beispiele
Beispiel 1: Erstellen einer Datei im aktuellen Verzeichnis
Mit diesem Befehl wird eine Textdatei mit dem Namen "testfile1.txt" im aktuellen Verzeichnis erstellt. Der Punkt ('.') im Wert des Path-Parameters gibt das aktuelle Verzeichnis an. Der an zitierte Text, der dem Value-Parameter folgt, wird der Datei als Inhalt hinzugefügt.
New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."
Beispiel 2: Erstellen eines Verzeichnisses
Mit diesem Befehl wird ein Verzeichnis namens "Logfiles" auf dem C:
Laufwerk erstellt. Der ItemType-Parameter gibt an, dass es sich bei dem neuen Element um ein Verzeichnis handelt, nicht um ein Datei- oder ein anderes Dateisystemobjekt.
New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"
Beispiel 3: Erstellen eines Profils
Mit diesem Befehl wird ein PowerShell-Profil im Pfad erstellt, der von der $profile
Variablen angegeben wird.
Sie können Profile verwenden, um PowerShell anzupassen. $profile
ist eine automatische (integrierte) Variable, die den Pfad und Dateinamen des Profils "CurrentUser/CurrentHost" speichert. Standardmäßig ist das Profil nicht vorhanden, obwohl PowerShell einen Pfad und Dateinamen dafür speichert.
In diesem Befehl stellt die $profile
Variable den Pfad der Datei dar. Der ItemType-Parameter gibt an, dass der Befehl eine Datei erstellt. Mit dem Parameter Force können Sie eine Datei im Profilpfad erstellen, auch wenn die Verzeichnisse im Pfad nicht vorhanden sind.
Nachdem Sie ein Profil erstellt haben, können Sie Aliase, Funktionen und Skripts in das Profil eingeben, um Ihre Shell anzupassen.
Weitere Informationen finden Sie unter about_Automatic_Variables und about_Profiles.
New-Item -Path $profile -ItemType "file" -Force
Beispiel 4: Erstellen eines Verzeichnisses in einem anderen Verzeichnis
In diesem Beispiel wird ein neues Skriptverzeichnis im Verzeichnis "C:\PS-Test" erstellt.
Der Name des neuen Verzeichniselements "Scripts" ist im Wert des Path-Parameters enthalten, anstatt im Wert des Namens angegeben zu werden. Gemäß Syntax kann der Befehl auf beide Weisen angegeben werden.
New-Item -ItemType "directory" -Path "c:\ps-test\scripts"
Beispiel 5: Erstellen mehrerer Dateien
In diesem Beispiel werden Dateien in zwei verschiedenen Verzeichnissen erstellt. Da Path mehrere Zeichenfolgen akzeptiert, können Sie sie verwenden, um mehrere Elemente zu erstellen.
New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"
Beispiel 6: Verwenden von Wildcards zum Erstellen von Dateien in mehreren Verzeichnissen
Das New-Item
Cmdlet unterstützt Wildcards im Path-Parameter . Mit dem folgenden Befehl wird eine temp.txt
Datei in allen Verzeichnissen erstellt, die von den Wildcards im Path-Parameter angegeben werden.
Get-ChildItem -Path C:\Temp\
Directory: C:\Temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 5/15/2019 6:45 AM 1 One
d----- 5/15/2019 6:45 AM 1 Two
d----- 5/15/2019 6:45 AM 1 Three
New-Item -Path C:\Temp\* -Name temp.txt -ItemType File | Select-Object FullName
FullName
--------
C:\Temp\One\temp.txt
C:\Temp\Three\temp.txt
C:\Temp\Two\temp.txt
Das Get-ChildItem
Cmdlet zeigt drei Verzeichnisse unter dem C:\Temp
Verzeichnis an. Mithilfe von Wildcards erstellt das New-Item
Cmdlet eine temp.txt
Datei in allen Verzeichnissen unter dem aktuellen Verzeichnis. Das New-Item
Cmdlet gibt die von Ihnen erstellten Elemente aus, die weitergeleitet werden, um die Pfade der neu erstellten Dateien zu Select-Object
überprüfen.
Beispiel 7: Erstellen einer symbolischen Verknüpfung zu einer Datei oder einem Ordner
In diesem Beispiel wird eine symbolische Verknüpfung mit der Notice.txt Datei im aktuellen Ordner erstellt.
$link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt
$link | Select-Object LinkType, Target
LinkType Target
-------- ------
SymbolicLink {.\Notice.txt}
In diesem Beispiel ist Target ein Alias für den Value-Parameter . Das Ziel der symbolischen Verknüpfung kann ein relativer Pfad sein. Vor PowerShell v6.2 muss das Ziel ein vollqualifizierter Pfad sein.
Ab PowerShell 7.1 können Sie nun mithilfe eines relativen Pfads zu einem Ordner unter Windows einen symbolischen Link erstellen.
Beispiel 8: Verwenden des Parameters "-Force", um zu versuchen, Ordner neu zu erstellen
In diesem Beispiel wird ein Ordner mit einer Datei erstellt. Versuchen Sie dann, denselben Ordner mithilfe von -Force
. Der Ordner wird nicht überschrieben, sondern einfach das vorhandene Ordnerobjekt mit der erstellten Datei zurückgegeben.
PS> New-Item -Path .\TestFolder -ItemType Directory
PS> New-Item -Path .\TestFolder\TestFile.txt -ItemType File
PS> New-Item -Path .\TestFolder -ItemType Directory -Force
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 5/1/2020 8:03 AM TestFolder
PS> Get-ChildItem .\TestFolder\
Directory: C:\TestFolder
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/1/2020 8:03 AM 0 TestFile.txt
Beispiel 9: Verwenden des Parameters "-Force", um vorhandene Dateien zu überschreiben
In diesem Beispiel wird eine Datei mit einem Wert erstellt und anschließend die Datei mithilfe -Force
von . Dadurch wird die vorhandene Datei überschrieben, wie Sie die Längeneigenschaft sehen können.
PS> New-Item ./TestFile.txt -ItemType File -Value 'This is just a test file'
Directory: C:\Source\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/1/2020 8:32 AM 24 TestFile.txt
New-Item ./TestFile.txt -ItemType File -Force
Directory: C:\Source\Test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/1/2020 8:32 AM 0 TestFile.txt
Hinweis
Bei Verwendung New-Item
mit dem -Force
Switch zum Erstellen von Registrierungsschlüsseln verhält sich der Befehl genauso wie beim Überschreiben einer Datei. Wenn der Registrierungsschlüssel bereits vorhanden ist, werden der Schlüssel und alle Eigenschaften und Werte mit einem leeren Registrierungsschlüssel überschrieben.
Parameter
-ApplicationName
Dies ist ein dynamischer Parameter, der vom WSMan-Anbieter zur Verfügung gestellt wird. Der WSMan-Anbieter und dieser Parameter sind nur unter Windows verfügbar.
Gibt den Anwendungsnamen in der Verbindung an. Der Standardwert des ApplicationName-Parameters ist WSMAN.
Weitere Informationen finden Sie unter New-WSManInstance.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Authentication
Dies ist ein dynamischer Parameter, der vom WSMan-Anbieter zur Verfügung gestellt wird. Der WSMan-Anbieter und dieser Parameter sind nur unter Windows verfügbar.
Gibt den Authentifizierungsmechanismus an, der auf dem Server verwendet werden soll.
Weitere Informationen finden Sie unter New-WSManInstance.
Typ: | AuthenticationMechanism |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-CertificateThumbprint
Dies ist ein dynamischer Parameter, der vom WSMan-Anbieter zur Verfügung gestellt wird. Der WSMan-Anbieter und dieser Parameter sind nur unter Windows verfügbar.
Gibt das Zertifikat für den digitalen öffentlichen Schlüssel (X509) eines Benutzerkontos an, das über die Berechtigung zum Ausführen dieser WSMan-Aktion verfügt. Geben Sie den Zertifikatfingerabdruck des Zertifikats ein.
Weitere Informationen finden Sie unter New-WSManInstance.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ConnectionURI
Dies ist ein dynamischer Parameter, der vom WSMan-Anbieter zur Verfügung gestellt wird. Der WSMan-Anbieter und dieser Parameter sind nur unter Windows verfügbar.
Gibt den Verbindungsendpunkt für WSMan an.
Weitere Informationen finden Sie unter New-WSManInstance.
Typ: | Uri |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Credential
Hinweis
Dieser Parameter wird von anbietern, die mit PowerShell installiert sind, nicht unterstützt. Verwenden Sie zum Invoke-Command
Identitätswechsel eines anderen Benutzers oder zum Erhöhen ihrer Anmeldeinformationen beim Ausführen dieses Cmdlets.
Typ: | PSCredential |
Position: | Named |
Standardwert: | Current user |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Force
Erzwingt dieses Cmdlet, ein Element zu erstellen, das über ein vorhandenes schreibgeschütztes Element schreibt. Die Implementierung unterscheidet sich bei den einzelnen Anbietern. Selbst bei Verwendung des Parameters Force kann das Cmdlet keine Sicherheitseinschränkungen außer Kraft setzen.
Ab PowerShell 7.4 können Sie mit diesem Parameter auch eine vorhandene Verbindung überschreiben. Bisher würde dies mit einem Fehler "kann nicht entfernt werden, weil er nicht leer ist" fehlschlagen.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ItemType
Gibt den vom Anbieter angegebenen Typ des neuen Elements an. Die verfügbaren Werte dieses Parameters hängen vom aktuellen Anbieter ab, den Sie verwenden.
Wenn sich Ihr Standort in einem FileSystem
Laufwerk befindet, sind die folgenden Werte zulässig:
File
Directory
SymbolicLink
Junction
HardLink
Hinweis
Für das Erstellen eines SymbolicLink
Typs unter Windows ist eine Erhöhung als Administrator erforderlich. Windows 10 (Build 14972 oder höher) mit aktivierter Entwicklermodus erfordert jedoch keine Erhöhungserweiterungen, die symbolische Verknüpfungen erstellen.
In einem Certificate
Laufwerk sind dies die Werte, die Sie angeben können:
Certificate Provider
Certificate
Store
StoreLocation
Weitere Informationen finden Sie unter about_Providers.
Typ: | String |
Aliase: | Type |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt den Namen des neuen Elements an. Sie können den Namen des neuen Elements im Wert des Parameters Name oder Path angeben, und Sie können den Pfad des neuen Elements im Namen - oder Pfadwert angeben. Elemente, die mit dem Parameter Name übergeben werden, werden relativ zum Wert des Path-Parameters erstellt.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Options
Dies ist ein dynamischer Parameter, der vom Aliasanbieter zur Verfügung gestellt wird. Weitere Informationen finden Sie unter "New-Alias".
Gibt den Wert der Options-Eigenschaft eines Alias an.
Gültige Werte sind:
None
: Der Alias hat keine Einschränkungen (Standardwert)ReadOnly
: Der Alias kann gelöscht werden, kann aber nicht geändert werden, ohne den Parameter Force zu verwenden.Constant
: Der Alias kann nicht gelöscht oder geändert werden.Private
: Der Alias ist nur im aktuellen Bereich verfügbar.AllScope
: Der Alias wird in alle neuen Bereiche kopiert, die erstellt werden.Unspecified
: Die Option ist nicht angegeben.
Typ: | ScopedItemOptions |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-OptionSet
Dies ist ein dynamischer Parameter, der vom WSMan-Anbieter zur Verfügung gestellt wird. Der WSMan-Anbieter und dieser Parameter sind nur unter Windows verfügbar.
Übergibt eine Reihe von Schaltern an einen Dienst, um die Art der Anforderung zu ändern oder zu verfeinern.
Weitere Informationen finden Sie unter New-WSManInstance.
Typ: | Hashtable |
Aliase: | OS |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Path
Gibt den Pfad des Speicherorts des neuen Elements an. Der Standardwert ist der aktuelle Speicherort, wenn Pfad weggelassen wird. Sie können den Namen des neuen Elements im Namen angeben oder in "Path" einschließen. Elemente, die mit dem Parameter Name übergeben werden, werden relativ zum Wert des Path-Parameters erstellt.
Für dieses Cmdlet funktioniert der Path-Parameter wie der LiteralPath-Parameter anderer Cmdlets.
Wildcardzeichen werden nicht interpretiert. Alle Zeichen werden an den Anbieter des Speicherorts übergeben. Der Anbieter unterstützt möglicherweise nicht alle Zeichen. Sie können beispielsweise keinen Dateinamen erstellen, der ein Sternchen (*
) enthält.
Typ: | String[] |
Position: | 0 |
Standardwert: | Current location |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Port
Dies ist ein dynamischer Parameter, der vom WSMan-Anbieter zur Verfügung gestellt wird. Der WSMan-Anbieter und dieser Parameter sind nur unter Windows verfügbar.
Gibt den Port an, der verwendet wird, wenn der Client eine Verbindung mit dem WinRM-Dienst herstellt.
Weitere Informationen finden Sie unter New-WSManInstance.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SessionOption
Dies ist ein dynamischer Parameter, der vom WSMan-Anbieter zur Verfügung gestellt wird. Der WSMan-Anbieter und dieser Parameter sind nur unter Windows verfügbar.
Definiert eine Reihe von erweiterten Optionen für die WS-Management-Sitzung.
Weitere Informationen finden Sie unter New-WSManInstance.
Typ: | SessionOption |
Aliase: | SO |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-UseSSL
Dies ist ein dynamischer Parameter, der vom WSMan-Anbieter zur Verfügung gestellt wird. Der WSMan-Anbieter und dieser Parameter sind nur unter Windows verfügbar.
Gibt an, dass das SSL (Secure Sockets Layer)-Protokoll verwendet werden soll, um eine Verbindung mit dem Remotecomputer herzustellen. Standardmäßig wird SSL nicht verwendet.
Weitere Informationen finden Sie unter New-WSManInstance.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Value
Gibt den Wert des neuen Elements an. Sie können auch einen Wert New-Item
an .
Typ: | Object |
Aliase: | Target |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können einen Wert für das neue Element an dieses Cmdlet weiterleiten.
Ausgaben
Das Cmdlet gibt ein DictionaryEntry-Objekt zurück, wenn eine neue Umgebungsvariable erstellt wird.
Das Cmdlet gibt ein DirectoryInfo-Objekt zurück, wenn ein neues Verzeichnis im Dateisystem erstellt wird.
Das Cmdlet gibt ein FileInfo-Objekt zurück, wenn eine neue Datei im Dateisystem erstellt wird.
Das Cmdlet gibt ein AliasInfo-Objekt zurück, wenn ein neuer Alias erstellt wird.
Das Cmdlet gibt ein FunctionInfo-Objekt zurück, wenn eine neue Funktion erstellt wird.
Das Cmdlet gibt ein PSVariable-Objekt zurück, wenn eine neue Variable erstellt wird.
Hinweise
PowerShell enthält die folgenden Aliase für New-Item
:
- Alle Plattformen:
ni
New-Item
ist für die Arbeit mit den Daten konzipiert, die von jedem Anbieter verfügbar gemacht werden. Geben Sie ein, um die in Ihrer Sitzung verfügbaren Anbieter auflisten zu können Get-PsProvider
. Weitere Informationen finden Sie unter about_Providers.