(Estou usando powershell
aqui!)
solução 1
É possível criar uma pasta temporária na pasta compartilhada publicamente assim:
## "$tmp": thus you can use $tmp later on to reference it
## "-force": does not complain if already existing
## " | out-null": suppresses md standard output
PS C:\> $tmp = "$env:public\tmp" ; md -force $tmp | out-null
Deve ser acessível por todos os usuários.
No entanto, a pasta compartilhada pode ser somente leitura se configurado explicitamente .
solução 2
Usando $env:windir\Temp
ou $env:systemroot\Temp
(por exemplo, C:\Windows\Temp
) parece depreciado e mais feio , mas funciona (por exemplo, em um ambiente Win2012R2 ) com alguns ajustes extras ...
Você não pode listar seu conteúdo direto, o que pode não ser ruim, dependendo de suas necessidades:
PS C:\> cd $env:windir\temp
PS C:\Windows\Temp> ls
ls : Der Zugriff auf den Pfad "C:\Windows\temp" wurde verweigert.
In Zeile:1 Zeichen:1
+ ls
+ ~~
+ CategoryInfo : PermissionDenied: (C:\Windows\temp:String) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand
PS C:\Windows\Temp> md test ; echo "test123" > test\test.txt
Verzeichnis: C:\Windows\temp\test
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 28.09.2018 17:08 20 test.txt
Mas outros usuários não poderão ver normalmente se não tiverem direitos de administrador:
## as other non-admin user:
PS C:\Windows\Temp> cd test
cd : Zugriff verweigert
In Zeile:1 Zeichen:1
+ cd test
+ ~~~~~~~~
+ CategoryInfo : PermissionDenied: (C:\Windows\Temp\test:String) [Set-Location], UnauthorizedAccessException
+ FullyQualifiedErrorId : ItemExistsUnauthorizedAccessError,Microsoft.PowerShell.Commands.SetLocationCommand
cd : Der Pfad "C:\Windows\Temp\test" kann nicht gefunden werden, da er nicht vorhanden ist.
In Zeile:1 Zeichen:1
+ cd test
+ ~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Windows\Temp\test:String) [Set-Location], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
Para resolver isso, talvez seja necessário alterar permissões via Set-Acl