Powershell Acesso ao caminho negado

11

Tenho certeza de que isso foi solicitado 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 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 eu deveria procurar uma resposta a seguir? Eu sou um administrador na minha máquina local. É extremamente frustrante não ter direitos para fazer algo tão simples quanto criar um arquivo de texto estúpido ...

Puxando cabelo ...

ErOx
fonte
Você já tentou com o parâmetro -Force?
precisa
apenas tentei, mesmo erro (i vou acrescentar que a minha lista acima agora)
Erox
Fiz algum teste no XP, não consigo criar arquivos ou pastas nas pastas do usuário (no meu caso C: \ Documents and Settings). Eu posso fazer isso em C: \ no entanto. Tem que fazer algo com ACLs ou algo parecido.
Mechaflash

Respostas:

9

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

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

Apenas altere a string de formato para atender às suas necessidades.

Rynant
fonte
11
Duh ... boa captura.
precisa saber é o seguinte
1

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

x0n
fonte