Existe uma maneira de bloquear um arquivo com ferramentas a bordo para que ele não possa ser excluído ou substituído?
Para testar scripts de cópia, preciso lock files temporarily
verificar o tratamento de erros nos scripts. Até XP, usei o carregamento de um arquivo no debug.exe para bloqueá-lo.
Existe uma maneira no Windows 7 (e posterior)?
Editar
Eu sei que existem programas fazendo isso. Minha pergunta é se existe um mecanismo interno no Windows. Às vezes, tenho que verificar um script em um PC e não quero instalar novos programas para isso.
Edit2
Aqui também há boas sugestões: Como bloquear exclusivamente um arquivo de propósito? , que, no entanto, precisam de ferramentas de terceiros ou alteram o arquivo para ser bloqueado.
windows-7
filesystems
lock
marsh-wiggle
fonte
fonte
Respostas:
Acho que o PowerShell é provavelmente a maneira mais legal de fazer isso. Algo como o seguinte:
Enquanto pausado, o script acima causa o seguinte prompt ao tentar abrir "myfile.txt":
fonte
File::Open
do MSDN para o método que detalha os parâmetros da chamada (especificamente, o último argumento'None'
, declina o compartilhamento do arquivo com outros threads / processos - e da mesma forma, existem disposições para bloquear o arquivo somente para leitura / gravação ou uma combinação dos mesmos).$host.UI.RawUI.ReadKey(...)
que falhará no PowerShell ISE, pois o ReadKey não está implementado para o ISE. A solução alternativa é[void](Read-Host 'Press Enter to continue')
. Não é exatamente o mesmo que o usuário precisa pressionar Enter, em vez de qualquer tecla. No entanto, bom o suficiente para a maioria dos propósitos. A solução alternativa veio desta postagem de blog: jeffwouters.nl/index.php/2016/06/…Como não gosto de instalar softwares que na verdade não vou usar, encontrei essa jóia do VBScript:
Todo o crédito é para Torgeir Bakken, você pode ver a publicação completa aqui: http://www.pcreview.co.uk/threads/how-to-lock-files.1518829/
fonte
Você não pode marcá-lo como somente leitura? Isso efetivamente "trava" o arquivo, não permitindo que ele seja 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 como somente leitura. Mais informações sobre esse comando podem ser encontradas aqui
Por outro lado, você pode fazer o mesmo 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 Aplicar / Ok, aplica a nova configuração ao arquivo ou diretório.
fonte
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 vai para Propriedades do arquivo ou pasta?
Se o usuário tiver acesso de administrador ao PC, isso não permitirá que ele remova todos os outros recursos de fazer alguma coisa com o arquivo / pasta?
Tenho que admitir que enquanto digito, meu PC de trabalho ainda está no WinXP Pro, portanto, o que afirmei acima pode não estar mais disponível - ainda não me sinto tão confortável com minha nova caixa do Win 8.1 Pro em casa quanto com o computador. anos de trabalho com o Win XP
fonte
Em alguns cenários, criar uma nova pasta com o nome do arquivo pode fazer o trabalho. (Ou seja, um erro ao tentar abrir o arquivo).
fonte