Freigeben über


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 -Forcevon . 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-CommandIdentitä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-Iteman .

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

Object

Sie können einen Wert für das neue Element an dieses Cmdlet weiterleiten.

Ausgaben

DictionaryEntry

Das Cmdlet gibt ein DictionaryEntry-Objekt zurück, wenn eine neue Umgebungsvariable erstellt wird.

DirectoryInfo

Das Cmdlet gibt ein DirectoryInfo-Objekt zurück, wenn ein neues Verzeichnis im Dateisystem erstellt wird.

FileInfo

Das Cmdlet gibt ein FileInfo-Objekt zurück, wenn eine neue Datei im Dateisystem erstellt wird.

AliasInfo

Das Cmdlet gibt ein AliasInfo-Objekt zurück, wenn ein neuer Alias erstellt wird.

FunctionInfo

Das Cmdlet gibt ein FunctionInfo-Objekt zurück, wenn eine neue Funktion erstellt wird.

PSVariable

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.