Acceso Powershell a la ruta denegado

Acceso Powershell a la ruta denegado

Estoy seguro de que me han preguntado esto un millón de veces, pero no puedo entender por qué no puedo ejecutar este simple comando en PowerShell:

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

Siempre recibo el siguiente error:

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

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

De todos modos,

Intenté TODO lo siguiente, sin éxito:

  • Ejecutar powershell como administrador (es decir, "Ejecutar como administrador")
  • Set-ExecutionPolicy RemoteSigned
  • "quitar" en la carpeta
  • establecer la configuración de seguridad en la carpeta en: "todos > control total"
  • -FUERZA

¿Dónde diablos debería ir a buscar una respuesta a continuación? Soy administrador en mi máquina local. Es extremadamente frustrante no tener derechos para hacer algo tan simple como crear un archivo de texto estúpido...

Arrancándose el pelo...

Respuesta1

El formato de cadena DateTime devuelto por Get-Datecontiene caracteres que no se pueden usar para nombres de archivos. Pruebe algo como esto:

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

Simplemente cambie la cadena de formato para satisfacer sus necesidades.

Respuesta2

El tema es que -name (get-date).txtno es lo mismo que (get-date) + ".txt". El primero intentará leer una propiedad denominada "txt" en el System.DateTimeobjeto devuelto y el segundo agregará la cadena ".txt" a una representación de cadena de la fecha. En el primero, .txt como propiedad regresa $nullporque no existe. Esto, a su vez, significa que estás intentando ejecutar de manera efectiva el archivo new-item -path .\desktop\folderque devuelve el acceso denegado porque la carpeta ya existe.

Respuesta3

También recibí este error debido al indicador de solo lectura. Esto se puede solucionar usando:

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

información relacionada