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.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | AuthenticationMechanism |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | Uri |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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
.
Tipo: | PSCredential |
Posizione: | Named |
Valore predefinito: | Current user |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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".
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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
SymbolicLink
Junction
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:
Certificate Provider
Certificate
Store
StoreLocation
Per altre informazioni, vedere about_Providers.
Tipo: | String |
Alias: | Type |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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 .
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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 ForceConstant
: l'alias non può essere eliminato o modificatoPrivate
: l'alias è disponibile solo nell'ambito correnteAllScope
: l'alias viene copiato in tutti i nuovi ambiti creatiUnspecified
: l'opzione non è specificata
Tipo: | ScopedItemOptions |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | Hashtable |
Alias: | OS |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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 (*
).
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | Current location |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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.
Tipo: | Int32 |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | SessionOption |
Alias: | SO |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Value
Specifica il valore del nuovo elemento. È anche possibile inviare tramite pipe un valore a New-Item
.
Tipo: | Object |
Alias: | Target |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe un valore per il nuovo elemento a questo cmdlet.
Output
Il cmdlet restituisce un oggetto DictionaryEntry durante la creazione di una nuova variabile di ambiente.
Il cmdlet restituisce un oggetto DirectoryInfo durante la creazione di una nuova directory nel file system.
Il cmdlet restituisce un oggetto FileInfo durante la creazione di un nuovo file nel file system.
Il cmdlet restituisce un oggetto AliasInfo durante la creazione di un nuovo alias.
Il cmdlet restituisce un oggetto FunctionInfo durante la creazione di una nuova funzione.
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.