New-PSDrive

Membuat drive sementara dan persisten yang terkait dengan lokasi di penyimpanan data item.

Sintaks

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

Deskripsi

New-PSDrive Cmdlet membuat drive sementara dan persisten yang dipetakan atau dikaitkan dengan lokasi di penyimpanan data, seperti drive jaringan, direktori di komputer lokal, atau kunci registri, dan drive jaringan yang dipetakan Windows persisten yang terkait dengan lokasi sistem file pada komputer jarak jauh.

Drive sementara hanya ada di sesi PowerShell saat ini dan dalam sesi yang Anda buat di sesi saat ini. Mereka dapat memiliki nama apa pun yang valid di PowerShell dan dapat dipetakan ke sumber daya lokal atau jarak jauh apa pun. Anda dapat menggunakan drive PowerShell sementara untuk mengakses data di penyimpanan data terkait, seperti yang akan Anda lakukan dengan drive jaringan yang dipetakan. Anda dapat mengubah lokasi menjadi drive, dengan menggunakan Set-Location, dan mengakses konten drive dengan menggunakan Get-Item atau Get-ChildItem.

Karena drive sementara hanya diketahui PowerShell, Anda tidak dapat mengaksesnya dengan menggunakan File Explorer, Windows Management Instrumentation (WMI), Component Object Model (COM), Microsoft .NET Framework, atau dengan alat seperti net use.

Fitur berikut ditambahkan ke New-PSDrive di PowerShell 3.0:

  • Kandar jaringan yang dipetakan. Anda dapat menggunakan parameter Persist untuk New-PSDrive membuat drive jaringan yang dipetakan Windows. Tidak seperti drive PowerShell sementara, drive jaringan yang dipetakan Windows tidak spesifik untuk sesi. Mereka disimpan di Windows dan dapat dikelola dengan menggunakan alat Windows standar, seperti File Explorer dan penggunaan bersih. Kandar jaringan yang dipetakan harus memiliki nama huruf kandar dan tersambung ke lokasi sistem berkas jarak jauh. Saat perintah Anda dilingkup secara lokal, tidak ada sumber titik, parameter Persist tidak mempertahankan pembuatan PSDrive di luar cakupan tempat perintah dijalankan. Jika Anda menjalankan New-PSDrive di dalam skrip, dan Anda ingin drive bertahan tanpa batas waktu, Anda harus sumber titik skrip. Untuk hasil terbaik, untuk memaksa drive baru bertahan tanpa batas waktu, tambahkan parameter Cakupan ke perintah Anda, dan atur nilainya ke Global. Untuk informasi selengkapnya tentang sumber titik, lihat about_Scripts.
  • Drive eksternal. Saat drive eksternal tersambung ke komputer, PowerShell secara otomatis menambahkan PSDrive ke sistem file yang mewakili drive baru. Anda tidak perlu memulai ulang PowerShell. Demikian pula, ketika drive eksternal terputus dari komputer, PowerShell secara otomatis menghapus PSDrive yang mewakili drive yang dihapus.
  • Kredensial untuk jalur Universal Naming Convention (UNC).

Ketika nilai parameter Akar adalah jalur UNC, seperti \\Server\Share, kredensial yang ditentukan dalam nilai parameter Kredensial digunakan untuk membuat PSDrive. Jika tidak, Kredensial tidak efektif saat Anda membuat drive sistem file baru.

Beberapa sampel kode menggunakan splatting untuk mengurangi panjang baris dan meningkatkan keterbacaan. Untuk informasi selengkapnya, lihat about_Splatting.

Catatan

Kecuali Anda menggunakan parameter Cakupan , PSDrive dibuat dalam cakupan tempat New-PSDrive perintah dijalankan.

Contoh

Contoh 1: Membuat drive sementara yang dipetakan ke berbagi jaringan

Contoh ini membuat drive PowerShell sementara yang dipetakan ke berbagi jaringan.

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

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

New-PSDrive menggunakan parameter Nama untuk menentukan drive PowerShell bernama Public dan parameter PSProvider untuk menentukan penyedia PowerShell FileSystem . Parameter Akar menentukan jalur UNC berbagi jaringan.

Untuk menampilkan konten dari sesi PowerShell: Get-ChildItem -Path Public:

Contoh 2: Membuat drive sementara yang dipetakan ke direktori lokal

Contoh ini membuat drive PowerShell sementara yang menyediakan akses ke direktori di komputer lokal.

$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 membuat kunci dan nilai parameter. Parameter Nama menentukan nama drive, MyDocs. Parameter PSProvider menentukan penyedia PowerShell FileSystem . Root menentukan direktori komputer lokal. Parameter Deskripsi menjelaskan tujuan drive. New-PSDrive menggunakan parameter yang di-splat untuk membuat MyDocs drive.

Untuk menampilkan konten dari sesi PowerShell: Get-ChildItem -Path MyDocs:

Contoh 3: Membuat drive sementara untuk kunci registri

Contoh ini membuat drive PowerShell sementara yang menyediakan akses ke kunci registri. Ini membuat drive bernama MyCompany yang dipetakan ke HKLM:\Software\MyCompany kunci registri.

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

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

New-PSDrive menggunakan parameter Nama untuk menentukan drive PowerShell bernama MyCompany dan parameter PSProvider untuk menentukan penyedia PowerShell Registry . Parameter Akar menentukan lokasi registri.

Untuk menampilkan konten dari sesi PowerShell: Get-ChildItem -Path MyCompany:

Contoh 4: Membuat drive jaringan yang dipetakan persisten menggunakan kredensial

Contoh ini memetakan drive jaringan yang diautentikasi dengan kredensial akun layanan domain. Untuk informasi selengkapnya tentang objek PSCredential yang menyimpan kredensial dan bagaimana kata sandi disimpan sebagai SecureString, lihat deskripsi parameter Info masuk .

$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

Catatan

Ingat, jika Anda menggunakan cuplikan di atas dalam skrip, atur nilai parameter Cakupan ke "Global" untuk memastikan drive tetap berada di luar cakupan saat ini.

Variabel $cred menyimpan objek PSCredential yang berisi kredensial akun layanan. Get-Credential meminta Anda untuk memasukkan kata sandi yang disimpan di SecureString.

New-PSDrive membuat drive jaringan yang dipetakan dengan menggunakan beberapa parameter. Nama menentukan S huruf kandar yang diterima Windows. dan Root mendefinisikan \\Server01\Scripts sebagai lokasi pada komputer jarak jauh. Pertahankan membuat kandar jaringan yang dipetakan Windows yang disimpan di komputer lokal. PSProvider menentukan FileSystem penyedia. Kredensial menggunakan $cred variabel untuk mendapatkan kredensial akun layanan untuk autentikasi.

Drive yang dipetakan dapat dilihat di komputer lokal dalam sesi PowerShell, File Explorer, dan dengan alat seperti penggunaan bersih. Untuk menampilkan konten dari sesi PowerShell: Get-ChildItem -Path S:

Contoh 5: Membuat drive persisten dan sementara

Contoh ini menunjukkan perbedaan antara drive jaringan yang dipetakan persisten dan drive PowerShell sementara yang dipetakan ke berbagi jaringan yang sama.

Jika Anda menutup sesi PowerShell lalu membuka sesi baru, sementara PSDrive: tidak tersedia, tetapi drive persisten X: tersedia. Saat memutuskan metode mana yang akan digunakan untuk memetakan drive jaringan, pertimbangkan bagaimana Anda akan menggunakan drive. Misalnya, apakah itu harus persisten, dan apakah drive harus terlihat oleh fitur Windows lainnya.

# 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

Contoh 6: Membuat drive persisten dalam skrip

PSDrive dibuat dalam cakupan tempat New-PSDrive perintah dijalankan. Saat perintah dijalankan dalam skrip, pemetaan drive bersifat lokal untuk skrip. Ketika skrip keluar, drive tidak lagi tersedia.

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

Untuk memastikan bahwa drive tersedia di luar skrip untuk harus menggunakan parameter Cakupan untuk membuat drive di lingkup Global .

Parameter

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

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

-Credential

Menentukan akun pengguna yang memiliki izin untuk melakukan tindakan ini. Defaultnya adalah pengguna saat ini.

Karena PowerShell 3.0, ketika nilai parameter Root adalah jalur UNC, Anda dapat menggunakan kredensial untuk membuat drive sistem file.

Ketik nama pengguna, seperti User01 atau Domain01\User01, atau masukkan objek PSCredential yang dihasilkan oleh Get-Credential cmdlet . Jika Anda mengetik nama pengguna, Anda akan diminta untuk memasukkan kata sandi.

Kredensial disimpan dalam objek PSCredential dan kata sandi disimpan sebagai SecureString.

Catatan

Untuk informasi selengkapnya tentang perlindungan data SecureString , lihat Seberapa aman SecureString?.

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

-Description

Menentukan deskripsi teks singkat drive. Ketik string apa pun.

Untuk melihat deskripsi semua drive sesi, Get-PSDrive | Format-Table Name, Description.

Untuk melihat deskripsi drive tertentu, ketik (Get-PSDrive <DriveName>).Description.

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

-Name

Menentukan nama untuk kandar baru. Untuk drive jaringan yang dipetakan persisten, gunakan huruf kandar. Untuk drive PowerShell sementara, Anda tidak terbatas pada huruf drive, gunakan string yang valid.

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

-Persist

Menunjukkan bahwa cmdlet ini membuat drive jaringan yang dipetakan Windows. Parameter Persist hanya tersedia di Windows.

Kandar jaringan yang dipetakan disimpan di Windows pada komputer lokal. Mereka persisten, tidak spesifik sesi, dan dapat dilihat dan dikelola di File Explorer dan alat lainnya.

Saat Anda mencakup perintah secara lokal, tanpa sumber titik, parameter Persist tidak mempertahankan pembuatan PSDrive di luar cakupan tempat Anda menjalankan perintah. Jika Anda menjalankan New-PSDrive di dalam skrip, dan Anda ingin drive baru bertahan tanpa batas waktu, Anda harus sumber titik skrip. Untuk hasil terbaik, untuk memaksa drive baru bertahan, tentukan Global sebagai nilai parameter Cakupan dan sertakan Pertahankan dalam perintah Anda.

Nama drive harus berupa huruf, seperti D atau E. Nilai parameter Root harus merupakan jalur UNC dari komputer yang berbeda. Nilai parameter PSProvider harus FileSystem.

Untuk memutuskan sambungan drive jaringan yang dipetakan Windows, gunakan Remove-PSDrive cmdlet . Ketika Anda memutuskan sambungan kandar jaringan yang dipetakan Windows, pemetaan dihapus secara permanen dari komputer, bukan hanya dihapus dari sesi saat ini.

Drive jaringan yang dipetakan khusus untuk akun pengguna. Drive yang dipetakan yang dibuat dalam sesi atau sesi yang ditingkatkan menggunakan kredensial pengguna lain tidak terlihat dalam sesi yang dimulai menggunakan kredensial yang berbeda.

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

-PSProvider

Menentukan penyedia PowerShell yang mendukung drive semacam ini.

Misalnya, jika drive dikaitkan dengan berbagi jaringan atau direktori sistem file, penyedia PowerShell adalah FileSystem. Jika drive dikaitkan dengan kunci registri, penyedianya adalah Registry.

Drive PowerShell sementara dapat dikaitkan dengan penyedia PowerShell apa pun. Kandar jaringan yang dipetakan hanya dapat dikaitkan dengan FileSystem penyedia.

Untuk melihat daftar penyedia di sesi PowerShell Anda, gunakan Get-PSProvider cmdlet .

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

-Root

Menentukan lokasi penyimpanan data tempat drive PowerShell dipetakan.

Misalnya, tentukan berbagi jaringan, seperti \\Server01\Public, direktori lokal, seperti C:\Program Files, atau kunci registri, seperti HKLM:\Software\Microsoft.

Drive PowerShell sementara dapat dikaitkan dengan lokasi lokal atau jarak jauh pada drive penyedia yang didukung. Kandar jaringan yang dipetakan hanya dapat dikaitkan dengan lokasi sistem berkas pada komputer jarak jauh.

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

-Scope

Menentukan cakupan untuk drive. Nilai yang dapat diterima untuk parameter ini adalah: Global, Lokal, dan Skrip, atau angka yang relatif terhadap cakupan saat ini. Cakupan nomor 0 melalui jumlah cakupan. Nomor cakupan saat ini adalah 0 dan induknya adalah 1. Untuk informasi selengkapnya, lihat about_Scopes.

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

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

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

Input

None

Anda tidak dapat menyalurkan input ke cmdlet ini.

Output

PSDriveInfo

Catatan

New-PSDrive dirancang untuk bekerja dengan data yang diekspos oleh penyedia mana pun. Untuk mencantumkan penyedia yang tersedia di sesi Anda, gunakan Get-PSProvider. Untuk informasi selengkapnya tentang penyedia, lihat about_Providers.

Drive jaringan yang dipetakan khusus untuk akun pengguna. Drive yang dipetakan yang dibuat dalam sesi atau sesi yang ditingkatkan menggunakan kredensial pengguna lain tidak terlihat dalam sesi yang dimulai menggunakan kredensial yang berbeda.