Share via


New-Item

新しい項目を作成します。

構文

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 新しい項目を作成し、その値を設定します。 作成できる項目の種類は、項目の場所によって異なります。 たとえば、ファイル システムでは、 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: ディレクトリを作成する

このコマンドは、ドライブに "Logfiles" という名前のディレクトリを C: 作成します。 ItemType パラメーターは、新しい項目がファイルやその他のファイル システム オブジェクトではなくディレクトリであることを指定します。

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

例 3: プロファイルを作成する

このコマンドは、変数で指定されたパスに PowerShell プロファイルを $profile 作成します。

プロファイルを使用して PowerShell をカスタマイズできます。 $profile は、"CurrentUser/CurrentHost" プロファイルのパスとファイル名を格納する自動 (組み込み) 変数です。 既定では、PowerShell にパスとファイル名が格納されている場合でも、プロファイルは存在しません。

このコマンドでは、変数は $profile ファイルのパスを表します。 ItemType パラメーターは、コマンドがファイルを作成することを指定します。 Force パラメーターを使用すると、パス内のディレクトリが存在しない場合でも、プロファイル パスにファイルを作成できます。

プロファイルを作成したら、プロファイルにエイリアス、関数、スクリプトを入力してシェルをカスタマイズできます。

詳細については、「about_Automatic_Variablesとabout_Profiles」を参照してください

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

例 4: 別のディレクトリにディレクトリを作成する

この例では、"C:\PS-Test" ディレクトリに新しい Scripts ディレクトリを作成します。

新しいディレクトリ項目 "Scripts" の名前は、Name の値に指定されるのではなく、Path パラメーターの値に含まれます。 構文に示すとおり、どちらのコマンド形式も有効です。

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

例 5: 複数のファイルを作成する

この例では、2 つの異なるディレクトリにファイルを作成します。 Path は複数の文字列を受け取るため、それを使用して複数の項目を作成できます。

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

例 6: ワイルドカードを使用して複数のディレクトリにファイルを作成する

このコマンドレットはNew-Item、Path パラメーターでワイルドカードをサポートしています。 次のコマンドは、temp.txtPath パラメーターの wildカード で指定されたすべてのディレクトリにファイルを作成します。

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 、ディレクトリの下に 3 つのディレクトリを C:\Temp 表示します。 ワイルドカードコマンドレットNew-Itemを使用すると、現在のディレクトリのすべてのディレクトリにファイルが作成temp.txtされます。 コマンドレットは New-Item 、新しく作成したファイルのパスを確認するために 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}

この例では、Target は Value パラメーターのエイリアスです。 シンボリック リンクのターゲットには、相対パスを指定できます。 PowerShell v6.2 より前のバージョンでは、ターゲットは完全修飾パスである必要があります。

PowerShell 7.1 以降では、相対パスを 使用して Windows 上のフォルダーへのシンボリック リンク を作成できるようになりました。

例 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

Note

スイッチを-Force使用してNew-Itemレジストリ キーを作成する場合、コマンドはファイルを上書きする場合と同じように動作します。 レジストリ キーが既に存在する場合、キーとすべてのプロパティと値は空のレジストリ キーで上書きされます。

パラメーター

-ApplicationName

これは、WSMan プロバイダーによって使用できる動的パラメーターです。 WSMan プロバイダーとこのパラメーターは、Windows でのみ使用できます。

接続のアプリケーション名を指定します。 ApplicationName パラメーターの既定値は WSMAN です

詳細については、「New-WSManInstance」を参照してください

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

-Authentication

これは、WSMan プロバイダーによって使用できる動的パラメーターです。 WSMan プロバイダーとこのパラメーターは、Windows でのみ使用できます。

サーバーで使用される認証メカニズムを指定します。

詳細については、「New-WSManInstance」を参照してください

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

-CertificateThumbprint

これは、WSMan プロバイダーによって使用できる動的パラメーターです。 WSMan プロバイダーとこのパラメーターは、Windows でのみ使用できます。

この WSMan アクションを実行するアクセス許可を持つユーザー アカウントのデジタル公開キー証明書 (X509) を指定します。 証明書の拇印を入力します。

詳細については、「New-WSManInstance」を参照してください

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

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

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

-ConnectionURI

これは、WSMan プロバイダーによって使用できる動的パラメーターです。 WSMan プロバイダーとこのパラメーターは、Windows でのみ使用できます。

WSMan の接続エンドポイントを指定します。

詳細については、「New-WSManInstance」を参照してください

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

-Credential

Note

このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。 このコマンドレットを実行するときに、別のユーザーの権限を借用したり、資格情報を昇格したりするには、次を使用 Invoke-Commandします。

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

-Force

このコマンドレットは、既存の読み取り専用アイテムに書き込む項目を強制的に作成します。 実装はプロバイダーごとに異なります。 Force パラメーターを使用しても、コマンドレットはセキュリティ制限をオーバーライドできません。

PowerShell 7.4 以降では、このパラメーターを使用して既存のジャンクションを上書きすることもできます。 以前は、これは "空ではないため削除できません" というエラーで失敗していました。

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

-ItemType

プロバイダーによって指定された新しい項目の種類を指定します。 このパラメーターで使用できる値は、使用している現在のプロバイダーによって異なります。

場所がドライブ内にある FileSystem 場合は、次の値を使用できます。

  • ファイル
  • ディレクトリ
  • SymbolicLink
  • Junction
  • ハードリンク

Note

Windows で型を SymbolicLink 作成するには、管理者としての昇格が必要です。 ただし、開発者モードが有効になっている Windows 10 (ビルド 14972 以降) では、シンボリック リンクを作成する昇格が不要になりました。

ドライブでは Certificate 、次の値を指定できます。

  • 証明書プロバイダー
  • 証明書
  • 保存
  • StoreLocation

詳細については、about_Providersを参照してください

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

-Name

新しい項目の名前を指定します。 Name パラメーターまたは Path パラメーター値で新しい項目の名前を指定し、[名前] または [パス] の値で新しい項目のパスを指定できます。 Name パラメーターを使用して渡された項目名は、Path パラメーターの値を基準にして作成されます。

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

-Options

これは、Alias プロバイダーによって使用できる動的パラメーターです。 詳細については、「New-Alias」を参照してください

エイリアスの Options プロパティの値を指定します。

有効な値は次の通りです。

  • None: エイリアスに制約がありません (既定値)
  • ReadOnly: エイリアスは削除できますが、Force パラメーターを使用しないと変更できません。
  • Constant: エイリアスを削除または変更することはできません
  • Private: エイリアスは現在のスコープでのみ使用できます
  • AllScope: エイリアスは、作成された新しいスコープにコピーされます。
  • Unspecified: オプションが指定されていません
Type:ScopedItemOptions
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-OptionSet

これは、WSMan プロバイダーによって使用できる動的パラメーターです。 WSMan プロバイダーとこのパラメーターは、Windows でのみ使用できます。

要求のオプションを変更または調整する一連のスイッチをサービスに渡します。

詳細については、「New-WSManInstance」を参照してください

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

-Path

新しい項目の場所のパスを指定します。 既定値は、Path を省略した場合の現在の場所です。 [名前] で新しい項目の名前を指定することも、[パス] に含めることもできます。 Name パラメーターを使用して渡された項目名は、Path パラメーターの値を基準にして作成されます。

このコマンドレットでは、Path パラメーターは他のコマンドレットの LiteralPath パラメーターと同様に機能します。 ワイルドカード文字は解釈されません。 すべての文字が場所のプロバイダーに渡されます。 プロバイダーはすべての文字をサポートしているわけではありません。 たとえば、アスタリスク (*) 文字を含むファイル名を作成することはできません。

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

-Port

これは、WSMan プロバイダーによって使用できる動的パラメーターです。 WSMan プロバイダーとこのパラメーターは、Windows でのみ使用できます。

クライアントが WinRM サービスに接続するときに使用するポートを指定します。

詳細については、「New-WSManInstance」を参照してください

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

-SessionOption

これは、WSMan プロバイダーによって使用できる動的パラメーターです。 WSMan プロバイダーとこのパラメーターは、Windows でのみ使用できます。

WS-Management セッションの一連の拡張オプションを定義します。

詳細については、「New-WSManInstance」を参照してください

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

-UseSSL

これは、WSMan プロバイダーによって使用できる動的パラメーターです。 WSMan プロバイダーとこのパラメーターは、Windows でのみ使用できます。

Secure Sockets Layer (SSL) プロトコルを使用してリモート コンピューターとの接続を確立するように指定します。 既定では、SSL は使用されません。

詳細については、「New-WSManInstance」を参照してください

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

-Value

新しい項目の値を指定します。 値 New-Itemをパイプ処理することもできます。

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

-WhatIf

コマンドレットの実行時に発生する内容を示します。 コマンドレットは実行されません。

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

入力

Object

新しい項目の値をこのコマンドレットにパイプできます。

出力

DictionaryEntry

コマンドレットは、新しい環境変数を 作成するときに DictionaryEntry オブジェクトを返します。

DirectoryInfo

このコマンドレットは、ファイルシステムで 新しいディレクトリを作成するときに DirectoryInfo オブジェクトを返します。

FileInfo

このコマンドレットは、ファイルシステムで 新しいファイルを作成するときに FileInfo オブジェクトを返します。

AliasInfo

このコマンドレットは、新しいエイリアスを 作成するときに AliasInfo オブジェクトを返します。

FunctionInfo

コマンドレットは、新しい関数を 作成するときに FunctionInfo オブジェクトを返します。

PSVariable

このコマンドレットは、新しい変数を 作成するときに PSVariable オブジェクトを返します。

メモ

PowerShell には、次のエイリアスが New-Item含まれています。

  • すべてのプラットフォーム:
    • ni

New-Item は、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「.」と入力します Get-PsProvider。 詳細については、「about_Providers」を参照してください