Truy cập chia sẻ mạng mà không cần ánh xạ ký tự ổ đĩa (PowerShell)


23

Tôi muốn truy cập vào chia sẻ mạng SMB từ xa \\SHARE-HOST\mà không cần ánh xạ ký tự ổ đĩa. Tôi có thể tự làm điều đó trong các cửa sổ bằng cách gõ \\SHARE-HOST\Share_folder\vào explorer. Nếu tôi muốn làm điều đó theo chương trình, tôi phải sử dụng net uselệnh. Điều này đòi hỏi tôi phải chỉ định một lá thư.


Lệnh Set-Location \\SHARE-HOST\Share-folderkhông hoạt động trong Powershell cho bạn? Có một thông báo lỗi?
jscott

1
"Tôi phải sử dụng lệnh sử dụng mạng. Điều này đòi hỏi tôi phải chỉ định một chữ cái." Bạn không phải chỉ định một: net use * \\share\foldersẽ sử dụng ký tự ổ đĩa miễn phí tiếp theo (bắt đầu từ Z:)
kapex

1
Trên thực tế, bạn không cần phải chỉ định hoặc sử dụng một chữ cái với việc sử dụng mạng. Xem câu trả lời đầu tiên tại đây: serverfault.com/questions/580369/ Kẻ
Joshua Hanley

Câu trả lời:


26

PowerShell hỗ trợ đầy đủ các đường dẫn UNC; bạn có thể sử dụng chúng ở mọi nơi mà một thư mục hoặc tên tệp sẽ được mong đợi:

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

Tuy nhiên, bạn cần quyền truy cập phù hợp để thực sự kết nối với chia sẻ từ xa; điều này có nghĩa là tài khoản người dùng của bạn phải có các quyền cần thiết hoặc bạn phải tự thiết lập kết nối mạng với máy chủ từ xa trước khi truy cập các thư mục và tệp trên đó.

Xem thêm tại đây: /programming/303045/connecting-to-a-network-folder-with-username-password-in-powershell .


Thật kỳ lạ, tôi đã nhận thấy một hành vi trong đó không thể liệt kê nội dung Get-ChildItemtrừ khi bạn thay đổi vị trí hiện tại của mình với Set-Locationmáy từ xa (ví dụ servername). Có thể điều này có liên quan đến máy UAC và hoặc win10 +, nhưng không chắc chắn.
Petr Abdulin

2

Bạn cần phải duyệt qua các phần chia sẻ, trừ khi bạn phải xác thực bằng các thông tin thay thế trước đó thì bạn có thể sử dụng thông tin dưới đây:

get-childitem \\server\share

2

Tôi có thể truy cập thư mục dùng chung trên máy tính xách tay của mình bằng cách nhập

cd \\MYLAPTOP\C$\Games

Sử dụng dấu ngoặc kép nếu tên thư mục có khoảng trắng:

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

Điều này cho phép tôi truy cập vào hệ thống tập tin của máy tính từ xa.

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

cd là một bí danh cho Set-Location(s. http://technet.microsoft.com/en-us/l Library / ee176962.aspx ) hỗ trợ các đường dẫn như vậy.

Tuy nhiên, tôi bắt buộc phải đăng nhập vào máy tính đó trong trình thám hiểm trước bằng cách mở đường dẫn ở đó. Sau đó, nó làm việc trong PS quá. Trước tiên, bạn có thể cần thêm thông tin đăng nhập trong PowerShell.


1

chỉ muốn thêm vào câu trả lời của massimo mà tôi cũng nhận thấy rằng nếu tôi ở các PSDrive khác, tôi không thể sử dụng các vị trí mạng nhưng các vị trí thông thường hoạt động tốt.

Ví dụ: nếu tôi ở Cert:\LocalMachine\>hoặc PS HKLM:\>tôi không thểcd \\server\share

nếu tôi Set-Location C:và sau đó Set-Location \\servername\sharenó hoạt động tốt.

Tôi cũng thấy rằng tôi không cần phải chuyển sang vị trí mạng cho nhiều lệnh. Ví dụ tôi có thể Get-Content '\\127.0.0.1\C$\eula.1028.txt'từ C: \ fine.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.