New-Item

Cria um novo item.

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

Description

O New-Item cmdlet cria um novo item e define seu valor. Os tipos de itens que podem ser criados dependem da localização do item. Por exemplo, no sistema de arquivos, New-Item cria arquivos e pastas. No Registro, New-Item cria chaves e entradas do Registro.

New-Item também pode definir o valor dos itens que cria. Por exemplo, quando ele cria um novo arquivo, New-Item pode adicionar conteúdo inicial ao arquivo.

Exemplos

Exemplo 1: Criar um arquivo no diretório atual

Este comando cria um arquivo de texto chamado "testfile1.txt" no diretório atual. O ponto ('.') no valor do parâmetro Path indica o diretório atual. O texto citado que segue o parâmetro Value é adicionado ao arquivo como conteúdo.

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

Exemplo 2: Criar um diretório

Este comando cria um diretório chamado "Logfiles" na C: unidade. O parâmetro ItemType especifica que o novo item é um diretório, não um arquivo ou outro objeto do sistema de arquivos.

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

Exemplo 3: Criar um perfil

Este comando cria um perfil do PowerShell no caminho especificado pela $profile variável.

Você pode usar perfis para personalizar o PowerShell. $profile é uma variável automática (interna) que armazena o caminho e o nome do arquivo do perfil "CurrentUser/CurrentHost". Por padrão, o perfil não existe, mesmo que o PowerShell armazene um caminho e um nome de arquivo para ele.

Neste comando, a $profile variável representa o caminho do arquivo. O parâmetro ItemType especifica que o comando cria um arquivo. O parâmetro Force permite criar um arquivo no caminho do perfil, mesmo quando os diretórios no caminho não existem.

Depois de criar um perfil, você pode inserir aliases, funções e scripts no perfil para personalizar seu shell.

Para obter mais informações, consulte about_Automatic_Variables e about_Profiles.

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

Exemplo 4: Criar um diretório em um diretório diferente

Este exemplo cria um novo diretório Scripts no diretório "C:\PS-Test".

O nome do novo item de diretório, "Scripts", é incluído no valor do parâmetro Path , em vez de ser especificado no valor de Name. Conforme indicado pela sintaxe, qualquer forma de comando é válida.

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

Exemplo 5: Criar vários arquivos

Este exemplo cria arquivos em dois diretórios diferentes. Como o Path usa várias cadeias de caracteres, você pode usá-lo para criar vários itens.

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

Exemplo 6: Usar curingas para criar arquivos em vários diretórios

O New-Item cmdlet oferece suporte a curingas no parâmetro Path . O comando a seguir cria um temp.txt arquivo em todos os diretórios especificados pelos curingas no parâmetro 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

O Get-ChildItem cmdlet mostra três diretórios sob o C:\Temp diretório. Usando curingas, o New-Item cmdlet cria um temp.txt arquivo em todos os diretórios do diretório atual. O New-Item cmdlet gera a saída dos itens que você criou, que são canalizados para Select-Object verificar os caminhos dos arquivos recém-criados.

Este exemplo cria um link simbólico para o arquivo Notice.txt na pasta atual.

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

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

Neste exemplo, Target é um alias para o parâmetro Value . O alvo do link simbólico pode ser um caminho relativo. Antes do PowerShell v6.2, o destino deve ser um caminho totalmente qualificado.

A partir do PowerShell 7.1, agora você pode criar um SymbolicLink para uma pasta no Windows usando um caminho relativo.

Exemplo 8: Use o parâmetro -Force para tentar recriar pastas

Este exemplo cria uma pasta com um arquivo dentro. Em seguida, tenta criar a mesma pasta usando -Forceo . Ele não substituirá a pasta, mas simplesmente retornará o objeto de pasta existente com o arquivo criado intacto.

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

Exemplo 9: Use o parâmetro -Force para substituir arquivos existentes

Este exemplo cria um arquivo com um valor e, em seguida, recria o arquivo usando -Force. Isso substitui o arquivo existente, como você pode ver pela propriedade 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

Ao usar New-Item com o -Force switch para criar chaves do Registro, o comando se comportará da mesma forma que ao substituir um arquivo. Se a chave do Registro já existir, a chave e todas as propriedades e valores serão substituídos por uma chave do Registro vazia.

Parâmetros

-ApplicationName

Este é um parâmetro dinâmico disponibilizado pelo provedor WSMan . O provedor WSMan e esse parâmetro só estão disponíveis no Windows.

Especifica o nome do aplicativo na conexão. O valor padrão do parâmetro ApplicationName é WSMAN.

Para obter mais informações, consulte New-WSManInstance.

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

-Authentication

Este é um parâmetro dinâmico disponibilizado pelo provedor WSMan . O provedor WSMan e esse parâmetro só estão disponíveis no Windows.

Especifica o mecanismo de autenticação a ser usado no servidor.

Para obter mais informações, consulte New-WSManInstance.

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

-CertificateThumbprint

Este é um parâmetro dinâmico disponibilizado pelo provedor WSMan . O provedor WSMan e esse parâmetro só estão disponíveis no Windows.

Especifica o certificado de chave pública digital (X509) de uma conta de usuário que tem permissão para executar essa ação WSMan. Insira a impressão digital do certificado.

Para obter mais informações, consulte New-WSManInstance.

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

-Confirm

Solicita a sua confirmação antes de executar o cmdlet.

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

-ConnectionURI

Este é um parâmetro dinâmico disponibilizado pelo provedor WSMan . O provedor WSMan e esse parâmetro só estão disponíveis no Windows.

Especifica o ponto de extremidade de conexão para o WSMan.

Para obter mais informações, consulte New-WSManInstance.

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

-Credential

Nota

Esse parâmetro não é suportado por nenhum provedor instalado com o PowerShell. Para representar outro usuário ou elevar suas credenciais ao executar este cmdlet, use Invoke-Command.

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

-Force

Força esse cmdlet a criar um item que grava sobre um item somente leitura existente. A implementação varia de fornecedor para fornecedor. Mesmo usando o parâmetro Force , o cmdlet não pode substituir restrições de segurança.

A partir do PowerShell 7.4, esse parâmetro também permite substituir uma junção existente. Anteriormente, isso falharia com um erro "não pode ser removido porque não está vazio".

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

-ItemType

Especifica o tipo especificado pelo provedor do novo item. Os valores disponíveis desse parâmetro dependem do provedor atual que você está usando.

Se a sua localização estiver numa FileSystem unidade, são permitidos os seguintes valores:

  • Ficheiro
  • Diretório
  • SymbolicLink
  • Entroncamento
  • HardLink

Nota

Criar um SymbolicLink tipo no Windows requer elevação como administrador. No entanto, o Windows 10 (compilação 14972 ou mais recente) com o Modo de Desenvolvedor habilitado não requer mais elevação criando links simbólicos.

Em uma Certificate unidade, estes são os valores que você pode especificar:

  • Provedor de certificados
  • Certificado
  • Armazenamento
  • StoreLocation

Para obter mais informações, consulte about_Providers.

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

-Name

Especifica o nome do novo item. Você pode especificar o nome do novo item no valor do parâmetro Name ou Path e pode especificar o caminho do novo item no valor Name ou Path . Os nomes de itens passados usando o parâmetro Name são criados em relação ao valor do parâmetro Path .

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

-Options

Este é um parâmetro dinâmico disponibilizado pelo provedor Alias . Para obter mais informações, consulte New-Alias.

Especifica o valor da propriedade Options de um alias.

Os valores válidos são:

  • None: O alias não tem restrições (valor padrão)
  • ReadOnly: O alias pode ser excluído, mas não pode ser alterado sem usar o parâmetro Force
  • Constant: O alias não pode ser excluído ou alterado
  • Private: O alias está disponível apenas no escopo atual
  • AllScope: O alias é copiado para todos os novos escopos criados
  • Unspecified: A opção não está especificada
Type:ScopedItemOptions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OptionSet

Este é um parâmetro dinâmico disponibilizado pelo provedor WSMan . O provedor WSMan e esse parâmetro só estão disponíveis no Windows.

Passa um conjunto de opções para um serviço para modificar ou refinar a natureza da solicitação.

Para obter mais informações, consulte New-WSManInstance.

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

-Path

Especifica o caminho do local do novo item. O padrão é o local atual quando Path é omitido. Você pode especificar o nome do novo item em Nome ou incluí-lo no Caminho. Os nomes de itens passados usando o parâmetro Name são criados em relação ao valor do parâmetro Path .

Para este cmdlet, o parâmetro Path funciona como o parâmetro LiteralPath de outros cmdlets. Os caracteres curinga não são interpretados. Todos os caracteres são passados para o provedor do local. O provedor pode não suportar todos os caracteres. Por exemplo, não é possível criar um nome de arquivo que contenha um caractere de asterisco (*).

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

-Port

Este é um parâmetro dinâmico disponibilizado pelo provedor WSMan . O provedor WSMan e esse parâmetro só estão disponíveis no Windows.

Especifica a porta a ser usada quando o cliente se conecta ao serviço WinRM.

Para obter mais informações, consulte New-WSManInstance.

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

-SessionOption

Este é um parâmetro dinâmico disponibilizado pelo provedor WSMan . O provedor WSMan e esse parâmetro só estão disponíveis no Windows.

Define um conjunto de opções estendidas para a sessão WS-Management.

Para obter mais informações, consulte New-WSManInstance.

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

-UseSSL

Este é um parâmetro dinâmico disponibilizado pelo provedor WSMan . O provedor WSMan e esse parâmetro só estão disponíveis no Windows.

Especifica que o protocolo SSL (Secure Sockets Layer) deve ser usado para estabelecer uma conexão com o computador remoto. Por padrão, o SSL não é usado.

Para obter mais informações, consulte New-WSManInstance.

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

-Value

Especifica o valor do novo item. Você também pode canalizar um valor para New-Item.

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

-WhatIf

Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.

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

Entradas

Object

Você pode canalizar um valor para o novo item para este cmdlet.

Saídas

DictionaryEntry

O cmdlet retorna um objeto DictionaryEntry ao criar uma nova variável de ambiente.

DirectoryInfo

O cmdlet retorna um objeto DirectoryInfo ao criar um novo diretório no sistema de arquivos.

FileInfo

O cmdlet retorna um objeto FileInfo ao criar um novo arquivo no sistema de arquivos.

AliasInfo

O cmdlet retorna um objeto AliasInfo ao criar um novo alias.

FunctionInfo

O cmdlet retorna um objeto FunctionInfo ao criar uma nova função.

PSVariable

O cmdlet retorna um objeto PSVariable ao criar uma nova variável.

Notas

O PowerShell inclui os seguintes aliases para New-Item:

  • Todas as plataformas:
    • ni

New-Item é projetado para trabalhar com os dados expostos por qualquer provedor. Para listar os provedores disponíveis em sua sessão, digite Get-PsProvider. Para obter mais informações, consulte about_Providers.