Como bloquear um arquivo no Windows sem alterá-lo ou usar ferramentas de terceiros?

22

Existe uma maneira de bloquear um arquivo com ferramentas on-board para que ele não possa ser excluído ou substituído?

Para testar scripts de cópia, eu preciso de lock files temporarily para verificar o tratamento de erros nos scripts. Até o XP eu usei o carregamento de um arquivo no debug.exe para bloqueá-lo.

Existe alguma maneira no Windows 7 (e posterior)?

Editar
Eu sei que existem programas fazendo isso. Minha pergunta é se existe um mecanismo embutido no windows. Às vezes eu tenho que verificar um script em um PC e não quero instalar novos programas para isso.

Edit2
Aqui estão também boas sugestões: Como bloquear apenas um arquivo de propósito? , que, no entanto, precisam de ferramentas de terceiros ou alteram o arquivo a ser bloqueado.

    
por boboes 28.12.2014 / 14:07

5 respostas

41

Acho que o PowerShell é provavelmente a melhor maneira de conseguir isso. Algo como o seguinte:

#Specify the file name
$fileName = "C:\myfile.txt"

#Open the file in read only mode, without sharing (I.e., locked as requested)
$file = [System.io.File]::Open($fileName, 'Open', 'Read', 'None')

#Wait in the above (file locked) state until the user presses a key
Write-Host "Press any key to continue ..."
$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")

#Close the file (This releases the current handle and unlocks the file)
$file.Close()

Durante a pausa, o script acima causa o seguinte aviso ao tentar abrir o arquivo "myfile.txt":

    
por 28.12.2014 / 14:50
4

Como não gosto de instalar software que não utilizarei, encontrei esta jóia de VBScript:

Const ForAppending = 8
Set oFSO = CreateObject("Scripting.FileSystemObject")

Set f = oFSO.OpenTextFile("C:\Tst\My2.txt", ForAppending, True)

MsgBox "Press OK to unlock the file(s)"

Todo o crédito vai para Torgeir Bakken, você pode ver o post completo aqui: link

    
por 01.02.2016 / 14:20
0

Você não pode marcá-lo como somente leitura? Isso efetivamente "bloquearia" o arquivo, não permitindo que ele fosse alterado ou excluído.

O comando attrib.exe está disponível na linha de comando e permitirá que você defina um arquivo ou diretório para ser somente leitura. Mais informações sobre esse comando podem ser encontradas aqui

Por outro lado, você pode fazer a mesma coisa através da GUI clicando com o botão direito do mouse no arquivo ou diretório que deseja marcar como somente leitura, selecionando propriedades e marcando a caixa Somente leitura. Clicar em Apply / Ok aplica a nova configuração ao arquivo ou diretório.

    
por 28.12.2014 / 14:41
0

Não seria possível limitar a acessibilidade ao arquivo com a guia Segurança, quando você clica com o botão direito do mouse e acessa as propriedades do arquivo ou da pasta?

Se o usuário tiver acesso de administrador ao PC, isso não permitiria que ele removesse todos os outros recursos do arquivo / pasta?

Eu tenho que admitir enquanto digito que meu PC de trabalho ainda está no WinXP Pro, então o que eu disse acima pode não estar disponível por mais tempo - eu ainda não estou tão confortável com a minha nova caixa do Win 8.1 Pro em casa como eu estou com os anos de trabalho com o Win XP

    
por 07.01.2015 / 17:17
-1

Em alguns cenários, criar uma nova pasta com o nome do arquivo pode fazer o trabalho. (Por exemplo, recebo um erro ao tentar abrir o arquivo).

    
por 25.05.2016 / 10:44