Akses berbagi jaringan tanpa memetakan huruf drive (PowerShell)

23

Saya ingin mengakses berbagi jaringan SMB jarak jauh \\SHARE-HOST\tanpa memetakan huruf drive. Saya bisa melakukannya secara manual di windows dengan mengetikkan \\SHARE-HOST\Share_folder\explorer. Jika saya ingin melakukannya secara terprogram saya harus menggunakan net useperintah. Ini mengharuskan saya untuk menentukan surat.

ServerAdminGuy45
sumber
Apakah perintah itu Set-Location \\SHARE-HOST\Share-foldertidak berhasil di dalam Powershell untuk Anda? Apakah ada pesan kesalahan?
jscott
1
"Saya harus menggunakan perintah net use. Ini mengharuskan saya untuk menentukan surat." Anda tidak harus menentukan satu: net use * \\share\folderakan menggunakan huruf drive gratis berikutnya (mulai dari Z:)
kapex
1
Sebenarnya, Anda tidak perlu menentukan atau menggunakan surat sama sekali dengan penggunaan internet. Lihat jawaban pertama di sini: serverfault.com/questions/580369/…
Joshua Hanley

Jawaban:

26

PowerShell sepenuhnya mendukung jalur UNC; Anda dapat menggunakannya di mana saja sebuah direktori atau nama file diharapkan:

  • Set-Location \\servername\sharename
  • Get-ChildItem \\servername\sharename
  • Copy-Item \\servername1\sharename1\filename.ext \\servername2\sharename2
  • Remove-Item \\servername\sharename\foldername\filename.ext

Namun, Anda memerlukan hak akses yang tepat untuk benar-benar terhubung ke share jarak jauh; ini berarti akun pengguna Anda harus sudah memiliki izin yang diperlukan, atau Anda harus secara manual membuat koneksi jaringan ke server jarak jauh sebelum mengakses folder dan file di dalamnya.

Lihat juga di sini: /programming/303045/connecting-to-a-network-folder-with-username-password-in-powershell .

Massimo
sumber
Anehnya, saya telah memberi tahu perilaku di mana tidak mungkin, misalnya, daftar konten dengan Get-ChildItemkecuali Anda mengubah lokasi Anda saat ini dengan Set-Locationke mesin jarak jauh (yaitu servername). Mungkin ini ada hubungannya dengan mesin UAC dan atau win10 +, tetapi tidak yakin.
Petr Abdulin
2

Anda perlu "menelusuri" bagian tersebut, kecuali Anda harus mengautentikasi dengan kredensial alternatif sebelumnya sehingga Anda dapat menggunakan yang di bawah ini:

get-childitem \\server\share
Ben Lavender
sumber
2

Saya dapat mengakses folder bersama di laptop saya hanya dengan mengetik

cd \\MYLAPTOP\C$\Games

Gunakan tanda kutip jika nama folder memiliki spasi:

cd "\\MYLAPTOP\C$\Games\Game Name"

Ini memberi saya akses ke sistem file komputer jarak jauh.

PS Microsoft.PowerShell.Core\FileSystem::\\MYLAPTOP\C$\Games>

cd adalah alias untuk Set-Location(s. http://technet.microsoft.com/en-us/library/ee176962.aspx ) yang mendukung jalur tersebut.

Namun, saya harus masuk ke komputer itu di explorer terlebih dahulu dengan mencoba membuka jalan di sana. Kemudian itu berhasil di PS juga. Anda mungkin perlu menambahkan kredensial masuk di PowerShell terlebih dahulu.

sinar
sumber
1

hanya ingin menambahkan jawaban massimo bahwa saya juga memperhatikan bahwa jika saya berada di PSDrives lain saya tidak dapat menggunakan lokasi jaringan tetapi lokasi biasa berfungsi dengan baik.

Misalnya, jika saya masuk Cert:\LocalMachine\>atau PS HKLM:\>tidak bisacd \\server\share

jika saya Set-Location C:dan kemudian Set-Location \\servername\shareberfungsi dengan baik.

Saya juga menemukan bahwa saya tidak perlu beralih ke lokasi jaringan untuk banyak perintah. Misalnya saya bisa Get-Content '\\127.0.0.1\C$\eula.1028.txt'dari C: \ baik.

PsychoData
sumber