Acesso Powershell ao caminho negado

Acesso Powershell ao caminho negado

Tenho certeza de que isso foi perguntado um milhão de vezes, mas não consigo entender por que não consigo executar este comando simples no PowerShell:

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

Estou sempre recebendo o seguinte erro:

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

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

De qualquer forma,

Eu tentei TODOS os seguintes, sem sucesso:

  • Executando o PowerShell como Administrador (ou seja, "Executar como Administrador")
  • Set-ExecutionPolicy RemoteSigned
  • "takeown" na pasta
  • definindo as configurações de segurança na pasta para: "todos> controle total"
  • -FORÇA

Onde diabos devo procurar uma resposta a seguir? Sou um administrador na minha máquina local. É extremamente frustrante não ter direitos para fazer algo tão simples como criar um arquivo de texto estúpido...

Tirando os cabelos...

Responder1

O formato de string DateTime retornado por Get-Datecontém caracteres que não podem ser usados ​​para nomes de arquivos. Tente algo assim:

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

Basta alterar a string de formato para atender às suas necessidades.

Responder2

A questão é que -name (get-date).txtnão é o mesmo que (get-date) + ".txt". O primeiro tentará ler uma propriedade chamada "txt" no System.DateTimeobjeto retornado, e o último anexará a string ".txt" a uma representação de string da data. No primeiro caso, .txt como propriedade retorna $nullporque não existe. Isso, por sua vez, significa que você está tentando executar efetivamente new-item -path .\desktop\foldero que retorna acesso negado porque a pasta já existe.

Responder3

Também recebi esse erro devido ao sinalizador somente leitura. Isso pode ser corrigido usando:

Set-ItemProperty -Path c:\users\me\desktop\testfolder -Name IsReadOnly -Value $true

informação relacionada