New-Item

Crea un nuovo elemento.

Sintassi

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>]

Descrizione

Il New-Item cmdlet crea un nuovo elemento e ne imposta il valore. I tipi di elementi che possono essere creati dipendono dalla posizione dell'elemento. Nel file system, ad esempio, New-Item crea file e cartelle. Nel Registro di sistema vengono create le chiavi e le voci del Registro di sistema New-Item .

New-Item può anche impostare il valore degli elementi creati. Ad esempio, quando crea un nuovo file, New-Item può aggiungere contenuto iniziale al file.

Esempio

Esempio 1: Creare un file nella directory corrente

Questo comando crea un file di testo denominato "testfile1.txt" nella directory corrente. Il punto ('.') nel valore del parametro Path indica la directory corrente. Il testo racchiuso tra virgolette che segue il parametro Value viene aggiunto al file come contenuto.

New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."

Esempio 2: Creare una directory

Questo comando crea una directory denominata "Logfiles" nell'unità C: . Il parametro ItemType specifica che il nuovo elemento è una directory, non un file o un altro oggetto file system.

New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"

Esempio 3: Creare un profilo

Questo comando crea un profilo di PowerShell nel percorso specificato dalla $profile variabile .

È possibile usare i profili per personalizzare PowerShell. $profile è una variabile automatica (predefinita) che archivia il percorso e il nome file del profilo "CurrentUser/CurrentHost". Per impostazione predefinita, il profilo non esiste, anche se PowerShell archivia un percorso e un nome di file.

In questo comando la $profile variabile rappresenta il percorso del file. Il parametro ItemType specifica che il comando crea un file. Il parametro Force consente di creare un file nel percorso del profilo, anche quando le directory nel percorso non esistono.

Dopo aver creato un profilo, è possibile immettere alias, funzioni e script nel profilo per personalizzare la shell.

Per altre informazioni, vedere about_Automatic_Variables e about_Profiles.

New-Item -Path $profile -ItemType "file" -Force

Esempio 4: Creare una directory in una directory diversa

In questo esempio viene creata una nuova directory Scripts nella directory "C:\PS-Test".

Il nome del nuovo elemento di directory, "Scripts", è incluso nel valore del parametro Path , anziché essere specificato nel valore di Name. Come indicato dalla sintassi, entrambe le forme sono valide.

New-Item -ItemType "directory" -Path "c:\ps-test\scripts"

Esempio 5: Creare più file

In questo esempio vengono creati file in due directory diverse. Poiché Path accetta più stringhe, è possibile usarlo per creare più elementi.

New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"

Esempio 6: Usare caratteri jolly per creare file in più directory

Il New-Item cmdlet supporta i caratteri jolly nel parametro Path . Il comando seguente crea un temp.txt file in tutte le directory specificate dai caratteri jolly nel parametro Path .

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

Il Get-ChildItem cmdlet mostra tre directory nella C:\Temp directory . Usando i caratteri jolly, il New-Item cmdlet crea un temp.txt file in tutte le directory nella directory corrente. Il New-Item cmdlet restituisce gli elementi creati, che viene inviato tramite pipe a Select-Object per verificare i percorsi dei file appena creati.

Esempio 7: Creare un collegamento simbolico a un file o una cartella

In questo esempio viene creato un collegamento simbolico al file Notice.txt nella cartella corrente.

$link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt
$link | Select-Object LinkType, Target

LinkType     Target
--------     ------
SymbolicLink {.\Notice.txt}

In questo esempio Target è un alias per il parametro Value. La destinazione del collegamento simbolico può essere un percorso relativo. Prima di PowerShell v6.2, la destinazione deve essere un percorso completo.

A partire da PowerShell 7.1, è ora possibile creare un oggetto SymbolicLink a una cartella in Windows usando un percorso relativo.

Esempio 8: Usare il parametro -Force per tentare di ricreare le cartelle

In questo esempio viene creata una cartella con un file all'interno di . Tenta quindi di creare la stessa cartella usando -Force. Non sovrascriverà la cartella, ma restituirà semplicemente l'oggetto cartella esistente con il file creato intatto.

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

Esempio 9: Usare il parametro -Force per sovrascrivere i file esistenti

In questo esempio viene creato un file con un valore e quindi viene ricreato il file usando -Force. In questo modo viene sovrascritto il file esistente, come si può vedere dalla proprietà length.

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

Nota

Quando si usa New-Item con l'opzione per creare chiavi del -Force Registro di sistema, il comando si comporta come quando si sovrascrive un file. Se la chiave del Registro di sistema esiste già, la chiave e tutti i valori e le proprietà verranno sovrascritti con una chiave del Registro di sistema vuota.

Parametri

-ApplicationName

Si tratta di un parametro dinamico reso disponibile dal provider WSMan . Il provider WSMan e questo parametro sono disponibili solo in Windows.

Specifica il nome dell'applicazione nella connessione. Il valore predefinito del parametro ApplicationName è WSMAN.

Per altre informazioni, vedere New-WSManInstance.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authentication

Si tratta di un parametro dinamico reso disponibile dal provider WSMan . Il provider WSMan e questo parametro sono disponibili solo in Windows.

Specifica il meccanismo di autenticazione da utilizzare nel server.

Per altre informazioni, vedere New-WSManInstance.

Type:AuthenticationMechanism
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Si tratta di un parametro dinamico reso disponibile dal provider WSMan . Il provider WSMan e questo parametro sono disponibili solo in Windows.

Specifica il certificato di chiave pubblica digitale (X509) di un account utente autorizzato a eseguire questa azione WSMan. Immettere l'identificazione personale del certificato.

Per altre informazioni, vedere New-WSManInstance.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionURI

Si tratta di un parametro dinamico reso disponibile dal provider WSMan . Il provider WSMan e questo parametro sono disponibili solo in Windows.

Specifica l'endpoint di connessione per WSMan.

Per altre informazioni, vedere New-WSManInstance.

Type:Uri
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Nota

Questo parametro non è supportato da alcun provider installato con PowerShell. Per rappresentare un altro utente o elevare le credenziali quando si esegue questo cmdlet, usare Invoke-Command.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

Forza questo cmdlet a creare un elemento che scrive su un elemento di sola lettura esistente. L'implementazione varia a seconda del provider. Anche usando il parametro Force , il cmdlet non può eseguire l'override delle restrizioni di sicurezza.

A partire da PowerShell 7.4, questo parametro consente anche di sovrascrivere una giunzione esistente. In precedenza, l'errore "non può essere rimosso perché non è vuoto".

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ItemType

Specifica il tipo specificato dal provider del nuovo elemento. I valori disponibili di questo parametro dipendono dal provider corrente in uso.

Se la posizione si trova in un'unità FileSystem , sono consentiti i valori seguenti:

  • file
  • Directory
  • SimbolicoLink
  • giunzione
  • HardLink

Nota

La creazione di un SymbolicLink tipo in Windows richiede l'elevazione dei privilegi come amministratore. Tuttavia, Windows 10 (build 14972 o versione successiva) con la modalità sviluppatore abilitato non richiede più la creazione di collegamenti simbolici.

In un'unità Certificate , questi sono i valori che è possibile specificare:

  • Provider Certificate
  • Certificate
  • Punto vendita
  • StoreLocation

Per altre informazioni, vedere about_Providers.

Type:String
Aliases:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Specifica il nome del nuovo elemento. È possibile specificare il nome del nuovo elemento nel valore del parametro Name o Path ed è possibile specificare il percorso del nuovo elemento in Nome o Percorso . I nomi degli elementi passati usando il parametro Name vengono creati in relazione al valore del parametro Path .

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Options

Si tratta di un parametro dinamico reso disponibile dal provider alias . Per altre informazioni, vedere New-Alias.

Specifica il valore della proprietà Options di un alias.

I valori validi sono:

  • None: l'alias non ha vincoli (valore predefinito)
  • ReadOnly: l'alias può essere eliminato ma non può essere modificato senza usare il parametro Force
  • Constant: l'alias non può essere eliminato o modificato
  • Private: l'alias è disponibile solo nell'ambito corrente
  • AllScope: l'alias viene copiato in tutti i nuovi ambiti creati
  • Unspecified: l'opzione non è specificata
Type:ScopedItemOptions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OptionSet

Si tratta di un parametro dinamico reso disponibile dal provider WSMan . Il provider WSMan e questo parametro sono disponibili solo in Windows.

Passa un set di opzioni a un servizio per modificare oppure ottimizzare la natura della richiesta.

Per altre informazioni, vedere New-WSManInstance.

Type:Hashtable
Aliases:OS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Specifica il percorso del nuovo elemento. Il valore predefinito è il percorso corrente quando Path viene omesso. È possibile specificare il nome del nuovo elemento in Nome o includerlo in Path. I nomi degli elementi passati usando il parametro Name vengono creati in relazione al valore del parametro Path .

Per questo cmdlet, il parametro Path funziona come il parametro LiteralPath di altri cmdlet. I caratteri jolly non vengono interpretati. Tutti i caratteri vengono passati al provider del percorso. Il provider potrebbe non supportare tutti i caratteri. Ad esempio, non è possibile creare un nome file contenente un carattere asterisco (*).

Type:String[]
Position:0
Default value:Current location
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Port

Si tratta di un parametro dinamico reso disponibile dal provider WSMan . Il provider WSMan e questo parametro sono disponibili solo in Windows.

Specifica la porta da usare quando il client stabilisce la connessione al servizio Gestione remota Windows.

Per altre informazioni, vedere New-WSManInstance.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionOption

Si tratta di un parametro dinamico reso disponibile dal provider WSMan . Il provider WSMan e questo parametro sono disponibili solo in Windows.

Definisce un set di opzioni estese per la sessione di WS-Management.

Per altre informazioni, vedere New-WSManInstance.

Type:SessionOption
Aliases:SO
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseSSL

Si tratta di un parametro dinamico reso disponibile dal provider WSMan . Il provider WSMan e questo parametro sono disponibili solo in Windows.

Specifica che è necessario usare il protocollo SSL (Secure Sockets Layer) per stabilire una connessione al computer remoto. Per impostazione predefinita, SSL non viene usato.

Per altre informazioni, vedere New-WSManInstance.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Value

Specifica il valore del nuovo elemento. È anche possibile inviare tramite pipe un valore a New-Item.

Type:Object
Aliases:Target
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

Object

È possibile inviare tramite pipe un valore per il nuovo elemento a questo cmdlet.

Output

DictionaryEntry

Il cmdlet restituisce un oggetto DictionaryEntry durante la creazione di una nuova variabile di ambiente.

DirectoryInfo

Il cmdlet restituisce un oggetto DirectoryInfo durante la creazione di una nuova directory nel file system.

FileInfo

Il cmdlet restituisce un oggetto FileInfo durante la creazione di un nuovo file nel file system.

AliasInfo

Il cmdlet restituisce un oggetto AliasInfo durante la creazione di un nuovo alias.

FunctionInfo

Il cmdlet restituisce un oggetto FunctionInfo durante la creazione di una nuova funzione.

PSVariable

Il cmdlet restituisce un oggetto PSVariable durante la creazione di una nuova variabile.

Note

PowerShell include gli alias seguenti per New-Item:

  • Tutte le piattaforme:
    • ni

New-Item è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PsProvider. Per altre informazioni, vedere about_Providers.