Diretório temporário para todos os usuários?

2

Este é o diretório Temp da minha conta de usuário:

C:\Users\John\AppData\Local\Temp

Existe um diretório Temp acessível para todos os usuários?

    
por John 25.04.2015 / 14:51

3 respostas

3

Existe um diretório temporário no diretório do Windows, ou seja, %SYSTEMROOT%\Temp , mas seu uso está obsoleto. Os aplicativos devem usar os diretórios temporários específicos do usuário.

Você pode, no entanto, redirecionar os diretórios temporários dos usuários, para que todos possam apontar para o mesmo diretório, se é isso o que você procura. Você apenas alteraria as variáveis de ambiente TMP e TEMP para apontar onde quiser. Certifique-se de que todos os usuários afetados possam gravar neste novo diretório.

    
por 25.04.2015 / 15:45
0

Não é um diretório Temp em si, mas você pode usar %PUBLIC% AKA C:\Users\Public como solução alternativa.

Além disso, C:\Users\All Users parece estar acessível a todos os usuários na máquina.

de uma pesquisa rápida :

The Public folder is located in "C:\Users\Public", in all Windows versions. All user accounts registered in Windows have access to it. That's why it is named Public. Any file and folder found in "C:\Users\Public" is completely accessible to all users

    
por 26.07.2018 / 14:35
0

(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

    
por 28.09.2018 / 17:36