New-PSDrive

アイテム データ ストア内の場所に関連付けられている一時ドライブと永続ドライブを作成します。

構文

New-PSDrive
   [-Name] <String>
   [-PSProvider] <String>
   [-Root] <String>
   [-Description <String>]
   [-Scope <String>]
   [-Persist]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

このコマンドレットは New-PSDrive 、ネットワーク ドライブ、ローカル コンピューター上のディレクトリ、レジストリ キーなどのデータ ストア内の場所にマップまたは関連付けられた一時および永続的なドライブ、およびリモート コンピューター上のファイル システムの場所に関連付けられている永続的な Windows マップド ネットワーク ドライブを作成します。

一時ドライブは、現在の PowerShell セッションと、現在のセッションで作成したセッションにのみ存在します。 PowerShell で有効な任意の名前を持ち、任意のローカル リソースまたはリモート リソースにマップできます。 マップされたネットワーク ドライブと同様に、一時的な PowerShell ドライブを使用して、関連付けられているデータ ストア内のデータにアクセスできます。 を使用して Set-Location、ドライブ内の場所を変更し Get-Item 、または Get-ChildItem.

一時ドライブは PowerShell でのみ認識されるため、エクスプローラー、Windows Management Instrumentation (WMI)、コンポーネント オブジェクト モデル (COM)、Microsoft .NET Framework、などのnet useツールを使用してアクセスすることはできません。

PowerShell 3.0 では、次の機能が追加 New-PSDrive されました。

  • 割り当て済みのネットワーク ドライブ Persist パラメーターNew-PSDrive使用して、Windows マップト ネットワーク ドライブを作成できます。 一時的な PowerShell ドライブとは異なり、Windows マップされたネットワーク ドライブはセッション固有ではありません。 これらは Windows に保存され、エクスプローラーやネットユースなどの標準的な Windows ツールを使用して管理できます。 マップ済みネットワーク ドライブは、ドライブ文字名を持ち、リモート ファイル システムの場所に接続されている必要があります。 コマンドのスコープがローカルにあり、ドット ソーシングがない場合、Persist パラメーターは、コマンドが実行されているスコープを超えて PSDrive作成を保持しません。 スクリプト内で実行 New-PSDrive していて、ドライブを無期限に保持する場合は、スクリプトをドット ソースにする必要があります。 最適な結果を得るには、新しいドライブを強制的に無期限に保持するには、コマンドに Scope パラメーターを追加し、その値を Global設定します。 ドット ソーシングの詳細については、about_Scriptsを参照してください
  • 外部ドライブ。 外部ドライブがコンピューターに接続されると、PowerShell は新しいドライブを 表す PSDrive をファイル システムに自動的に追加します。 PowerShell を再起動する必要はありません。 同様に、外部ドライブがコンピューターから切断されると、削除されたドライブを 表す PSDrive が PowerShell によって自動的に削除されます。
  • 汎用名前付け規則 (UNC) パスの資格情報。

ルート パラメーターの値が UNC パスである\\Server\Share場合など、Credential パラメーターの値で指定された資格情報を使用して PSDrive作成します。 それ以外の場合、 新しいファイル システム ドライブを作成する場合、資格情報 は有効ではありません。

一部のコード サンプルでは、スプラッティングを使用して行の長さを短くし、読みやすさを向上させます。 詳細については、「about_Splatting」を参照してください

Note

Scope パラメーターを使用しない限り、PSDrive はコマンドを実行するスコープ内にNew-PSDrive作成されます。

例 1: ネットワーク共有にマップされた一時ドライブを作成する

この例では、ネットワーク共有にマップされる一時的な PowerShell ドライブを作成します。

New-PSDrive -Name "Public" -PSProvider "FileSystem" -Root "\\Server01\Public"

Name       Provider      Root
----       --------      ----
Public     FileSystem    \\Server01\Public

New-PSDriveでは、Name パラメーターを使用して名前付きの Public PowerShell ドライブを指定し、PSProvider パラメーターを使用して PowerShell FileSystem プロバイダーを指定します。 ルート パラメーターは、ネットワーク共有の UNC パスを指定します。

PowerShell セッションから内容を表示するには: Get-ChildItem -Path Public:

例 2: ローカル ディレクトリにマップされた一時ドライブを作成する

この例では、ローカル コンピューター上のディレクトリへのアクセスを提供する一時的な PowerShell ドライブを作成します。

$parameters = @{
    Name = "MyDocs"
    PSProvider = "FileSystem"
    Root = "C:\Users\User01\Documents"
    Description = "Maps to my My Documents folder."
}
New-PSDrive @parameters

Name        Provider      Root
----        --------      ----
MyDocs      FileSystem    C:\Users\User01\Documents

Splatting によって、パラメーター キーと値が作成されます。 Name パラメーターはドライブ名 MyDocs を指定します。 PSProvider パラメーターは、PowerShell FileSystem プロバイダーを指定します。 ルート は、ローカル コンピューターのディレクトリを指定します。 Description パラメーターは、ドライブの目的を表します。 New-PSDrive では、スプラッティングされたパラメーターを使用してドライブを MyDocs 作成します。

PowerShell セッションから内容を表示するには: Get-ChildItem -Path MyDocs:

例 3: レジストリ キーの一時ドライブを作成する

この例では、レジストリ キーへのアクセスを提供する一時的な PowerShell ドライブを作成します。 レジストリ キーにマップされた MyCompany という名前のドライブが HKLM:\Software\MyCompany 作成されます。

New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"

Name           Provider      Root
----           --------      ----
MyCompany      Registry      HKLM:\Software\MyCompany

New-PSDriveでは、Name パラメーターを使用して名前付きの MyCompany PowerShell ドライブを指定し、PSProvider パラメーターを使用して PowerShell Registry プロバイダーを指定します。 ルート パラメーターは、レジストリの場所を指定します。

PowerShell セッションから内容を表示するには: Get-ChildItem -Path MyCompany:

例 4: 資格情報を使用して永続的なマップされたネットワーク ドライブを作成する

この例では、doメイン サービス アカウントの資格情報で認証されたネットワーク ドライブをマップします。 資格情報を格納する PSCredential オブジェクトと、パスワードを SecureString として格納する方法の詳細については、Credential パラメーターの説明を参照してください。

$cred = Get-Credential -Credential Contoso\ServiceAccount
New-PSDrive -Name "S" -Root "\\Server01\Scripts" -Persist -PSProvider "FileSystem" -Credential $cred
Net Use

Status       Local     Remote                    Network
---------------------------------------------------------
OK           S:        \\Server01\Scripts        Microsoft Windows Network

Note

スクリプトで上記のスニペットを使用する場合は、ドライブが現在の スコープ外に保持されるように、Scope パラメーターの値を "Global" に設定してください。

変数には $cred 、サービス アカウントの 資格情報を含む PSCredential オブジェクトが格納されます。 Get-Credentialでは、SecureString に格納されているパスワードを入力するように求められます。

New-PSDrive では、複数のパラメーターを使用してマップされたネットワーク ドライブが作成されます。 名前 は、Windows が S 受け入れるドライブ文字を指定します。 と ルート は、 \\Server01\Scripts リモート コンピューター上の場所として定義されます。 Persist を使用すると、ローカル コンピューターに保存された Windows マップされたネットワーク ドライブが作成されます。 PSProvider は プロバイダーを FileSystem 指定します。 資格情報 では、変数を $cred 使用して認証用のサービス アカウント資格情報を取得します。

マップされたドライブは、PowerShell セッション、エクスプローラー、および net use などのツールを使用して、ローカル コンピューターで表示できます。 PowerShell セッションから内容を表示するには: Get-ChildItem -Path S:

例 5: 永続ドライブと一時ドライブを作成する

この例では、永続的にマップされたネットワーク ドライブと、同じネットワーク共有にマップされる一時的な PowerShell ドライブの違いを示します。

PowerShell セッションを閉じてから新しいセッションを開くと、一時的 PSDrive: なドライブは使用できませんが、永続 X: ドライブは使用できます。 ネットワーク ドライブのマップに使用する方法を決定する場合は、ドライブの使用方法を検討してください。 たとえば、永続的にする必要があるかどうか、ドライブを他の Windows 機能に表示する必要があるかどうかなどです。

# Create a temporary PowerShell drive called PSDrive:
# that's mapped to the \\Server01\Public network share.
New-PSDrive -Name "PSDrive" -PSProvider "FileSystem" -Root "\\Server01\Public"

# Use the Persist parameter of New-PSDrive to create the X: mapped network drive,
# which is also mapped to the \\Server01\Public network share.
New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public"

# Now, you can use the Get-PSDrive drive cmdlet to examine the two drives.
# The drives appear to be the same, although the network share name appears only
# in the root of the PSDrive: drive.
Get-PSDrive -Name "PSDrive", "X"

Name       Provider      Root
----       --------      ----

PsDrive    FileSystem    \\Server01\public
X          FileSystem    X:\

# Get-Member cmdlet shows that the drives have the same object type,
# System.Management.Automation.PSDriveInfo.
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()
...

# Net Use and Get-CimInstance for the Win32_LogicalDisk class,
# and Win32_NetworkConnection class find only the persistent X: drive.
# PowerShell temporary drives are known only to PowerShell.
Net Use
Get-CimInstance Win32_LogicalDisk | Format-Table -Property DeviceID
Get-CimInstance Win32_NetworkConnection

Status       Local     Remote                    Network
--------------------------------------------------------
OK           X:        \\contoso-pc\data         Microsoft Windows Network

deviceid
--------
C:
D:
X:

LocalName    RemoteName              ConnectionState          Status
---------    ----------              ---------------          ------
X:           \\products\public       Disconnected             Unavailable

例 6: スクリプトに永続ドライブを作成する

PSDrive は、コマンドが実行されるスコープ内に New-PSDrive 作成されます。 スクリプト内でコマンドを実行すると、ドライブマッピングはスクリプトに対してローカルになります。 スクリプトが終了すると、ドライブは使用できなくなります。

New-PSDrive -Persist -Name "X" -PSProvider "FileSystem" -Root "\\Server01\Public" -Scope Global

スクリプトの外部でドライブを使用できるようにするには、Scope パラメーターを使用してグローバル スコープにドライブを作成する必要があります。

パラメーター

-Confirm

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

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

-Credential

このアクションを実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

PowerShell 3.0 以降では、ルート パラメーターの値が UNC パスの場合、資格情報を使用してファイル システム ドライブを作成できます。

User01 や Doメイン01\User01 などのユーザー名を入力するか、コマンドレットによって生成された PSCredential オブジェクトをGet-Credential入力します。 ユーザー名を入力すると、パスワードの入力を求められます。

資格情報は PSCredential オブジェクトに格納され、パスワードは SecureString として格納されます。

Note

SecureString データ保護の詳細については、「SecureString のセキュリティ保護方法」を参照してください

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

-Description

ドライブの簡単な説明テキストを指定します。 任意の文字列を入力します。

セッションのすべてのドライブの説明を表示するには、 Get-PSDrive | Format-Table Name, Description

特定のドライブの説明を表示するには、「.」と入力します (Get-PSDrive <DriveName>).Description

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

-Name

新しいドライブの名前を指定します。 永続的なマップされたネットワーク ドライブの場合は、ドライブ文字を使用します。 一時的な PowerShell ドライブの場合、ドライブ文字に限定されるものではなく、任意の有効な文字列を使用します。

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

-Persist

このコマンドレットによって、Windows マップされたネットワーク ドライブが作成されることを示します。 Persist パラメーターは Windows でのみ使用できます。

マップ済みネットワーク ドライブは、ローカル コンピューターの Windows に保存されます。 これらはセッション固有ではなく永続的であり、エクスプローラーやその他のツールで表示および管理できます。

ドット ソーシングを使用せずにコマンドのスコープをローカルに設定した場合、Persist パラメーターは、コマンドを実行するスコープを超えて PSDrive作成を保持しません。 スクリプト内で実行 New-PSDrive し、新しいドライブを無期限に保持する場合は、スクリプトをドット ソースにする必要があります。 最適な結果を得るには、新しいドライブを強制的に永続化するには、Scope パラメーターの値として Global指定し、コマンドに Persist をめます。

ドライブの名前は、次のようなDE文字にする必要があります。 Root パラメーターの値は、別のコンピューターの UNC パスである必要があります。 PSProvider パラメーターの値FileSystem.

Windows マップされたネットワーク ドライブを切断するには、コマンドレットを Remove-PSDrive 使用します。 Windows マップ済みネットワーク ドライブを切断すると、マッピングは現在のセッションから削除されるだけでなく、コンピューターから完全に削除されます。

マップ済みネットワーク ドライブは、ユーザー アカウントに固有です。 別のユーザーの資格情報を使用して管理者特権のセッションで作成されたマップされたドライブは、別の資格情報を使用して開始されたセッションには表示されません。

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

-PSProvider

この種類のドライブをサポートする PowerShell プロバイダーを指定します。

たとえば、ドライブがネットワーク共有またはファイル システム ディレクトリに関連付けられている場合、PowerShell プロバイダーは FileSystem. ドライブがレジストリ キーに関連付けられている場合、プロバイダーは Registry.

一時 PowerShell ドライブは、任意の PowerShell プロバイダーに関連付けることができます。 マップされたネットワーク ドライブは、プロバイダーにのみ関連付 FileSystem けることができます。

PowerShell セッションでプロバイダーの一覧を表示するには、コマンドレットを Get-PSProvider 使用します。

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

-Root

PowerShell ドライブのマップ先となるデータ ストアの場所を指定します。

たとえば、ローカル ディレクトリなどの \\Server01\Publicネットワーク共有や、 C:\Program Filesレジストリ キーなどを HKLM:\Software\Microsoft指定します。

一時 PowerShell ドライブは、サポートされている任意のプロバイダー ドライブ上のローカルまたはリモートの場所に関連付けることができます。 マップ済みネットワーク ドライブは、リモート コンピューター上のファイル システムの場所だけに関連付けることができます。

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

-Scope

ドライブのスコープを指定します。 このパラメーターに使用できる値は、GlobalLocal、Script、または現在のスコープを基準とした数値です。 スコープの数は 0 からスコープの数です。 現在のスコープ番号は 0 で、親は 1 です。 詳細については、「about_Scopes」を参照してください

Type:String
Position:Named
Default value:Local
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

入力

None

このコマンドレットにオブジェクトをパイプすることはできません

出力

PSDriveInfo

このコマンドレットは、作成されたドライブを 表す PSDriveInfo オブジェクトを返します。

メモ

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

  • すべてのプラットフォーム:
    • ndr
  • Windows:
    • mount

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

マップ済みネットワーク ドライブは、ユーザー アカウントに固有です。 別のユーザーの資格情報を使用して管理者特権のセッションで作成されたマップされたドライブは、別の資格情報を使用して開始されたセッションには表示されません。