Truy cập ổ đĩa mạng đã được ánh xạ trong PowerShell


8

Tôi đang chạy cài đặt Windows Server 2012 bên trong VMWare Workstation. Tôi đã chia sẻ các thư mục được kích hoạt, vì vậy ổ đĩa Z:được ánh xạ tới \\vmware-host. Tôi có thể truy cập chính xác ổ đĩa này trong Explorer (Tôi có thể truy cập Z:bên trong "cmd" bình thường) và tôi có thể mở tệp đúng cách.

Tôi đã mở PowerShell và cố gắng cd Z:và tôi đã gặp lỗi sau:

cd: Không thể tìm thấy đường dẫn 'Z: \' vì nó không tồn tại.

Tại sao PowerShell không thể tìm thấy ổ đĩa mạng đã được ánh xạ?

Tôi googled một chút, và tìm thấy New-PSDrivelệnh. Tôi đã chạy như sau:

New-PSDrive -Name 'Z' -PSProvider FileSystem -Root 'Z:\'

nhưng tôi vẫn nhận được lỗi tương tự như trên. Tôi cần làm gì để truy cập các thư mục được chia sẻ VMWare bên trong PowerShell.


Get-PSDrive -PSProvider FileSystemBáo cáo gì khi bạn mở bảng điều khiển Powershell mới?
jscott

@jscott: Trong một giao diện điều khiển mới, tôi thấy A, CD. Trong giao diện điều khiển tôi đã mở, tôi cũng thấy Z. Tại sao giao diện điều khiển mới không hiển thị Z?
Rocket Hazmat

3
Bạn đang chạy Powershell nâng cao? Nếu vậy, vui lòng thử chạy nó mà không "Chạy với tư cách quản trị viên". Bạn sẽ cần phải ánh xạ lại ổ đĩa nếu chạy trên cao. stackoverflow.com/questions/4742992/ từ
jscott

@jscott: Nó đang chạy với tư cách Quản trị viên. Tôi cũng chạy Set-ExecutionPolicy -ExecutionPolicy Unrestricted. Tôi đang sử dụng PowerShell để thử chạy tập lệnh để gọi New-ADUser.
Rocket Hazmat

@jscott: Tôi chỉ chạy PowerShell với tư cách là người dùng của mình (không phải Quản trị viên) và nó có thể truy cập Z:mà không gặp vấn đề gì.
Rocket Hazmat

Câu trả lời:


8

Bạn cần làm cho ánh xạ ổ đĩa có sẵn cho người dùng bạn đang chạy Powershell. Bạn có thể làm như sau để cung cấp cho người dùng đó ánh xạ ổ đĩa giống nhau:

net use Z: "\\vmware-host\Shared Folders"

Xem câu hỏi SO sau: Không thể truy cập ổ đĩa mạng trong PowerShell với tư cách quản trị viên


Tôi cũng có thể đề cập rằng Powershell hỗ trợ sử dụng PUSHD và POPD (hoặc chính thức hơn: vị trí đẩy và vị trí pop) có thể phù hợp hơn để ánh xạ tạm thời một ổ đĩa cho một hoạt động cụ thể.
Get-HomeByFiveOClock 6/03/2015

5

Bạn đang bắt đầu bảng điều khiển PowerShell này với tư cách Quản trị viên hoặc là người dùng hiện tại của bạn?

Nếu bạn đang chạy nó từ một dấu nhắc lệnh không nâng cao, thì nó sẽ thấy tất cả các ổ đĩa mạng được ánh xạ cục bộ của bạn. Tôi đang ở trong tình trạng giống như bạn lúc này và đã x:lập bản đồ \\vmware-host\[folder], và một Get-PSDrive -PSProvider FileSystemhiển thị cho tôi tất cả các ổ đĩa được ánh xạ cục bộ của tôi.

Tuy nhiên , nếu tôi khởi động bàn điều khiển này với tư cách Quản trị viên, nó sẽ không thấy bất kỳ ổ đĩa được ánh xạ cục bộ nào của tôi, vì đối với lệnh nâng cao, bối cảnh bảo mật (giây) khác được sử dụng để tải ứng dụng, không chia sẻ kết nối mạng.

Tin tốt là về cơ bản bạn chỉ cần ánh xạ ổ đĩa trong bảng điều khiển quản trị viên chỉ một lần và nó sẽ vẫn ở trong bối cảnh bảo mật đó (cho đến khi khởi động lại, tôi nghĩ vậy).

Nếu bạn muốn tự động hóa việc này, bạn nên đọc các kịch bản tự động tải khi bạn bắt đầu một phiên quyền hạn. Về cơ bản nếu bạn tạo một thư mục trong tệp My Documentsđược gọi WindowsPowerShellvà bên trong tạo Microsoft.PowerShell_profile.ps1tệp đó, nó sẽ kích hoạt mỗi khi bạn khởi động bảng điều khiển powershell mới. Ở đó bạn có thể thêm một net uselệnh hoặc thêm các chức năng tùy chỉnh mà bạn đã viết mà bạn muốn sử dụng.

Ví dụ: tôi có một cái biến con trỏ của tôi thành màu đỏ cho bảng điều khiển quản trị và có một chức năng mà tôi có thể dễ dàng gọi để ký các tập lệnh PS1 của mình.


Vâng, đó là những gì đang xảy ra ở đây. Ổ đĩa được ánh xạ là người dùng của tôi và PowerShell đang chạy với tư cách Quản trị viên. Tôi đã quen với hệ vỏ Linux, không phải PowerShell.
Tên lửa Hazmat

Đó là một mẹo thực sự tốt về lời nhắc của bảng điều khiển quản trị. Bạn sử dụng gì trong profile.ps1 của mình để phát hiện xem phiên có cao hay không?
stib
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.