Je suis sûr que cela a été demandé un million de fois, mais je ne peux pas comprendre pourquoi je ne peux pas exécuter cette commande simple dans PowerShell:
PS> new-item -path c:\users\me\desktop\testfolder -name (get-date).txt -value (get-date).toString() -itemtype file
Je reçois toujours l'erreur suivante:
New-Item : Access to the path 'C:\Users\Me\desktop\testfolder' is denied.
... PermissionDenied: ... UnauthorizedAccessException
... FullyQualifiedErrorId: NewItemUnauthorizedAccessError,Microsoft.PowerShell...
En tous cas,
J'ai essayé TOUT ce qui suit, en vain:
- Exécution de PowerShell en tant qu'administrateur (c'est-à-dire "Exécuter en tant qu'administrateur")
- Set-ExecutionPolicy RemoteSigned
- "takeown" sur le dossier
- définir les paramètres de sécurité du dossier sur: "tout le monde> contrôle total"
- -OBLIGER
Où diable devrais-je aller chercher une réponse ensuite? Je suis administrateur sur ma machine locale. C'est extrêmement frustrant de ne pas avoir le droit de faire quelque chose d'aussi simple que de créer un stupide fichier texte ...
Tirer les cheveux ...
Réponses:
Le format de chaîne DateTime renvoyé par
Get-Date
contient des caractères qui ne peuvent pas être utilisés pour les noms de fichiers. Essayez quelque chose comme ceci:Modifiez simplement la chaîne de format pour répondre à vos besoins.
la source
Le problème est que ce
-name (get-date).txt
n'est pas la même chose que(get-date) + ".txt"
. Le premier tentera de lire une propriété nommée "txt" sur l'System.DateTime
objet retourné , et le second ajoutera la chaîne ".txt" à une représentation sous forme de chaîne de la date. Dans le premier, .txt en tant que propriété renvoie$null
car il n'existe pas. Cela, à son tour, signifie que vous essayez d'exécuter efficacementnew-item -path .\desktop\folder
ce qui retourne l'accès refusé car le dossier existe déjà.la source