Acceso de Powershell a la ruta denegada

11

Estoy seguro de que esto se ha pedido un millón de veces, pero no puedo entender por qué no puedo ejecutar este comando simple 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 todas formas,

He intentado TODO lo siguiente, sin éxito:

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

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

Tirando del pelo ...

ErOx
fuente
¿Has probado con el parámetro -Force?
EBGreen
acabo de intentarlo, el mismo error (lo
agregaré
Hice algunas pruebas en XP, no puedo crear archivos o carpetas en las carpetas de usuario (en mi caso C: \ Documents and Settings). Sin embargo, puedo realizar esto en C: \. Tiene que hacer algo con ACL o similares.
Mechaflash

Respuestas:

9

El formato de cadena DateTime devuelto por Get-Datecontiene caracteres que no se pueden usar para los nombres de archivo. Intenta 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.

Rynant
fuente
1
Duh ... buena captura.
EBGreen
1

El problema es que -name (get-date).txtno es lo mismo que (get-date) + ".txt". El primero intentará leer una propiedad llamada "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 devuelve $nullporque no existe. Esto, a su vez, significa que está intentando ejecutar efectivamente lo new-item -path .\desktop\folderque devuelve el acceso denegado porque la carpeta ya existe.

x0n
fuente