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_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 パラメーターでワイルドカードをサポートしています。 次のコマンドは、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}
この例では、 Target は Value パラメーターのエイリアスです。 シンボリック リンクのターゲットには、相対パスを指定できます。 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 |
入力
新しい項目の値をこのコマンドレットにパイプできます。
出力
コマンドレットは、新しい環境変数を作成するときに DictionaryEntry オブジェクトを返します。
このコマンドレットは、ファイルシステムで新しいディレクトリを作成するときに、 DirectoryInfo オブジェクトを返します。
このコマンドレットは、ファイルシステムで新しいファイルを作成するときに、 FileInfo オブジェクトを返します。
コマンドレットは、新しいエイリアスを作成するときに AliasInfo オブジェクトを返します。
コマンドレットは、新しい関数を作成するときに FunctionInfo オブジェクトを返します。
コマンドレットは、新しい変数を作成するときに PSVariable オブジェクトを返します。
メモ
PowerShell には、 New-Item
の次のエイリアスが含まれています。
- すべてのプラットフォーム:
ni
New-Item
は、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、「 Get-PsProvider
」と入力します。 詳細については、「 about_Providers」を参照してください。
関連リンク
PowerShell