New-PSDrive
建立暫時和持續性的對應網路驅動器機。
語法
New-PSDrive
[-Name] <String>
[-PSProvider] <String>
[-Root] <String>
[-Description <String>]
[-Scope <String>]
[-Persist]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Description
New-PSDrive
Cmdlet 會建立暫存和持續性磁碟驅動器,這些磁碟驅動器會對應至或與數據存放區中的位置相關聯,例如網路驅動器機、本機計算機上的目錄或登錄機碼,以及與遠端電腦上文件系統位置相關聯的永續性 Windows 對應網路驅動器機。
暫存磁碟驅動器只存在於目前的PowerShell工作階段和您在目前工作階段中建立的工作階段中。
它們可以具有任何在PowerShell中有效的名稱,而且可以對應至任何本機或遠端資源。
您可以使用暫存 PowerShell 磁碟驅動器來存取相關聯數據存放區中的數據,就像使用任何對應的網路驅動器機一樣。
您可以使用 Set-Location
、cd或 chdir,將位置變更為磁碟驅動器,並使用 Get-Item
、Get-ChildItem
或 dir來存取磁碟驅動器的內容。
不過,因為只有 PowerShell 才知道暫存磁碟驅動器,所以您無法使用檔案總管、Windows Management Instrumentation (WMI)、元件物件模型(COM)或Microsoft .NET Framework,或使用 Net Use 之類的工具加以存取。
下列功能會新增至 Windows PowerShell 3.0 中的 New-PSDrive
:
- 對應的網路驅動器機。
您可以使用
New-PSDrive
的 Persist 參數來建立 Windows 對應網路驅動器機。 不同於暫時的 PowerShell 磁碟驅動器,Windows 對應的網路驅動器機並非會話專用。 它們會儲存在 Windows 中,而且可以使用標準 Windows 工具進行管理,例如檔案總管和 Net Use。 對應的網路驅動器機必須具有驅動器號名稱,並連線到遠端檔案系統位置。 當您的命令在本機設定範圍時(沒有點來源),Persist 參數不會保存建立 PSDrive 超出命令執行範圍的範圍。 如果您在腳本內執行New-PSDrive
,而且您希望磁碟驅動器無限期地保存,則必須以點來源撰寫腳本。 為了獲得最佳結果,若要強制新磁碟驅動器無限期保存,請將 Scope 參數新增至命令,並將其值設定為 Global。 - 外部磁碟驅動器。 當外部磁碟驅動器連線到計算機時,PowerShell 會自動將 PSDrive 新增至代表新磁碟驅動器的文件系統。 您不需要重新啟動 PowerShell。 同樣地,當外部磁碟驅動器與計算機中斷連線時,PowerShell 會自動刪除代表已移除磁碟驅動器的 PSDrive。
- UNC 路徑的認證。
當 Root 參數的值是 UNC 路徑時,例如 \\Server\Share,則會使用 Credential 參數值中指定的認證來建立 PSDrive。 否則,當您建立新的文件系統磁碟驅動器時,認證 無效。
範例
範例 1:建立對應至網路共用的磁碟驅動器
New-PSDrive -Name "P" -PSProvider "FileSystem" -Root "\\Server01\Public"
Name Provider Root
---- -------- ----
P FileSystem \\Server01\Public
此命令會建立名為 P: 的暫存 PowerShell 磁碟驅動器,此磁碟驅動器會對應至 \\Server01\Public network 共用。
它會使用 Name 參數來指定磁碟驅動器的名稱、PSProvider 參數來指定 PowerShell FileSystem 提供者,以及指定網路共用的 Root 參數。
當命令完成時,\\Server01\Public 共享的內容會出現在 P: 磁盘驅動器中。
若要檢視它們,請輸入:dir P:
。
範例 2:建立暫存磁碟驅動器
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
此命令會建立暫時的 PowerShell 磁碟驅動器,以快速存取本機目錄。 它會建立名為 MyDocs 的磁碟驅動器:,該磁碟驅動器會對應至本機電腦上的 “C:\Documents and Settings\User01\My Documents” 目錄。
它會使用 Name 來指定磁碟驅動器的名稱、PSProvider 來指定 PowerShell FileSystem 提供者、Root 來指定 My Documents 資料夾的路徑,以及 Description 參數來建立磁碟驅動器的描述。
當命令完成時,[我的文檔] 資料夾的內容會出現在 MyDocs:
磁碟驅動器中。
若要檢視它們,請輸入:dir MyDocs:
。
範例 3:建立登錄機碼的磁碟驅動器
New-PSDrive -Name "MyCompany" -PSProvider "Registry" -Root "HKLM:\Software\MyCompany"
Name Provider Root
---- -------- ----
MyCompany Registry HKEY_LOCAL_MACHINE\Software\MyCo...
此命令會建立暫時的 PowerShell 磁碟驅動器,以快速存取經常檢查的登錄機碼。
它會建立名為 MyCompany 的磁碟驅動器,該磁碟驅動器會對應至 HKLM\Software\MyCompany
登錄機碼。
它會使用 Name 來指定磁碟驅動器的名稱、PSProvider 來指定 PowerShell 登錄提供者,以及 Root 來指定登錄機碼。
當命令完成時,MyCompany 機碼的內容會出現在 MyCompany:
磁碟驅動器中。
若要檢視它們,請輸入:dir MyCompany:
。
範例 4:建立保存的對應網路驅動器機
New-PSDrive -Name "S" -Root "\\Server01\Scripts" -Persist -PSProvider "FileSystem"
Net Use
Status Local Remote Network
---------------------------------------------------------
OK S: \\Server01\Scripts Microsoft Windows Network
此命令會在本機電腦上建立 『S』 對應網路驅動器機。 'S' 磁碟驅動器會對應至 \\Server01\Scripts 網络共用。
命令會使用 New-PSDrive
來建立對應的網路驅動器機。
它會使用 Persist 來建立儲存在本機電腦上的 Windows 對應網路驅動器機。
此命令會使用 Name 來指定 Windows 接受的字母名稱,並 根 指定遠端電腦上的位置。 它會使用 PSProvider 來指定 FileSystem 提供者。
產生的磁碟驅動器可以在本機計算機上的其他 PowerShell 工作階段、Windows 檔案總管和其他工具中檢視,例如 Net Use。
範例 5:建立持續性和暫存磁碟驅動器
# Create a temporary PowerShell drive called PSDrive: that is 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-WmiObject 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-WmiObject Win32_LogicalDisk | Format-Table -Property DeviceID
Get-WmiObject 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
此範例顯示持續性對應網路驅動器機與對應至相同網路共用的暫存 PowerShell 磁碟驅動器之間的差異。
如果您關閉 PowerShell 工作階段,然後開啟新的工作階段,PSDrive:磁碟驅動器會消失,X:
磁碟驅動器會持續存在。 因此,在決定要使用哪一種方法來對應網路驅動器機時,請考慮如何使用磁碟驅動器、磁碟驅動器是否必須持續運作,以及磁碟驅動器是否必須可供其他 Windows 功能看見。
參數
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Credential
指定具有執行此動作許可權的用戶帳戶。 預設值為目前的使用者。
輸入使用者名稱,例如 「User01」 或 「Domain01\User01」,或輸入 PSCredential 物件,例如 Get-Credential
Cmdlet 所產生的用戶名稱。
如果您輸入使用者名稱,此 Cmdlet 會提示您輸入密碼。
從 Windows PowerShell 3.0 開始,當 Root 參數的值是 UNC 路徑時,您可以使用認證來建立文件系統磁碟驅動器。 所有 PowerShell 提供者都不支援此參數。
類型: | PSCredential |
Position: | Named |
預設值: | Current user |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Description
指定磁碟驅動器的簡短文字描述。 輸入任何字串。
若要檢視工作階段中所有磁碟驅動器的描述,請輸入 Get-PSDrive | Format-Table Name, Description
。
若要檢視特定磁碟驅動器的描述,請輸入 (Get-PSDrive \<DriveName\>).Description
。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-Name
指定新磁碟驅動器的名稱。 針對持續性的對應網路驅動器機,請輸入驅動器號。 若為暫時的PowerShell磁碟驅動器,請輸入任何有效的字串;您不限於驅動器號。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Persist
指出此 Cmdlet 會建立 Windows 對應網路驅動器機。 對應的網路驅動器機會儲存在本機電腦上的 Windows 中。 它們是持續性的,而不是會話特定的,而且可以在檔案總管和其他工具中檢視和管理。
當您在本機設定命令範圍時,也就是不使用點來源,Persist 參數不會保存建立 PSDrive 超出您執行命令的範圍。
如果您在腳本內執行 New-PSDrive
,而且您希望新磁碟驅動器無限期地保存,則必須以點來源撰寫腳本。
為了獲得最佳結果,若要強制保留新的磁碟驅動器,請指定 Global 作為 Scope 參數的值,以及將 [保存 新增至命令]。
磁碟驅動器的名稱必須是字母,例如 'D' 或 'E'。 Root 參數的值必須是不同電腦的 UNC 路徑。 PSProvider 參數的值必須是 FileSystem。
若要中斷 Windows 對應網路驅動器機的連線,請使用 Remove-PSDrive
Cmdlet。
當您中斷 Windows 對應網路驅動器機的連線時,對應會從計算機永久刪除,而不只是從目前的會話中刪除。
對應的網路驅動器機專屬於用戶帳戶。 使用其他使用者的認證在提升許可權的會話或會話中建立的對應磁碟驅動器,不會顯示在使用不同認證啟動的會話中。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-PSProvider
指定支援這種磁碟驅動器的PowerShell提供者。
例如,如果磁碟驅動器與網路共享或文件系統目錄相關聯,PowerShell 提供者就是 FileSystem。 如果磁碟驅動器與登錄機碼相關聯,則提供者為 Registry。
暫存 PowerShell 磁碟驅動器可以與任何 PowerShell 提供者相關聯。 對應的網路驅動器機只能與 FileSystem 提供者相關聯。
若要查看 PowerShell 工作階段中的提供者清單,請使用 Get-PSProvider
Cmdlet。
類型: | String |
Position: | 1 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Root
指定 PowerShell 磁碟驅動器對應的數據存放區位置。
例如,指定網路共用,例如 \\Server01\Public、本機目錄,例如 C:\Program Files 或登錄機碼,例如 HKLM:\Software\Microsoft。
暫存 PowerShell 磁碟驅動器可以與任何支援的提供者磁碟驅動器上的本機或遠端位置相關聯。 對應的網路驅動器機只能與遠端電腦上的檔案系統位置相關聯。
類型: | String |
Position: | 2 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Scope
指定磁碟驅動器的範圍。 此參數可接受的值為:Global、Local 和 Script,或相對於目前範圍的數位。 範圍數位 0 到範圍數目。 目前的範圍編號為 0,其父系為 1。 如需詳細資訊,請參閱 about_Scopes。
類型: | String |
Position: | Named |
預設值: | Local |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-UseTransaction
在作用中交易中包含 命令。 只有在交易進行中時,此參數才有效。 如需詳細資訊,請參閱 about_Transactions。
類型: | SwitchParameter |
別名: | usetx |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
您無法使用管線將輸入傳送至此 Cmdlet。
輸出
備註
-
New-PSDrive
的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請使用Get-PSProvider
。 如需提供者的詳細資訊,請參閱 about_Providers。 - 對應的網路驅動器機專屬於用戶帳戶。 使用其他使用者的認證在提升許可權的會話或會話中建立的對應磁碟驅動器,不會顯示在使用不同認證啟動的會話中。