Powershell Truy cập vào đường dẫn bị từ chối


11

Tôi chắc chắn rằng điều này đã được hỏi hàng triệu lần, nhưng tôi không thể hiểu tại sao tôi không thể chạy lệnh đơn giản này trong powershell:

PS> new-item -path c:\users\me\desktop\testfolder -name (get-date).txt -value (get-date).toString() -itemtype file

Tôi mãi mãi nhận được lỗi sau:

New-Item : Access to the path 'C:\Users\Me\desktop\testfolder' is denied.

... PermissionDenied: ... UnauthorizedAccessException
... FullyQualifiedErrorId: NewItemUnauthorizedAccessError,Microsoft.PowerShell...

Dù sao,

Tôi đã thử TẤT CẢ những điều sau đây, nhưng không có kết quả:

  • Chạy powershell với tư cách Quản trị viên (nghĩa là "Chạy với tư cách Quản trị viên")
  • Set-ExecutPolicy RemoteSign
  • "Takeown" trên thư mục
  • cài đặt cài đặt bảo mật trên thư mục thành: "mọi người> toàn quyền kiểm soát"
  • -LỰC LƯỢNG

Tôi nên đi đâu để tìm câu trả lời tiếp theo? Tôi là quản trị viên trên máy cục bộ của mình. Điều này cực kỳ bực bội khi không có quyền làm điều gì đó đơn giản như tạo một tệp văn bản ngu ngốc ...

Nhổ tóc ...


Bạn đã thử với tham số -Force chưa?
EBGreen

vừa thử, cùng một lỗi (tôi sẽ thêm nó vào danh sách trên của tôi ngay bây giờ)
ErOx

Đã thực hiện một số thử nghiệm trên XP, không thể tạo tệp hoặc thư mục trong thư mục người dùng (trong trường hợp của tôi là C: \ Documents and Settings). Tôi có thể thực hiện điều này trong C: \ tuy nhiên. Phải làm một cái gì đó với ACL hoặc tương tự.
Mechaflash

Câu trả lời:


9

Định dạng chuỗi DateTime được trả về bởi Get-Datechứa các ký tự không thể được sử dụng cho tên tệp. Hãy thử một cái gì đó như thế này:

new-item -path .\desktop\testfolder -name "$(get-date -format 'yyyyMMdd_HHmm').txt" `
        -value (get-date).toString() -itemtype file

Chỉ cần thay đổi chuỗi định dạng để đáp ứng nhu cầu của bạn.


1
Duh ... bắt tốt.
EBGreen

1

Vấn đề là -name (get-date).txtkhông giống như (get-date) + ".txt". Cái trước sẽ cố đọc một thuộc tính có tên "txt" trên System.DateTimeđối tượng được trả về và cái sau sẽ nối chuỗi ".txt" vào một chuỗi đại diện cho ngày. Trước đây, .txt là tài sản trả về $nullvì nó không tồn tại. Đến lượt mình, điều này có nghĩa là bạn đang cố gắng chạy một cách hiệu quả new-item -path .\desktop\folder, trả về quyền truy cập bị từ chối vì thư mục đã tồn tại.

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.