在目前工作階段中建立 Windows PowerShell 磁碟機。

語法

New-PSDrive [-Name] <string> [-PSProvider] <string> [-Root] <string> [-Credential <PSCredential>] [-描述 <string>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

描述

New-PSDrive Cmdlet 會建立與資料存放區中任一位置 (例如網路磁碟機、本機電腦上的目錄或登錄機碼) 對應或關聯的 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 Cmdlet。

參數

-Credential <PSCredential>

指定具有執行此動作之權限的使用者帳戶。預設為目前使用者。

請輸入使用者名稱,例如 "User01" 或 "Domain01\User01"。或者輸入 PSCredential 物件,例如 Get-Credential Cmdlet 所產生的物件。如果輸入使用者名稱,將會提示您提供密碼。

所有隨 Windows PowerShell 安裝的提供者都不支援此參數。

必要?

false

位置?

named

預設值

接受管線輸入?

true (ByPropertyName)

接受萬用字元?

false

-描述 <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>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

您無法經由管道將輸入輸出至這個 Cmdlet。

輸出

System.Management.Automation.PSDriveInfo

附註

New-PSDrive Cmdlet 設計的用意是要操作任一提供者所公開的資料。若要列出可在工作階段中使用的提供者,請輸入 "Get-PSProvider"。如需詳細資訊,請參閱 about_Providers。

範例 1

C:\PS>new-psdrive -name P -psprovider FileSystem -root \\Server01\Public

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

描述
-----------
這個命令會建立 Windows PowerShell 磁碟機,其作用與 Windows 中對應的網路磁碟機類似。這個命令會建立對應到 \\Server01\Public 網路共用區的 Windows PowerShell 磁碟機,磁碟機代號為 P:。

該命令會使用 Name 參數指定磁碟機名稱、使用 PSProvider 參數指定 Windows PowerShell FileSystem 提供者,並使用 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 參數指定磁碟機名稱、使用 PSProvider 參數指定 Windows PowerShell FileSystem 提供者、使用 Root 參數指定 My Documents 資料夾路徑並且使用 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 參數指定磁碟機名稱、使用 PSProvider 參數指定 Windows PowerShell 登錄提供者,並使用 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 Cmdlet 建立名稱為 PSDrive: 的 Windows PowerShell 磁碟機,該磁碟區對應到 \\Server01\Public 網路共用區。

第二組命令使用 New-Object Cmdlet 建立 Wscript.Network COM 物件,接著用它的 MapNetworkDrive 方法,將 \\Server01\Public 網路共用對應到本機電腦上的 X: 磁碟機。

現在,您可以檢查兩個磁碟機。雖然網路共用區名稱只會出現在 PSDrive: 磁碟機的根目錄,但是使用 Get-PSDrive 磁碟機命令時,兩個磁碟機看起是相同的。

將磁碟機物件傳送給顯示他們具有相同物件類型 (System.Management.Automation.PSDriveInfo) 的 Get-Member。

但是,"net use" 命令、Win32_LogicalDisk 類別的 Get-WmiObject 命令與 Win32_NetworkConnection 類別的 Get-WmiObject 命令只會尋找以 Wscript.Network 物件建立的 X: 磁碟機。這是因為只 Windows PowerShell 有認得 Windows PowerShell 磁碟機。

如果您關閉 Windows PowerShell 工作階段,然後開啟新的工作階段,則 PSDrive: 磁碟機會消失而 X: 磁碟機仍然會保留。

所以,決定使用哪一種方法對應網路磁碟機時,請考慮您日後會如何使用該磁碟機、是否需要永久保留磁碟機以及 Windows 的其他功能是否也需要看得見磁碟機。






請參閱




目錄