2015-07-30 12 views
5

Tôi đã tìm thấy nhiều chuỗi và đã đi qua chúng nhưng không có chủ đề nào thực sự khắc phục được sự cố của tôi. Tôi cố gắng giữ nó ngắn.Lệnh chạy trong ISE nhưng không phải là ps1 trong Bàn điều khiển

New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\dom\dfs\dom-loc-Share" –Persist 

Nó hoạt động hoàn toàn tốt nếu tôi chạy nó từ ISE. Nó hoạt động tốt khi tôi sao chép dán nó vào bàn điều khiển. Nó không hoạt động nếu tôi thử chạy ps1 trong bảng điều khiển.

  • tôi khởi động lại ISE
  • tôi đã kiểm tra và cả hai chạy trong Độc Threaded Căn hộ
  • ExecutionPolicy là không hạn chế
  • Tôi chạy cả hai as administrator

bạn có thể vui lòng giúp tôi?

+0

Bạn gặp lỗi từ 'New-PSDrive'? –

+0

Không, nếu tôi chạy thủ công trong bảng điều khiển: 'C: \ temp> Mới-PSDrive -Mô tả" Gruppen-Laufwerk "-Name" G "-PSProvider FileSystem -Root" \\ tên miền \ dfs \ domain-location-Share "- Persist' nó hoạt động tốt – Asharon

+0

Vâng, tôi nhận được điều đó, nhưng khi bạn chạy tập lệnh, bạn không nhận được lỗi, nó chỉ không gắn kết G: âm lượng, được hiểu đúng không? –

Trả lời

3

Sử dụng -Scope Global, để biết thêm thông tin ghé thăm bài viết TechNet này:

about_Scopes https://technet.microsoft.com/en-us/library/hh847849.aspx

[...] Windows PowerShell bảo vệ quyền truy cập vào các biến, bí danh, chức năng, và ổ đĩa Windows PowerShell (PSDrives) bằng cách giới hạn nơi chúng có thể là đọc và thay đổi. Bằng cách thực thi một vài quy tắc đơn giản cho phạm vi, Windows PowerShell giúp đảm bảo rằng bạn không vô tình thay đổi một mục không nên thay đổi. [...]

New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\dom\dfs\dom-loc-Share" –Persist -Scope Global 
+1

Có! Đó là những gì đã mất tích. Bây giờ nó hoạt động tốt - cảm ơn bạn rất nhiều! – Asharon

1

Bạn kiểm tra xem bản đồ của ổ đĩa G có được lập bản đồ không?

Nếu bạn chạy dưới đây trong kịch bản của bạn, mà sẽ chỉ cho bạn qua Get-PSDrive nếu ổ đĩa đã được tạo ra:

if(Get-PSDrive | ?{$_.Name -eq "G"}) { 
    'Removing G' 
    Remove-PSDrive "G" 
} 


'Adding G' 
New-PSDrive –Name "G" –PSProvider FileSystem –Root "\\ukcconas2edc\ax_docs" –Persist 


'Does G Exist?' 
Get-PSDrive | ?{$_.Name -eq "G"} 

Nếu bạn chỉ cần kiểm tra thông qua Windows Explorer, tôi nghĩ rằng một số điều buồn cười xảy ra với bộ nhớ đệm ở đó. Sau khi chạy tập lệnh, nhấp vào Computer, sau đó ở ngăn bên phải (nơi các ổ đĩa được liệt kê) nhấp chuột phải và chọn Refresh; hy vọng ổ G sẽ hiển thị.

Ngoài ra, nếu bạn có bảng điều khiển powerhell khác và bạn đang kiểm tra bằng cách chạy push-location g: hoặc get-psdrive, nếu phiên bạn đang sử dụng để kiểm tra ổ đĩa đã được tạo trước khi ổ đó được tạo, nó sẽ không liệt kê . Tôi giả định điều này là do bộ nhớ đệm trong PowerShell/có lẽ là cố ý để tránh các kịch bản chạy song song từ can thiệp với nhau?

+1

Cảm ơn rất nhiều, tôi chỉ đăng một phần của tập lệnh để giữ câu trả lời cho vấn đề. Cảm ơn bạn cho đầu vào của bạn mặc dù, tôi sẽ sử dụng nó để cải thiện phiên bản của tôi. – Asharon

Các vấn đề liên quan