Skip to content

Latest commit

 

History

88 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sync Master

Ferramentas de sincronização, backup, diagnóstico e manutenção para Windows

PowerShell 5.1 no bootstrap · PowerShell 7 preferido · Windows 10/11 x64

Important

Algumas operações alteram arquivos, serviços, Registro, energia ou discos e podem solicitar elevação pelo UAC. Leia os resumos e confirmações exibidos antes de continuar.

Visão geral

O Sync Master reúne rotinas administrativas e de engenharia em um menu único. O projeto usa recursos nativos do Windows sempre que possível e separa as funcionalidades em módulos PowerShell testáveis.

Área Recursos principais
Sincronização Simulação, cópia unilateral segura, espelhamento, exclusões de perfil e agendamento
Backup Criação e restauração segura de arquivos ZIP
Arquivos Duplicados, hashes, integridade e permissões
Sistema Medição antes/depois, limpeza, inicialização, energia, armazenamento, Defender e reparo
Hardware CPU, memória, discos, SMART e monitoramento em tempo real
Rede Ping, portas TCP, ARP, DNS, netstat, Whois e teste de velocidade
PowerShell Detecção, instalação e atualização do PowerShell 7
Windows Diagnóstico de licenciamento, instalação de chave e ativação oficial

Início rápido

Escolha uma das duas formas abaixo.

Opção 1 — clonar com Git

git clone https://github.com/Codyte/Sync.git
Set-Location .\Sync
& '.\Sync Master.cmd'

Depois, você também pode iniciar o programa clicando duas vezes em Sync Master.cmd.

Opção 2 — instalar e executar com IRM

irm https://raw.githubusercontent.com/Codyte/Sync/master/install.ps1 | iex

Esse comando instala em %LOCALAPPDATA%\SyncMaster\App e abre o launcher. Nas próximas execuções, ele prefere a release estável mais recente, repete falhas transitórias de rede e confere tamanho e SHA256 do asset SyncMaster.zip publicados pela API do GitHub antes de atualizar. A versão anterior fica em %LOCALAPPDATA%\SyncMaster\App.previous e é restaurada se o novo launcher não puder ser iniciado. Enquanto ainda não houver nenhuma release, o bootstrap usa temporariamente um ZIP preso ao commit exato da master. Configurações e logs não são apagados.

URL equivalente usando o domínio github.com:

irm https://github.com/Codyte/Sync/raw/refs/heads/master/install.ps1 | iex

Caution

irm ... | iex executa imediatamente o conteúdo recebido da internet. Se preferir inspecionar o instalador antes, use a forma em duas etapas:

irm https://raw.githubusercontent.com/Codyte/Sync/master/install.ps1 -OutFile $env:TEMP\SyncMaster-install.ps1
& $env:TEMP\SyncMaster-install.ps1

Nos dois métodos, o launcher abre o menu como administrador e, quando possível, relança automaticamente no PowerShell 7.

PowerShell 7

O Windows PowerShell 5.1 já acompanha o Windows e é suficiente para iniciar o bootstrap. O PowerShell 7 é recomendado para o funcionamento completo.

Se ele não estiver instalado, o Sync Master tenta, nesta ordem:

  1. WinGet;
  2. MSI oficial com assinatura Microsoft validada;
  3. ZIP oficial versionado no perfil do usuário, depois de validar URL, tamanho e SHA256 publicados pelo GitHub.

O terceiro método não exige privilégios administrativos e não executa outro script remoto. Depois da instalação, o launcher localiza o pwsh.exe mesmo antes de o PATH da sessão ser atualizado.

Também é possível instalar pela Microsoft Store. Depois da instalação, feche e abra novamente o Sync Master.

Note

A versão da Store é instalada por usuário. Para tarefas agendadas executadas como SYSTEM, o Sync Master usa o Windows PowerShell 5.1 quando não encontra uma instalação de sistema do PowerShell 7.

Criar aplicativo com PS2EXE

A opção APP resolve o comando Invoke-ps2exe do módulo instalado, sem depender de uma pasta versionada. Instale o módulo uma vez no perfil do usuário:

Install-Module PS2EXE -Scope CurrentUser

O executável anterior só é substituído depois que o conversor cria uma nova saída válida.

Modos de uso

Menu interativo

pwsh -NoProfile -ExecutionPolicy Bypass -File .\Sync_Master.ps1

O menu interativo exige privilégios de administrador porque reúne operações que modificam configurações do sistema.

Sincronização direta

pwsh -NoProfile -ExecutionPolicy Bypass -File .\Sync_Master.ps1 `
  -Acao Sincronizar `
  -Origem 'C:\Dados' `
  -Destino 'D:\Backup' `
  -Modo Unilateral

O modo automatizado não abre prompts e pode ser usado pelo Agendador de Tarefas.

Warning

O modo Bilateral executa espelhamento nos dois sentidos e pode excluir dados no destino. Faça uma simulação ou backup antes de usá-lo.

Instalação como módulo

Para disponibilizar Start-SyncMaster em qualquer pasta:

.\Install-SyncMaster.ps1
Start-SyncMaster

Instalação para todos os usuários, em uma sessão elevada:

.\Install-SyncMaster.ps1 -Scope AllUsers

Desinstalação:

.\Install-SyncMaster.ps1 -Uninstall

Dados e logs

Configurações, backups auxiliares e logs ficam fora do repositório:

%LOCALAPPDATA%\SyncMaster\
├── Logs\
├── Backups\
├── Reports\Performance\
└── diretorios.json

Cada execução interativa tenta criar um transcript em Logs\sessao_AAAA-MM-DD_HH-mm-ss.log. Para diagnóstico em outra máquina, envie o transcript mais recente junto com uma captura do erro.

O menu de desempenho salva snapshots JSON em Reports\Performance. Compare dois estados coletados em condições semelhantes para verificar o efeito real de uma mudança. CPU e memória variam com a carga; um único valor isolado não prova ganho.

As ações de desempenho usam mecanismos documentados do Windows: gerenciamento reversível de inicialização, Optimize-Volume, planos nativos do powercfg, relatórios de energia/bateria, Quick Scan e analisador de desempenho do Microsoft Defender. Atualizações, Sensor de Armazenamento, apps em segundo plano, efeitos visuais e GPU são abertos nas configurações oficiais para decisão do usuário; o Sync Master não instala atualizações, remove apps, cria exclusões do Defender nem altera automaticamente o arquivo de paginação.

Documentação de referência:

Segurança

  • O MSI baixado pelo bootstrap só é executado quando possui assinatura Authenticode válida da Microsoft.
  • Releases do Sync Master usam um asset de nome fixo e o SHA256 informado pela API do GitHub.
  • Ações destrutivas importantes exigem confirmação no modo interativo.
  • O modo de sincronização unilateral não usa /MIR.
  • Downloads automáticos ficam limitados ao instalador do próprio projeto, aos canais oficiais do PowerShell e, com confirmação, ao pacote exato Ookla.Speedtest.CLI via WinGet.
  • Não execute o projeto a partir de um ZIP sem extrair todos os arquivos.

Estrutura do projeto

Sync/
├── install.ps1                  # bootstrap para instalação via IRM
├── Sync Master.cmd              # entrada para duplo clique
├── Sync_Master.ps1              # launcher e menu principal
├── SyncMaster.psd1              # manifesto do módulo
├── Install-SyncMaster.ps1       # instalação opcional como módulo
├── .github/workflows/release.yml # publica SyncMaster.zip ao receber uma tag v*
├── modules/                     # funcionalidades por domínio
├── tests/                       # testes Pester
└── tools/                       # lint, testes e hooks locais

A análise estática e o gerador de árvore de fluxo possuem documentação própria.

Desenvolvimento e testes

Dependências de desenvolvimento:

Install-Module Pester -MinimumVersion 5.0 -Scope CurrentUser
Install-Module PSScriptAnalyzer -Scope CurrentUser

Execute o gate completo:

pwsh -NoProfile -ExecutionPolicy Bypass -File .\tools\Run-Checks.ps1

O gate executa PSScriptAnalyzer e todos os testes Pester. Para também reprovar warnings de lint:

.\tools\Run-Checks.ps1 -FailOnWarning

Publicar uma release estável

Ative uma vez Settings → General → Releases → Enable release immutability no repositório. Depois publique uma tag versionada:

git tag v1.0.0
git push origin v1.0.0

O workflow cria automaticamente SyncMaster.zip; o instalador passa a seguir essa release em vez da master.

Solução de problemas

PowerShell 7 não foi encontrado

Confirme se o comando está disponível:

Get-Command pwsh -ErrorAction SilentlyContinue

Se acabou de instalar pela Store, feche o terminal e execute novamente. Verifique também se o alias de execução pwsh.exe está habilitado nas configurações do Windows.

WinGet não foi encontrado

Atualize ou instale o App Installer pela Microsoft Store. O bootstrap ainda tentará os métodos oficiais alternativos.

Falha ao carregar módulos

Garanta que Sync_Master.ps1, SyncMaster.psd1 e a pasta modules permaneçam juntos. Extraia o ZIP inteiro antes de executar.

Preciso enviar um erro

Inclua a mensagem completa, a versão do Windows e do PowerShell e o arquivo mais recente de:

%LOCALAPPDATA%\SyncMaster\Logs\sessao_*.log

Desenvolvido por Eng. Carlos Ortiz · Codyte

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages