New-PSDrive
Windows PowerShell ドライブを現在のセッションに作成します。
構文
New-PSDrive [-Name] <string> [-PSProvider] <string> [-Root] <string> [-Credential <PSCredential>] [-Description <string>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
説明
New-PSDrive コマンドレットは Windows PowerShell ドライブを作成します。このドライブは、ネットワーク ドライブ、ローカル コンピューター上のディレクトリやレジストリ キーなどのデータ ストア内の場所に "マッピング" または関連付けられます。
マッピングされたドライブを使用する場合と同様に、Windows PowerShell ドライブを作成して使用し、関連付けられたデータ ストア内のデータにアクセスできます。場所をドライブ内に変更して ("Set-Location"、"cd"、または "chdir" を使用)、ドライブの内容にアクセスできます ("Get-Item"、"Get-ChildItem"、または "dir" を使用)。
ただし、Windows PowerShell ドライブは Windows PowerShell でのみ認識されます。Windows エクスプローラー、Windows Management Instrumentation (WMI)、コンポーネント オブジェクト モデル (COM)、Microsoft .NET Framework を使用する、または Net Use などのツールを使用してアクセスすることはできません。
Windows PowerShell ドライブは、現在の Windows PowerShell セッションにのみ存在します。ドライブを存続させるには、ドライブを追加したセッションをエクスポートするか、New-PSDrive コマンドを Windows PowerShell プロファイルに保存します。
New-PSDrive で作成したドライブを削除するには、Remove-PSDrive コマンドレットを使用します。
パラメーター
-Credential <PSCredential>
この処理を実行するアクセス許可を持つユーザー アカウントを指定します。既定値は現在のユーザーです。
"User01" や "Domain01\User01" などユーザー名を入力します。または、Get-Credential コマンドレットで生成されるような PSCredential オブジェクトを入力します。ユーザー名を入力すると、パスワードの入力を促すメッセージが表示されます。
このパラメーターは、Windows PowerShell でインストールされるプロバイダーではサポートされていません。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Description <string>
ドライブの簡単な説明テキストを指定します。任意の文字列を入力します。
システムにあるすべての Windows PowerShell ドライブの説明を表示するには、「get-psdrive | format name, description」と入力します。特定の Windows PowerShell ドライブの説明を表示するには、「(get-psdrive <DriveName>).description」と入力します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Name <string>
新しいドライブの名前を指定します。名前の有効な文字列を使用できます。ドライブ文字に限定されません。Windows PowerShell のドライブ名では大文字と小文字が区別されます。
必須 |
true |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-PSProvider <string>
この種類のドライブをサポートする Windows PowerShell プロバイダーを指定します。
たとえば、Windows PowerShell ドライブがネットワーク共有またはファイル システム ディレクトリに関連付けられている場合、Windows PowerShell プロバイダーは "FileSystem" になります。Windows PowerShell ドライブがレジストリ キーに関連付けられている場合、プロバイダーは "Registry" になります。
Windows PowerShell セッションでプロバイダーの一覧を表示するには、「get-psprovider」と入力します。
必須 |
true |
位置 |
2 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Root <string>
Windows PowerShell ドライブをマッピングするデータ ストアの場所を指定します。
たとえば、ネットワーク共有 (\\Server01\Public など)、ローカル ディレクトリ (C:\Program Files など)、またはレジストリ キー (HKLM:\Software\Microsoft など) を指定します。
必須 |
true |
位置 |
3 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Scope <string>
ドライブのスコープを指定します。指定可能な値は、Global、Local、Script、または現在のスコープの相対的な数値 (0 ~スコープの数。ここで 0 は現在のスコープを表し、1 はその親を表す) です。既定値は Local です。詳細については、「about_Scopes」を参照してください。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Confirm
コマンドを実行する前に確認メッセージを表示します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-WhatIf
実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-UseTransaction
コマンドを有効なトランザクションに含めます。このパラメーターは、トランザクションの進行中のみ有効です。詳細については、「about_Transactions」を参照してください。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
なし パイプを使用してこのコマンドレットに入力を渡すことはできません。 |
出力 |
System.Management.Automation.PSDriveInfo |
注
New-PSDrive コマンドレットは、プロバイダーによって公開されているデータを使用するように設計されています。セッションで使用可能なプロバイダーの一覧を表示するには、「get-psprovider」と入力します。詳細については、「about_Providers」を参照してください。
例 1
C:\PS>new-psdrive -name P -psprovider FileSystem -root \\Server01\Public
Name Provider Root
---- -------- ----
P FileSystem \\Server01\Public
説明
-----------
このコマンドは、Windows でマッピングされたネットワーク ドライブと同じように動作する Windows PowerShell ドライブを作成します。このコマンドでは、\\Server01\Public ネットワーク共有にマッピングされる P: という名前の Windows PowerShell ドライブが作成されます。
ドライブの名前の指定には Name パラメーター、Windows PowerShell FileSystem プロバイダーの指定には PSProvider パラメーター、ネットワーク共有の指定には Root パラメーターをそれぞれ使用します。
コマンドが完了すると、\\Server01\Public 共有の内容が P: ドライブに表示されます。内容を表示するには、「dir p:」と入力します。
例 2
C:\PS>new-psdrive -name MyDocs -psprovider FileSystem -root "C:\Documents and Settings\User01\My Documents" -Description "Maps to my My Documents folder."
Name Provider Root
---- -------- ----
MyDocs FileSystem C:\Documents and Settings\User01\My Documents
説明
-----------
このコマンドは、ローカル ディレクトリにクイック アクセスする Windows PowerShell ドライブを作成します。MyDocs: という名前のドライブが作成され、
ローカル コンピューター上の "C:\Documents and Settings\User01\My Documents" ディレクトリにマッピングされます。
ドライブの名前の指定には Name パラメーター、Windows PowerShell FileSystem プロバイダーの指定には PSProvider パラメーター、My Documents フォルダーへのパスの指定には Root パラメーター、ドライブの説明の作成には Description パラメーターをそれぞれ使用します。
コマンドが完了すると、My Documents フォルダーの内容が MyDocs: ドライブに表示されます。内容を表示するには、「dir mydocs:」と入力します。
例 3
C:\PS>new-psdrive -name MyCompany -psprovider Registry -root HKLM:\Software\MyCompany
Name Provider Root
---- -------- ----
MyCompany Registry HKEY_LOCAL_MACHINE\Software\MyCo...
説明
-----------
このコマンドは、頻繁にチェックされるレジストリ キーにクイック アクセスする Windows PowerShell ドライブを作成します。このコマンドでは MyCompany という名前のドライブが作成され、HKLM\Software\MyCompany レジストリ キーにマッピングされます。
ドライブの名前の指定には Name パラメーター、Windows PowerShell Registry プロバイダーの指定には PSProvider パラメーター、レジストリ キーの指定には Root パラメーターをそれぞれ使用します。
コマンドが完了すると、MyCompany キーの内容が MyCompany: ドライブに表示されます。内容を表示するには、「dir MyCompany:」と入力します。
例 4
C:\PS>new-psdrive -name PsDrive -psprovider FileSystem -root \\Server01\Public
C:\PS> $drive = new-object -com wscript.network
C:\PS> $drive.MapNetworkDrive("X:", "\\Server01\Public")
C PS:\> get-psdrive public, x
Name Provider Root
---- -------- ----
PsDrive FileSystem \\Server01\public
X FileSystem X:\
C:\PS>get-psdrive psdrive, x | get-member
TypeName: System.Management.Automation.PSDriveInfo
Name MemberType Definition
---- ---------- ----------
CompareTo Method System.Int32 CompareTo(PSDriveInfo drive),
Equals Method System.Boolean Equals(Object obj),
GetHashCode Method System.Int32 GetHashCode()
...
C:\PS> net use
Status Local Remote Network
---------------------------------------------------------------------------
X: \\server01\public Microsoft Windows Network
C:\PS> get-wmiobject win32_logicaldisk | ft deviceid
deviceid
--------
C:
D:
X:
C:\PS> get-wmiobject win32_networkconnection
LocalName RemoteName ConnectionState Status
--------- ---------- --------------- ------
X: \\products\public Disconnected Unavailable
説明
-----------
この例は、Windows ドライブと Windows PowerShell ドライブを同じネットワーク共有にマッピングしたときの違いを示します。
最初のコマンドでは、New-PSDrive コマンドレットを使用して PSDrive: という名前の Windows PowerShell ドライブを作成し、\\Server01\Public ネットワーク共有にマッピングします。
2 番目のコマンド セットでは、New-Object コマンドレットを使用して Wscript.Network COM オブジェクトを作成し、MapNetworkDrive メソッドを使用して \\Server01\Public ネットワーク共有をローカル コンピューター上の X: ドライブにマッピングします。
こうすると 2 つのドライブを調べることができます。Get-PSDrive ドライブ コマンドを使用すると、2 つのドライブは同じように表示されますが、ネットワーク共有名は PSDrive: ドライブのルートにのみ表示されます。
ドライブ オブジェクトを Get-Member に送信すると、同じ種類のオブジェクト System.Management.Automation.PSDriveInfo があることがわかります。
ただし、"net use" コマンド、Win32_LogicalDisk クラスに対する Get-WmiObject コマンド、および Win32_NetworkConnection クラスに対する Get-WmiObject コマンドを実行すると、Wscript.Network オブジェクトを使用して作成された X: ドライブのみが検出されます。これは、Windows PowerShell ドライブが Windows PowerShell のみに認識されるためです。
Windows PowerShell セッションを閉じ、新しいコンソールを開くと、PSDrive: ドライブが削除され X: ドライブが保持されます。
このため、ネットワーク ドライブをマッピングする方法を決めるときには、ドライブを使用する方法、ドライブを存続させる必要があるかどうか、およびドライブに Windows の他の機能からアクセスする必要があるかどうかを考慮してください。