当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] New-Item (Microsoft.PowerShell.Management)

作者:精品下载站 日期:2024-12-14 02:11:48 浏览:16 分类:玩电脑

New-Item (Microsoft.PowerShell.Management)


New-Item

模块 :Microsoft.PowerShell.Management

创建一个新项目。

句法

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

描述

New-Item cmdlet 创建一个新项目并设置其值。可以创建的项目类型取决于项目的位置。例如,在文件系统中,New-Item 创建文件和文件夹。在注册表中,New-Item 创建注册表项和条目。

New-Item 还可以设置它创建的项目的值。例如,当它创建一个新文件时,New-Item 可以向该文件添加初始内容。

示例

示例1:在当前目录创建文件

此命令在当前目录中创建一个名为“testfile1.txt”的文本文件。 Path 参数值中的点(“.”)表示当前目录。 Value 参数后面的引用文本将作为内容添加到文件中。

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

示例2:创建目录

此命令在 C: 驱动器中创建一个名为“Logfiles”的目录。 ItemType 参数指定新项目是目录,而不是文件或其他文件系统对象。

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

示例 3:创建配置文件

此命令在 $profile 变量指定的路径中创建 PowerShell 配置文件。

您可以使用配置文件来自定义 PowerShell。 $profile 是一个自动(内置)变量,用于存储“CurrentUser/CurrentHost”配置文件的路径和文件名。默认情况下,该配置文件不存在,即使 PowerShell 为其存储了路径和文件名。

在此命令中,$profile 变量表示文件的路径。 ItemType 参数指定该命令创建文件。 Force 参数允许您在配置文件路径中创建文件,即使路径中的目录不存在也是如此。

创建配置文件后,您可以在配置文件中输入别名、函数和脚本来自定义 shell。

有关详细信息,请参阅 about_Automatic_Variables 和 about_Profiles。

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

示例 4:在不同目录中创建目录

此示例在“C:\PS-Test”目录中创建一个新的 Scripts 目录。

新目录项的名称“Scripts”包含在Path 参数的值中,而不是在Name 的值中指定。如语法所示,任一命令形式都是有效的。

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

示例 5:创建多个文件

此示例在两个不同的目录中创建文件。由于 Path 采用多个字符串,因此您可以使用它来创建多个项目。

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

示例 6:使用通配符在多个目录中创建文件

New-Item cmdlet 支持在 Path 参数中使用通配符。以下命令在 Path 参数中通配符指定的所有目录中创建一个 temp.txt 文件。

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

Get-ChildItem cmdlet 显示 C:\Temp 目录下的三个目录。 New-Item cmdlet 使用通配符在当前目录下的所有目录中创建一个 temp.txt 文件。 New-Item cmdlet 输出您创建的项目,该项目通过管道传输到 Select-Object 以验证新创建的文件的路径。

示例 7:创建文件或文件夹的符号链接

此示例创建指向当前文件夹中的Notice.txt 文件的符号链接。

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

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

在此示例中,TargetValue 参数的别名。符号链接的目标可以是相对路径。在 PowerShell v6.2 之前,目标必须是完全限定路径。

从 PowerShell 7.1 开始,您现在可以使用相对路径创建 Windows 上文件夹的 SymbolicLink

示例 8:使用 -Force 参数尝试重新创建文件夹

此示例创建一个文件夹,其中包含一个文件。然后,尝试使用 -Force 创建相同的文件夹。它不会覆盖文件夹,而只是返回现有的文件夹对象以及完整创建的文件。

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

示例 9:使用 -Force 参数覆盖现有文件

此示例创建一个带有值的文件,然后使用 -Force 重新创建该文件。这将覆盖现有文件,正如您可以通过 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

笔记

当使用 New-Item-Force 开关创建注册表项时,该命令的行为与覆盖文件时的行为相同。如果注册表项已存在,则该注册表项以及所有属性和值将被空注册表项覆盖。

参数

-ApplicationName

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定连接中的应用程序名称。 ApplicationName 参数的默认值为WSMAN

有关更多信息,请参阅New-WSManInstance。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Authentication

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定要在服务器上使用的身份验证机制。

有关更多信息,请参阅New-WSManInstance。

类型 :

AuthenticationMechanism

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-CertificateThumbprint

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定有权执行此 WSMan 操作的用户帐户的数字公钥证书 (X509)。输入证书的证书指纹。

有关更多信息,请参阅New-WSManInstance。

类型 :

String

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Confirm

在运行 cmdlet 之前提示您进行确认。

类型 :

SwitchParameter

别名:

cf

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-ConnectionURI

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定 WSMan 的连接端点。

有关更多信息,请参阅New-WSManInstance。

类型 :

乌里

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-Credential

笔记

随 PowerShell 安装的任何提供程序均不支持此参数。要在运行此 cmdlet 时模拟其他用户或提升您的凭据,请使用 Invoke-Command

类型 :

PS凭证

位置:

命名

默认值:

当前用户

必需的:

False

接受管道输入:

True

接受通配符:

False

-Force

强制此 cmdlet 创建一个项目来覆盖现有的只读项目。实施方式因提供商而异。即使使用 Force 参数,cmdlet 也无法覆盖安全限制。

从 PowerShell 7.4 开始,此参数还允许您覆盖现有的 Junction。以前,此操作会失败并出现“无法删除,因为它不为空”错误。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-ItemType

指定新项目的提供者指定类型。此参数的可用值取决于您当前使用的提供程序。

如果您的位置位于 FileSystem 驱动器中,则允许使用以下值:

  • 文件
  • 目录
  • SymbolicLink
  • 交界处
  • HardLink

笔记

在 Windows 上创建 SymbolicLink 类型需要提升为管理员。但是,启用了开发人员模式的 Windows 10(内部版本 14972 或更高版本)不再需要提升创建符号链接。

Certificate 驱动器中,您可以指定以下值:

  • 证书提供者
  • 证书
  • 店铺
  • StoreLocation

有关详细信息,请参阅 about_Providers。

类型 :

String

别名:

Type

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-Name

指定新项目的名称。您可以在NamePath参数值中指定新项目的名称,并且可以在Name中指定新项目的路径或路径值。使用 Name 参数传递的项目名称是相对于 Path 参数的值创建的。

类型 :

String

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-Options

这是别名提供商提供的动态参数。有关更多信息,请参阅新别名。

指定别名的选项属性的值。

有效值为:

  • None:别名没有限制(默认值)
  • ReadOnly:可以删除别名,但如果不使用Force参数则无法更改别名
  • 常量:别名无法删除或更改
  • Private:别名仅在当前范围内可用
  • AllScope:别名被复制到创建的任何新范围
  • 未指定:未指定该选项
类型 :

范围项选项

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-OptionSet

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

将一组开关传递给服务以修改或细化请求的性质。

有关更多信息,请参阅New-WSManInstance。

类型 :

哈希表

别名:

OS

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Path

指定新项目位置的路径。当省略 Path 时,默认值为当前位置。您可以在名称中指定新项目的名称,或将其包含在路径中。使用Name参数传递的项目名称是相对于Path参数的值创建的。

对于此 cmdlet,Path 参数的工作方式与其他 cmdlet 的 LiteralPath 参数类似。不解释通配符。所有字符都会传递给位置的提供者。提供商可能不支持所有字符。例如,您无法创建包含星号 (*) 字符的文件名。

类型 :

String[]

位置:

0

默认值:

当前位置

必需的:

False

接受管道输入:

True

接受通配符:

False

-Port

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定客户端连接到 WinRM 服务时要使用的端口。

有关更多信息,请参阅New-WSManInstance。

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-SessionOption

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

为 WS-Management 会话定义一组扩展选项。

有关更多信息,请参阅New-WSManInstance。

类型 :

SessionOption

别名:

SO

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-UseSSL

这是 WSMan 提供程序提供的动态参数。 WSMan 提供程序和此参数仅在 Windows 上可用。

指定应使用安全套接字层 (SSL) 协议建立与远程计算机的连接。默认情况下,不使用 SSL。

有关更多信息,请参阅New-WSManInstance。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Value

指定新项目的值。您还可以通过管道将值传递给 New-Item

类型 :

目的

别名:

Target

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-WhatIf

显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。

类型 :

SwitchParameter

别名:

wi

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

对象

您可以通过管道将新项目的值传递给此 cmdlet。

输出

字典条目

创建新环境变量时,cmdlet 返回一个 DictionaryEntry 对象。

目录信息

在文件系统中创建新目录时,cmdlet 返回一个 DirectoryInfo 对象。

文件信息

在文件系统中创建新文件时,cmdlet 返回一个 FileInfo 对象。

别名信息

创建新别名时,cmdlet 返回 AliasInfo 对象。

功能信息

创建新函数时,cmdlet 返回一个 FunctionInfo 对象。

PS变量

创建新变量时,cmdlet 返回一个 PSVariable 对象。

笔记

PowerShell 包含以下 New-Item 别名:

  • 所有平台:

      ni

    New-Item 旨在处理任何提供者公开的数据。要列出会话中可用的提供程序,请输入 Get-PsProvider。有关详细信息,请参阅 about_Providers。

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯