In powershell
Copia i file da A a B.
:> robocopy "CARTELLA_ORIGINE" "CARTELLA_DESTINAZIONE" /E /XO /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ
Significato:
/E copia anche sottocartelle, incluse vuote
/XO salta i file se in destinazione sono più recenti
i file uguali vengono saltati automaticamente
copia i file mancanti
aggiorna quelli più recenti in origine
/XJ evita problemi con collegamenti/junction
Non cancella nulla dalla destinazione. Non è una copia speculare.
Copia da A a B salta
:> robocopy "G:\Network Marketing" "F:\Network Marketing" /E /XC /XN /XO /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ
:> robocopy "G:\Network Marketing" "F:\Network Marketing" /E /XO /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ
- se il file non esiste in F: → lo copia
- se il file esiste uguale → lo salta
- se il file in G: è più vecchio di quello in F: → lo salta
- se il file in G: è più nuovo o diverso → lo sovrascrive in F:
Quindi /XO = “eXclude Older”, cioè non copiare i file sorgente più vecchi della destinazione.
Per una copia speculare:
:> robocopy "CARTELLA_ORIGINE" "CARTELLA_DESTINAZIONE" /MIR /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ /L
oppure
:> robocopy "CARTELLA_ORIGINE" "CARTELLA_DESTINAZIONE" /MIR /COPY:DAT /DCOPY:DAT /R:2 /W:2 /XJ
/MIR cancella dalla destinazione i file/cartelle che non esistono più nell’origine.
Per confrontare 2 cartelle se sono esattamente uguali:
:>>
$SRC = "Percorso Cartella 1"
$DST = "Percorso Cartella 2"
$srcFiles = Get-ChildItem -LiteralPath $SRC -File -Recurse | ForEach-Object {
$rel = $_.FullName.Substring($SRC.Length).TrimStart('\')
[PSCustomObject]@{
RelPath = $rel
Hash = (Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256).Hash
Size = $_.Length
}
}
$dstFiles = Get-ChildItem -LiteralPath $DST -File -Recurse | ForEach-Object {
$rel = $_.FullName.Substring($DST.Length).TrimStart('\')
[PSCustomObject]@{
RelPath = $rel
Hash = (Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256).Hash
Size = $_.Length
}
}
Compare-Object $srcFiles $dstFiles -Property RelPath,Size,Hash
<<:
Apri PowerShell come amministratore e dai:> Set-MpPreference -EnableControlledFolderAccess Disabled Verifica :> (Get-MpPreference).EnableControlledFolderAccess Significato: 0 = disattivato 1 = attivo 2 = solo controllo/audit Per riattivare :> Set-MpPreference -EnableControlledFolderAccess Enabled ---------------------------------------------------------------------------------------------------- Per sbloccare Acrobat :> Add-MpPreference -ControlledFolderAccessAllowedApplications "C:\Program Files (x86)\Adobe\Acrobat 10.0\Acrobat\Acrobat.exe" Riga adattabile per qualsiasi app :> Add-MpPreference -ControlledFolderAccessAllowedApplications "PERCORSO_COMPLETO_DEL_PROGRAMMA.exe" Modificare solo la parte tra virgolette, esempio :> Add-MpPreference -ControlledFolderAccessAllowedApplications "C:\Program Files\NomeProgramma\programma.exe" Per verificare che il controllo sia attivo :> (Get-MpPreference).EnableControlledFolderAccess
in powershell amministratore :> wbadmin start backup -backupTarget:H: -include:C: -allCritical -vssCopy :> wbadmin start backup -backupTarget:H: -include:C: -allCritical -vssCopy -quiet Controllare dopo con: :> wbadmin get versions -backupTarget:H: Leggere il file txt allegato
per riavviare explorafile con powershell:> Stop-Process -Name explorer -Force
:>>
$link = 'Inserire qui il link'
$out = "H:\qrcode\qrcode_tabella_consumi_ee.png"
# $out = "$env:USERPROFILE\Desktop\qrcode.png"
$url = "https://api.qrserver.com/v1/create-qr-code/?size=600x600&data=$([uri]::EscapeDataString($link))"
Invoke-WebRequest -Uri $url -OutFile $out
Start-Process $out
$out = "$env:USERPROFILE\Desktop\qrcode.png"
<<:
Con una immagine al centro, dopo aver creato il logo .png eseguire il codice
:>>
$qrPath = "H:\qrcode\qrcode_tabella_consumi_ee.png"
$logoPath = "H:\qrcode\logo.png"
$out = "H:\qrcode\qrcode_tabella_consumi_ee_logo.png"
Add-Type -AssemblyName System.Drawing
$qr = [System.Drawing.Image]::FromFile($qrPath)
$logo = [System.Drawing.Image]::FromFile($logoPath)
$bmp = New-Object System.Drawing.Bitmap $qr.Width, $qr.Height
$g = [System.Drawing.Graphics]::FromImage($bmp)
# Disegna il QR di base
$g.DrawImage($qr, 0, 0, $qr.Width, $qr.Height)
# DIMENSIONE LOGO CENTRALE:
# Cambia solo questo valore per ingrandire o rimpicciolire il logo.
# 0.24 = logo largo il 24% della larghezza del QR.
# 0.30 = logo piu grande.
# 0.18 = logo piu piccolo.
# Le proporzioni originali del logo vengono mantenute automaticamente.
$logoPercent = 0.34
# Calcolo dimensioni logo mantenendo le proporzioni originali
$logoW = [int]($qr.Width * $logoPercent)
$logoH = [int]($logoW * ($logo.Height / $logo.Width))
# Calcolo posizione per centrare il logo
$x = [int](($qr.Width - $logoW) / 2)
$y = [int](($qr.Height - $logoH) / 2)
# Bordo bianco dietro al logo:
# aumenta $pad se vuoi piu spazio bianco intorno al logo,
# diminuiscilo se vuoi meno spazio bianco.
$pad = 14
$g.FillRectangle(
[System.Drawing.Brushes]::White,
$x - $pad,
$y - $pad,
$logoW + ($pad * 2),
$logoH + ($pad * 2)
)
# Disegna il logo proporzionato al centro
$g.DrawImage($logo, $x, $y, $logoW, $logoH)
# Salva il QR finale con logo
$bmp.Save($out, [System.Drawing.Imaging.ImageFormat]::Png)
# Libera le risorse dei file immagine
$g.Dispose()
$bmp.Dispose()
$qr.Dispose()
$logo.Dispose()
# Apre il file finale
Start-Process $out
<<:
questi 3 comandi dati in Powershell o cmd ti restituiscono i dati della licenza windows installato sul PC. :> slmgr /xpr :> slmgr /dli :> slmgr /dlv
Aprire CMD con administrator e digitare :> del /f /q /a "C:\percorso completo del file "
Riavviare Windows tenedo premuto il tasto MAIUSC o SHIFT Si riavvia in modalita di recupero, alla schermata blu scegliere TROUBLESHOOT Poi scegliere la modalita ADVANCED OPTIONS poi COMMAND PROMPT e scrivere: > cd system32 > ren utilman.exe > utilma1.exe > ren cmd utilman.exe > exit Ritorno nella schermata blue e Continua e torna nella schermata di login Andare sull'omino ACCESSIBILITA e si apre il prompt CMD e scrivere: > control userpasswords2 selezionare il PC dall'elenco e poi RESET PASSWORD
Bloccare il riavvio tramite Criteri di Gruppo (Solo Windows 11 Pro) 1) Premi Windows + R, digita gpedit.msc e premi Invio. 2) Nel menu a sinistra, segui questo percorso: Configurazione computer > Modelli amministrativi > Componenti di Windows > Windows Update. 3) Qui dentro controlla se hai una cartella chiamata Criteri legacy (Legacy Policies). Se c'è, cliccaci sopra. 4) Cerca nel pannello di destra la stringa che inizia con: Escludi riavvio automatico per installazioni pianificate di Aggiornamenti automatici con gli utenti non connessi. 5) Fai doppio clic sulla voce, seleziona Attivata in alto a sinistra, poi clicca su Applica e su OK
Crea report diagnostico completo su tutta la macchina > perfmon /report
Il comando da dare in CMD Administrator > dism /online /export-driver /destination:[PercorsoCompleto] Ripristino dei driver: dalla finestra Gestione dispositivi
Eseguire i file CreaPuntoDiRipristino.bat e PuliziaPuntiRipristino.bat in modalità amministratore Per visualizzare e gestire i punti di ripristino lanciare normalmente MostraPuntiRipristino.bat
:: Assegnazione nomi a dischi con powershell
:: Connettere un percorso di rete ad un disco ed assegnare una lettera e nome
:: ==============================================================================
:: 1. SCOLLEGAMENTO VECCHIE CONNESSIONI (PULIZIA DA EVENTUALI CONFLITTI)
:: ==============================================================================
:>>
net use I: /delete /y
net use L: /delete /y
net use P: /delete /y
net use S: /delete /y
net use T: /delete /y
net use V: /delete /y
<<:
:: ==============================================================================
:: 2. COLLEGAMENTO UNITÀ DI RETE AI PERCORSI CORRETTI
:: ==============================================================================
net use I: "https://nc-5414598799603122149.nextcloud-ionos.com/remote.php/dav/files/adminstefano/" /user:adminstefano * /persistent:yes
cmdkey /add:nc-5414598799603122149.nextcloud-ionos.com /user:adminstefano /pass
net use L: \\82.165.216.83\lavanderia /persistent:yes
net use P: \\212.227.161.94\progetti /persistent:yes
net use S: \\82.165.216.83\Sistema /persistent:yes
net use T: \\212.227.161.94\sistema /persistent:yes
net use V: \\192.168.1.101\DiscoDatiServerLocale /persistent:yes
<<:
:: ==============================================================================
:: 3. ASSEGNAZIONE DEI NOMI CORRETTI (LABEL) IN ESPLORA FILE
:: ==============================================================================
:>>
powershell -command "(New-Object -ComObject Shell.Application).NameSpace('I:\').Self.Name = 'Disco IONOS'"
powershell -command "(New-Object -ComObject Shell.Application).NameSpace('L:\').Self.Name = 'Lavanderia VPS XS'"
powershell -command "(New-Object -ComObject Shell.Application).NameSpace('P:\').Self.Name = 'Progetti VPS M+'"
powershell -command "(New-Object -ComObject Shell.Application).NameSpace('S:\').Self.Name = 'VPS XS'"
powershell -command "(New-Object -ComObject Shell.Application).NameSpace('T:\').Self.Name = 'VPS M+'"
powershell -command "(New-Object -ComObject Shell.Application).NameSpace('V:\').Self.Name = 'VPS01 Locale'"
<<:
Il comando da eseguire in CMD da Admin è: > takeown /f H:\ /r /d s
Messaggio connessione sconosciuta: Premi Win + R, digita regedit e premi Invio. Naviga fino a: > HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client Se la chiave Client non esiste, creala. Crea un nuovo valore DWORD (32-bit) denominato RedirectionWarningDialogVersion. Imposta il valore a \(1\) (per tornare al vecchio comportamento/nascondere l'avviso).Riavvia il computer oppure reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client" /v RdpLaunchConsentAccepted /t REG_DWORD /d "1" /f reg add "HKLM\Software\Policies\Microsoft\Windows NT\Terminal Services\Client" /v RedirectionWarningDialogVersion /t REG_DWORD /d "1" /f
CMD come amministratore > robocopy "F:\Users\Fabio" "H:\Fabio" /E /COPYALL /DCOPY:T per copiare una o piu cartelle in background con powershell :> Start-Process robocopy -ArgumentList '"H:\BackupSoftware" "D:\BackupSoftware" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /MT:8 /NFL /NDL /NP /LOG:"D:\BackupSoftware_robocopy.log"' -WindowStyle Minimized :> Start-Process robocopy -ArgumentList '"H:\Software4Helper" "D:\Software4Helper" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /MT:8 /NFL /NDL /NP /LOG:"D:\Software4Helper_robocopy.log"' -WindowStyle Minimized :> Start-Process robocopy -ArgumentList '"H:\VeeamBackup_C" "D:\VeeamBackup_C" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /MT:8 /NFL /NDL /NP /LOG:"D:\VeeamBackup_C_robocopy.log"' -WindowStyle Minimized oppure :>> $jobs = @() $jobs += Start-Process robocopy -ArgumentList '"H:\BackupSoftware" "D:\BackupSoftware" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /MT:8 /NFL /NDL /NP /LOG:"D:\BackupSoftware_robocopy.log"' -WindowStyle Minimized -PassThru $jobs += Start-Process robocopy -ArgumentList '"H:\Software4Helper" "D:\Software4Helper" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /MT:8 /NFL /NDL /NP /LOG:"D:\Software4Helper_robocopy.log"' -WindowStyle Minimized -PassThru $jobs += Start-Process robocopy -ArgumentList '"H:\VeeamBackup_C" "D:\VeeamBackup_C" /E /COPY:DAT /DCOPY:DAT /R:2 /W:2 /MT:8 /NFL /NDL /NP /LOG:"D:\VeeamBackup_C_robocopy.log"' -WindowStyle Minimized -PassThru Write-Host "Copie avviate in background..." $jobs | Wait-Process Write-Host "Tutte le copie sono terminate." <<: Per controllare in qualunque momento se stanno ancora lavorando: :> Get-Process robocopy -ErrorAction SilentlyContinue
Powershell come Admin
Copilot
> iex (irm msauth.in/copilot)
---------------------------------------------------------------------------------------------------------
Windows+Office
> irm https://get.activated.win | iex
> irm https://massgrave.dev/get | iex
> iex (curl.exe -s --doh-url https://1.1.1.1/dns-query https://get.activated.win | Out-String)
---------------------------------------------------------------------------------------------------------
Comando principle:
> irm https://get.activated.win | iex
Se il comando è bloccato:
Alcuni provider di servizi Internet (ISP) bloccano l'URL. Utilizza questo comando per aggirare i blocchi DNS (solo per Windows 10/11):
> iex (curl.exe -s --doh-url https://1.1.1.1/dns-query https://get.activated.win | Out-String)
Se ricevi un errore TLS/SSL (versioni precedenti di Windows):
Se utilizzi una versione precedente di Windows 8.1 o 10, esegui questo comando prima del comando principale:
> [Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12
----------------------------------------------------------------------------------------------------------
Windows 7 (PowerShell 2.0):
> (New-Object Net.WebClient).DownloadString('https://erturk-dev.netlify.app/run?ps=1') | iex
---------------------------------------------------------------------------------------------------------
Windows 8.1 e Windows Server:
> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; irm erturk-dev.netlify.app/run | iex
---------------------------------------------------------------------------------------------------------
Windows 10 e Windows 11:
> irm erturk-dev.netlify.app/run | iex
Registro di Sistema [WIN+R]-[:> regedit] Per cancellare i collegamenti del desktop remoto andare su: :> HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default :> HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers oppure da prompt CMD :> del /ah %homepath%\documents\default.rdp oppure cancellare i file in :> %AppData%\Microsoft\Windows\Recent\AutomaticDestinations
Verifica integrità immagine Windows:> dism /online /cleanup-image /restorehealth
Analisi del sistema.:> sfc /scannow
Per cancellare file bloccati aprire CMD Amministratore:> del /f /q /a C:/Percorso/nome_file
Attivazione Acrobat aprire Powershell amministratore:> iex (irm slmgr.sh/acrobat)
Disabilitare la ricerca di Windows CMD Administrator:> sc stop WSearch
Vedere informazioni su profilo Utente: net user %username%
=======================================
Attivazione / Aggiornamento di Powershell Versione 7
:> winget search --id Microsoft.PowerShell --exact
Installare pacchetto MSI di Powershell
:> winget install --id Microsoft.PowerShell --source winget
:> winget install --id Microsoft.PowerShell --source winget --installer-type wix
Per i pacchetti di PowerShell 7.7-preview:
:> winget install --id Microsoft.PowerShell.Preview --source winget
=======================================
Codice da incollare in Powerschell per installazione complete silenziosa
$msiParams = @(
'/package PowerShell-7.6.4-win-x64.msi'
'/quiet'
'ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1'
'ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1'
'ENABLE_PSREMOTING=1'
'REGISTER_MANIFEST=1'
'USE_MU=1'
'ENABLE_MU=1'
'ADD_PATH=1'
)
msiexec.exe @msiParams
-------------------------------------------
Utilità per l'indipendenza hardware: avviare CMD amministratore:
:> sysprep\sysprep.exe
Comando principle per attivazioni:
:> irm https://get.activated.win | iex
Se ricevi un errore TLS/SSL (versioni precedenti di Windows):
Se utilizzi una versione precedente di Windows 8.1 o 10, esegui questo comando prima del comando principale:
:> [Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12
Se il comando è bloccato:
Alcuni provider di servizi Internet (ISP) bloccano l'URL.
Utilizza questo comando per aggirare i blocchi DNS (solo per Windows 10/11):
> iex (curl.exe -s --doh-url https://1.1.1.1/dns-query https://get.activated.win | Out-String)
===========================================
Eliminare richiesta password all'avvio di Windows
Powershell come amministratore ed inserire:
Inserire una password in Impostazioni, Account
reg ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v DevicePasswordLessBuildVersion /t REG_DWORD /d 0 /f
Poi alt+r: "netplwiz" e togliere la richiesta di password
Sanner dei driver non firmati:
> sigverif
Check full:
> dxdiag
Velocizza scrittura sui dischi:
> services.msc
abilitare "Ottimiza unità"
Extended God Mode: il pannello di controllo segreto di Windows
Creare una nuova cartella e rinominara con questo testo
> GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
Cartella autostart (tasto Windows + R) " "shell:startup"