次の方法で共有


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: ディレクトリを作成する

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

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

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

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

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

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

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

詳細については、「 about_Automatic_Variablesabout_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 パラメーターでワイルドカードをサポートしています。 次のコマンドは、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 コマンドレットは、C:\Temp ディレクトリの下に 3 つのディレクトリを表示します。 ワイルドカードを使用して、 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}

この例では、 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

Note

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

パラメーター

-ApplicationName

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

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

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

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Authentication

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

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

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

型:AuthenticationMechanism
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CertificateThumbprint

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

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

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

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

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

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ConnectionURI

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

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

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

型:Uri
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Credential

Note

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

型:PSCredential
配置:Named
規定値:Current user
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Force

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

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ItemType

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

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

  • File
  • Directory
  • SymbolicLink
  • Junction
  • HardLink

Note

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

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

  • Certificate Provider
  • Certificate
  • Store
  • StoreLocation

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

型:String
Aliases:Type
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Name

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

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Options

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

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

有効な値は次のとおりです。

  • None: エイリアスに制約がありません (既定値)
  • ReadOnly: エイリアスは削除できますが、 Force パラメーターを使用しないと変更できません。
  • Constant: エイリアスを削除または変更することはできません
  • Private: エイリアスは現在のスコープでのみ使用できます
  • AllScope: エイリアスは、作成された新しいスコープにコピーされます。
  • Unspecified: オプションが指定されていません
型:ScopedItemOptions
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-OptionSet

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

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

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

型:Hashtable
Aliases:OS
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Path

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

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

型:String[]
配置:0
規定値:Current location
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Port

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

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

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

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SessionOption

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

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

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

型:SessionOption
Aliases:SO
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UseSSL

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

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

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Value

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

型:Object
Aliases:Target
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-WhatIf

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

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

Object

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

出力

DictionaryEntry

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

DirectoryInfo

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

FileInfo

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

AliasInfo

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

FunctionInfo

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

PSVariable

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

メモ

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

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

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