เข้าถึงเครือข่ายที่ใช้ร่วมกันโดยไม่ใช้อักษรชื่อไดรฟ์ (PowerShell)


23

ฉันต้องการเข้าถึงเครือข่าย SMB ระยะไกลร่วมกัน\\SHARE-HOST\โดยไม่ต้องทำแผนที่อักษรระบุไดรฟ์ ฉันสามารถทำได้ด้วยตนเองใน windows โดยการพิมพ์\\SHARE-HOST\Share_folder\ใน explorer ถ้าฉันต้องการที่จะทำมันโดยทางโปรแกรมฉันต้องใช้net useคำสั่ง ฉันต้องการระบุตัวอักษร


คำสั่งSet-Location \\SHARE-HOST\Share-folderไม่ทำงานภายใน Powershell สำหรับคุณหรือไม่ มีข้อผิดพลาดหรือไม่?
jscott

1
"ฉันต้องใช้คำสั่ง net use สิ่งนี้ทำให้ฉันต้องระบุตัวอักษร" คุณไม่ได้มีการระบุที่หนึ่ง: net use * \\share\folderจะใช้ตัวอักษรที่อยู่ถัดจากฟรีไดรฟ์ (เริ่มต้นจากZ:)
kapex

1
ที่จริงแล้วคุณไม่จำเป็นต้องระบุหรือใช้ตัวอักษรเลยด้วยการใช้เน็ต ดูคำตอบแรกได้ที่นี่: serverfault.com/questions/580369/…
Joshua Hanley

คำตอบ:


26

PowerShell รองรับเส้นทาง UNC อย่างสมบูรณ์ คุณสามารถใช้มันได้ทุกที่ที่คาดว่าจะมีไดเรกทอรีหรือชื่อไฟล์:

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

อย่างไรก็ตามคุณต้องมีสิทธิ์การเข้าถึงที่เหมาะสมเพื่อเชื่อมต่อกับการแชร์ระยะไกลอย่างแท้จริง ซึ่งหมายความว่าบัญชีผู้ใช้ของคุณจะต้องมีสิทธิ์ที่จำเป็นอยู่แล้วหรือคุณต้องสร้างการเชื่อมต่อเครือข่ายไปยังเซิร์ฟเวอร์ระยะไกลด้วยตนเองก่อนที่จะเข้าถึงโฟลเดอร์และไฟล์ต่างๆ

ดูเพิ่มเติมที่นี่: /programming/303045/connecting-to-a-network-folder-with-username-password-in-powershell


น่าแปลกที่ฉันได้สังเกตเห็นพฤติกรรมที่ไม่สามารถทำได้ตัวอย่างเช่นรายการเนื้อหาด้วยGet-ChildItemเว้นแต่คุณจะเปลี่ยนตำแหน่งปัจจุบันของคุณSet-Locationเป็นเครื่องระยะไกล (เช่นservername) อาจเป็นไปได้ว่าสิ่งนี้เกี่ยวข้องกับ UAC และหรือ win10 + เครื่อง แต่ไม่แน่ใจ
Petr Abdulin

2

คุณต้อง "เรียกดู" การแชร์ยกเว้นว่าคุณจะต้องรับรองความถูกต้องด้วยข้อมูลประจำตัวอื่น ๆ ก่อนจากนั้นคุณสามารถใช้ด้านล่าง:

get-childitem \\server\share

2

ฉันสามารถเข้าถึงโฟลเดอร์ที่แชร์บนแล็ปท็อปของฉันได้โดยพิมพ์

cd \\MYLAPTOP\C$\Games

ใช้เครื่องหมายคำพูดหากชื่อโฟลเดอร์มีช่องว่าง:

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

สิ่งนี้ทำให้ฉันสามารถเข้าถึงระบบไฟล์ของคอมพิวเตอร์ระยะไกลได้

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

cd เป็นนามแฝงถึงSet-Location(s. http://technet.microsoft.com/en-us/library/ee176962.aspx ) ซึ่งรองรับเส้นทางดังกล่าว

อย่างไรก็ตามฉันต้องเข้าสู่ระบบคอมพิวเตอร์นั้นใน Explorer ก่อนโดยพยายามเปิดเส้นทางที่นั่น จากนั้นก็ทำงานใน PS ได้เช่นกัน คุณอาจต้องเพิ่มข้อมูลรับรองการเข้าสู่ระบบใน PowerShell ก่อน


1

เพียงแค่ต้องการเพิ่มคำตอบของ massimoที่ฉันยังสังเกตเห็นว่าถ้าฉันอยู่ใน PSDrives อื่นฉันไม่สามารถใช้ตำแหน่งเครือข่าย แต่ตำแหน่งปกติทำงานได้ดี

ตัวอย่างเช่นถ้าฉันอยู่Cert:\LocalMachine\>หรือPS HKLM:\>ฉันไม่สามารถcd \\server\share

ถ้าฉันSet-Location C:แล้วSet-Location \\servername\shareก็ทำงานได้ดี

ฉันยังพบว่าฉันไม่จำเป็นต้องสลับไปยังตำแหน่งเครือข่ายสำหรับคำสั่งมากมาย เช่นฉันทำได้Get-Content '\\127.0.0.1\C$\eula.1028.txt'จาก C: \ fine

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.