-
Inspection sécurisée de liens suspects avec Application Guard
🔐 Inspection sécurisée de liens suspects avec Application Guard et notepad.libreops.cc
🎯 Objectif
Analyser des liens suspects provenant d’e-mails ou de messages en toute sécurité, en procédant ainsi :
- Coller les liens dans un bloc-notes en ligne avant d’entrer dans le bac à sable.
- Ouvrir Microsoft Edge avec Application Guard.
- Accéder à la page du bloc-notes depuis Edge sécurisé pour copier les liens et les inspecter sans risque.
🧰 Prérequis
- Windows 10/11 Professionnel ou Entreprise
-
Microsoft Defender Application Guard activé :
- Ouvrir
optionalfeatures.exe
→ cocher Microsoft Defender Application Guard - Redémarrer si demandé
- Ouvrir
🌐 Étapes à suivre
🟢 Étape 1 : Ouvrir notepad.libreops.cc dans votre navigateur principal
- Rendez-vous sur : https://notepad.libreops.cc
- Collez le ou les liens suspects dans la note.
- Cliquez sur « Save » (en haut à droite).
- Copiez l’URL unique de la note (ex. :
https://notepad.libreops.cc/xyz123abc456
)
💡 Vous utiliserez cette URL dans le navigateur sécurisé pour accéder aux liens.
🔵 Étape 2 : Ouvrir Microsoft Edge avec Application Guard
- Lancez Microsoft Edge.
- Cliquez sur le menu à trois points → Nouvelle fenêtre Application Guard.
🔐 Cela ouvre une session de navigation hautement isolée.
🔍 Étape 3 : Accéder à votre note depuis Edge sécurisé
-
Dans la fenêtre Application Guard, ouvrez l’URL copiée à l’étape 1
(ex. :https://notepad.libreops.cc/xyz123abc456
) - Une fois la note ouverte :
- Copiez le lien suspect depuis la note.
- Collez-le dans la barre d’adresse ou survolez-le pour l’analyser.
- Vous pouvez maintenant :
- Vérifier visuellement le lien.
- L’ouvrir uniquement si nécessaire.
- Utiliser des outils d’analyse depuis Application Guard :
🧽 Après utilisation
- Fermez la fenêtre Application Guard pour détruire la session.
-
How to Configure network printer on HMI
Setting Up a Network Printer on HMI
Source : Link
- Our architecture is as below:
Instructions: Printing via network
• Call up the control Panel. • Open the “Printer Properties” dialog with the “Printer” icon.
– Select the printer type “PCL Laser” under “Printer Language”.
– Select the interface “PrintServer” under “Port”.
– Enter the network address of the print server under “IP:Port:”.
Note: Many printers have an integrated “print server”. This allows you to specify the address of the printer directly.
Note the correct notation -> “IP address:port number” (colon between the IP address and port number (Link)) Example: 172.16.34.30:9100
– Select the paper size in the “Paper Size” drop-down box.
– Specify the orientation of the printout under “Orientation”: “Portrait” for vertical format “Landscape” for horizontal format
– Select the print quality:
To print in draft quality, select “Draft Mode”.
To print in color, select “Color”.
– Confirm the entries with “OK”.
- make sure the network configuration of the HMI is from DHCP
- Note: if IP is set manually , do not forget to fill in the default gateway address.
- Our architecture is as below:
-
Docker Overlay Cleanup Script
Docker Overlay Cleanup Script
Here is a script to help clean up Docker overlay files on an Ubuntu system running in Proxmox.
#!/bin/bash # Define the base directory for Docker overlay files OVERLAY_BASE_DIR="/var/lib/docker/overlay2" # Loop through each overlay directory find "$OVERLAY_BASE_DIR" -type d -name "diff" | while read -r diff_dir; do # Define the tmp directory within each diff directory tmp_dir="$diff_dir/tmp" # Check if the tmp directory exists if [ -d "$tmp_dir" ]; then echo "Cleaning up temporary files in $tmp_dir" # Remove files and directories within tmp that are older than 1 day find "$tmp_dir" -mindepth 1 -mtime +1 -exec rm -rf {} + fi done echo "Cleanup complete."
Explanation:
-
Base Directory: The script targets
/var/lib/docker/overlay2
, where Docker stores its overlay files. -
Loop through Directories: It searches for directories named
diff
within the overlay directories. Eachdiff
directory represents the writable layer of a Docker container. -
Temporary Files: Within each
diff
directory, it looks for atmp
directory, which is typically used for temporary files. -
Cleanup: It removes files and directories within
tmp
that are older than 1 day. You can adjust the-mtime +1
parameter to change the age threshold for files to be deleted.
Important Considerations:
-
Backup: Always ensure you have backups of important data before running cleanup scripts.
-
Running Containers: Be cautious with running containers. Cleaning up files in use by active containers can cause issues.
-
Permissions: Ensure the script is run with appropriate permissions. You might need to run it with
sudo
. -
Testing: Test the script in a safe environment before applying it to a production system.
You can save this script to a file, for example,
clean_docker_overlay.sh
, make it executable withchmod +x clean_docker_overlay.sh
, and run it withsudo ./clean_docker_overlay.sh
. Adjust the script as necessary to fit your specific needs and environment. -
-
Dual boot to VHDX without USB
Automated Windows 11 Tiny Core VHDX Creator Script
Create a lightweight Windows 11 installation in a virtual disk (VHDX) file with minimal user intervention using this comprehensive PowerShell automation script.
Overview
This script automates the process of creating a Windows 11 Tiny Core installation inside a VHDX file, making it perfect for virtualization, testing, or creating portable Windows environments. The process is divided into two clear phases with minimal manual intervention required.
Features
- ✅ Fully Automated VHDX Creation - Creates, formats, and mounts virtual disk
- ✅ Automatic Tiny11 Builder Integration - Downloads and runs Tiny11 Builder automatically
- ✅ Custom Boot Menu Names - Add personalized boot entry names
- ✅ Interactive Image Selection - Choose specific Windows 11 editions
- ✅ Two-Phase Process - Clear separation between ISO creation and disk operations
- ✅ Comprehensive Error Handling - Detailed feedback and error management
- ✅ Flexible Configuration - Customizable paths, sizes, and names
Prerequisites
Before running the script, ensure you have:
- Administrator privileges (required for diskpart and DISM operations)
- Windows 11 ISO file downloaded from Microsoft
- Sufficient disk space (at least 60GB recommended)
- PowerShell 5.1 or later
Quick Start
Basic Usage
# Run with default settings .\Win11TinyVHDX.ps1
Advanced Usage
# Custom configuration .\Win11TinyVHDX.ps1 -VHDXPath "D:\VMs\MyTinyWin11.vhdx" -VHDXSizeGB 40 -VHDXLabel "TinyWindows" -BootEntryName "Win11-Custom-Build"
Script Parameters
Parameter Default Value Description VHDXPath
E:\VHD_Store\Win11tinycore.vhdx
Full path for the VHDX file VHDXSizeGB
50
Size of the virtual disk in GB VHDXLabel
Win11tinycore
Volume label for the virtual disk BootEntryName
Win11TinyCore-Master
Custom name in boot menu Process Flow
Phase 1: Tiny11 Core ISO Creation 🔨
-
Mount Windows 11 ISO (Manual)
- Download Windows 11 ISO from Microsoft
- Right-click → Mount or use Windows Explorer
-
Specify ISO Drive Letter (Interactive)
- Script displays available drives
- Enter the drive letter where ISO is mounted
-
Download Tiny11 Builder (Automated)
- Automatically downloads from GitHub repository
- Extracts and prepares the builder tool
-
Create Tiny11 ISO (Automated)
- Runs Tiny11 Builder automatically
- Creates optimized Windows 11 ISO
-
Mount Tiny11 ISO (Manual)
- Mount the newly created Tiny11 ISO file
Phase 2: Virtual Disk Creation & Image Application 💾
-
Create VHDX Virtual Disk (Automated)
- Uses diskpart to create expandable VHDX
- Formats and assigns drive letter
-
Select Windows Edition (Interactive)
- Displays available Windows editions
- Choose the desired edition index
-
Apply Windows Image (Automated)
- Uses DISM to install Windows to VHDX
- Applies selected edition
-
Configure Boot Manager (Automated)
- Sets up boot configuration
- Adds custom boot menu entry
Sample Output
=== Windows 11 Tiny Core VHDX Creator === This script will create a VHDX and install Windows 11 Tiny Core === Phase 1: Creating Tiny11 Core ISO === Step 1: Manual steps required: 1. Download Windows 11 ISO file 2. Mount the Windows 11 ISO (right-click -> Mount) Step 2: Enter the drive letter where Windows 11 ISO is mounted: Available drives: D: - Windows_11_ISO Enter drive letter (e.g., D): D Step 3: Downloading Tiny11 Builder... Tiny11 Builder downloaded successfully! Step 4: Running Tiny11 Builder automatically... Executing Tiny11 Builder... Source ISO: D:\ Tiny11 Builder completed successfully! =============================================== TINY11 CORE ISO CREATION COMPLETED! =============================================== NEXT PHASE INFORMATION: The script will now proceed to: • Create a virtual disk (VHDX) file • Format and prepare the virtual disk • Apply the Tiny11 Core image to the virtual disk • Configure the boot manager for the installation Virtual Disk Details: Path: E:\VHD_Store\Win11tinycore.vhdx Size: 50 GB Label: Win11tinycore Boot Entry: Win11TinyCore-Master Do you want to proceed with virtual disk creation and image application? (y/n): y === Phase 2: Creating Virtual Disk and Applying Image === Step 7: Creating VHDX... VHDX created successfully and mounted as drive X: Step 8: Getting Windows image information... [WIM Edition List Displayed] Enter index number: 6 Step 9: Applying Windows image... Windows image applied successfully! Step 10: Configuring boot manager... Boot manager configured successfully with custom name! === Installation Complete! ===
Technical Details
VHDX Creation Process
The script uses diskpart commands to:
create vdisk file="path" maximum=size type=expandable attach vdisk create part primary format quick label="label" assign letter=X
Image Application
Uses DISM (Deployment Image Servicing and Management) tool:
dism /apply-image /imagefile:source.wim /index:N /applydir:X:\
Boot Configuration
Configures Windows Boot Manager with custom entry:
bcdboot X:\windows /d "Custom Boot Name"
Creating Child Vms with differencing disk
New-VHD -ParentPath 'E:\VHD_Store\Win11tinycore.vhdx' -Path 'E:\VHD_Store\Android.vhdx' -Differencing
Note:
- Use the command above to create a differencing VHD. Then, use EasyBCD to add the newly created VHDX to the boot menu. Ensure that the Hyper-V Virtual Machine Management service is running.
- Before creating the differencing disk, ensure that you have installed all necessary drivers and essential software on the parent VM. This will prevent the need to reinstall them on the child VMs.
- Do not update the parent VM under any circumstances, as this could render the child VMs unbootable. Make sure not to boot into the parent VM after creating child vms.
Use Cases
1. Virtual Machine Development
- Create lightweight VMs for testing
- Rapid deployment of clean Windows environments
- Resource-efficient virtualization
2. System Recovery
- Portable Windows environment on external drive
- Emergency boot scenarios
- System repair and maintenance
3. Educational Purposes
- Learning Windows internals
- Understanding deployment processes
- Teaching virtualization concepts
4. Software Testing
- Isolated testing environments
- Clean OS installations for software validation
- Multiple Windows configurations
Benefits of Tiny11 Core
- Reduced Size: ~2-3GB smaller than standard Windows 11
- Faster Boot: Optimized startup performance
- Lower Resource Usage: Minimal background processes
- Essential Features: Keeps core Windows functionality
- Compatibility: Full Windows 11 application support
Troubleshooting
Common Issues
Script requires Administrator privileges
Solution: Right-click PowerShell → "Run as Administrator"
VHDX creation fails
Solution: Ensure sufficient disk space and valid path Check: Disk permissions and available storage
Tiny11 Builder download fails
Solution: Check internet connection and GitHub accessibility Alternative: Download manually from https://github.com/ntdevlabs/tiny11builder
Image application takes too long
Solution: Normal behavior - DISM operations can take 15-30 minutes Monitor: Task Manager for disk activity
Boot configuration fails
Solution: Ensure Windows image was applied successfully Check: X:\windows directory exists and contains system files
Performance Tips
- Use SSD storage for faster VHDX operations
- Allocate sufficient RAM during image application
- Close unnecessary applications to free up system resources
- Use wired network connection for downloads
Security Considerations
- Run from trusted sources - Verify script integrity
- Administrator privileges - Understand elevation requirements
- Antivirus exclusions - May need temporary exclusions for VHDX operations
- Network downloads - Ensure secure connection for Tiny11 Builder
Advanced Configuration
Custom VHDX Locations
# Network storage .\Win11TinyVHDX.ps1 -VHDXPath "\\server\vms\tiny11.vhdx" # External drive .\Win11TinyVHDX.ps1 -VHDXPath "F:\VirtualMachines\Win11Tiny.vhdx"
Multiple Configurations
# Development environment .\Win11TinyVHDX.ps1 -BootEntryName "Win11-Dev-Environment" -VHDXSizeGB 60 # Testing environment .\Win11TinyVHDX.ps1 -BootEntryName "Win11-Test-Lab" -VHDXSizeGB 40
Script Download
The complete PowerShell script is available below. Save it as
Win11TinyVHDX.ps1
and run with Administrator privileges.Note: Ensure execution policy allows script execution:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Windows 11 Tiny Core VHDX Creator Script # Requires Administrator privileges param( [string]$VHDXPath = "E:\VHD_Store\Win11tinycore.vhdx", [int]$VHDXSizeGB = 50, [string]$VHDXLabel = "Win11tinycore", [string]$BootEntryName = "Win11TinyCore-Master" ) # Check if running as administrator if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Write-Host "This script requires Administrator privileges. Please run as Administrator." -ForegroundColor Red exit 1 } Write-Host "=== Windows 11 Tiny Core VHDX Creator ===" -ForegroundColor Cyan Write-Host "This script will create a VHDX and install Windows 11 Tiny Core" -ForegroundColor Yellow Write-Host "" # Function to create VHDX using diskpart function Create-VHDX { param( [string]$Path, [int]$SizeMB, [string]$Label, [string]$DriveLetter = "X" ) Write-Host "Creating VHDX file at: $Path" -ForegroundColor Green # Ensure directory exists $directory = Split-Path $Path -Parent if (!(Test-Path $directory)) { New-Item -ItemType Directory -Path $directory -Force | Out-Null } # Create diskpart script $diskpartScript = @" create vdisk file="$Path" maximum=$SizeMB type=expandable attach vdisk create part primary format quick label="$Label" assign letter=$DriveLetter exit "@ $scriptPath = "$env:TEMP\create_vhdx.txt" $diskpartScript | Out-File -FilePath $scriptPath -Encoding ASCII # Run diskpart Write-Host "Running diskpart to create and format VHDX..." -ForegroundColor Yellow diskpart /s $scriptPath # Clean up Remove-Item $scriptPath -Force if (Test-Path "${DriveLetter}:\") { Write-Host "VHDX created successfully and mounted as drive ${DriveLetter}:" -ForegroundColor Green return $true } else { Write-Host "Failed to create or mount VHDX" -ForegroundColor Red return $false } } # Function to download Tiny11 Builder function Download-Tiny11Builder { $downloadPath = "$env:TEMP\tiny11builder" $zipPath = "$downloadPath\tiny11builder.zip" Write-Host "Downloading Tiny11 Builder..." -ForegroundColor Yellow # Create download directory if (!(Test-Path $downloadPath)) { New-Item -ItemType Directory -Path $downloadPath -Force | Out-Null } try { # Download the repository $url = "https://github.com/ntdevlabs/tiny11builder/archive/refs/heads/main.zip" Invoke-WebRequest -Uri $url -OutFile $zipPath -UseBasicParsing # Extract the zip Expand-Archive -Path $zipPath -DestinationPath $downloadPath -Force # Find the PowerShell script $scriptPath = Get-ChildItem -Path $downloadPath -Name "tiny11Coremaker.ps1" -Recurse | Select-Object -First 1 if ($scriptPath) { $fullScriptPath = Join-Path $downloadPath $scriptPath Write-Host "Tiny11 Builder downloaded to: $fullScriptPath" -ForegroundColor Green return $fullScriptPath } else { Write-Host "Could not find tiny11Coremaker.ps1 in downloaded files" -ForegroundColor Red return $null } } catch { Write-Host "Failed to download Tiny11 Builder: $($_.Exception.Message)" -ForegroundColor Red return $null } } # Function to get Windows 11 ISO drive letter function Get-ISODriveLetter { param([string]$Prompt) Write-Host $Prompt -ForegroundColor Yellow Write-Host "Available drives:" -ForegroundColor Cyan Get-WmiObject -Class Win32_LogicalDisk | Where-Object { $_.DriveType -eq 5 } | ForEach-Object { Write-Host " $($_.DeviceID) - $($_.VolumeName)" -ForegroundColor White } do { $driveLetter = Read-Host "Enter drive letter (e.g., D)" $driveLetter = $driveLetter.TrimEnd(':').ToUpper() if ($driveLetter -match "^[A-Z]$" -and (Test-Path "${driveLetter}:\")) { return $driveLetter } else { Write-Host "Invalid drive letter or drive not found. Please try again." -ForegroundColor Red } } while ($true) } # Function to get WIM info and let user select index function Get-WIMInfo { param([string]$ISODriveLetter) $wimFile = "${ISODriveLetter}:\sources\install.wim" if (!(Test-Path $wimFile)) { Write-Host "install.wim not found at $wimFile" -ForegroundColor Red return $null } Write-Host "Getting Windows image information..." -ForegroundColor Yellow Write-Host "" try { # Get WIM info $wimInfo = dism /get-wiminfo /wimfile:$wimFile $wimInfo | Write-Host Write-Host "" Write-Host "Please select the Windows edition index from the list above:" -ForegroundColor Yellow do { $index = Read-Host "Enter index number" if ($index -match "^\d+$" -and [int]$index -gt 0) { return [int]$index } else { Write-Host "Please enter a valid index number." -ForegroundColor Red } } while ($true) } catch { Write-Host "Failed to get WIM information: $($_.Exception.Message)" -ForegroundColor Red return $null } } # Function to apply Windows image function Apply-WindowsImage { param( [string]$ISODriveLetter, [int]$Index, [string]$TargetDrive = "X" ) $wimFile = "${ISODriveLetter}:\sources\install.wim" $targetPath = "${TargetDrive}:\" Write-Host "Applying Windows image..." -ForegroundColor Yellow Write-Host "Source: $wimFile" -ForegroundColor Cyan Write-Host "Index: $Index" -ForegroundColor Cyan Write-Host "Target: $targetPath" -ForegroundColor Cyan Write-Host "" try { dism /apply-image /imagefile:$wimFile /index:$Index /applydir:$targetPath if ($LASTEXITCODE -eq 0) { Write-Host "Windows image applied successfully!" -ForegroundColor Green return $true } else { Write-Host "Failed to apply Windows image (Exit code: $LASTEXITCODE)" -ForegroundColor Red return $false } } catch { Write-Host "Error applying Windows image: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Function to configure boot manager function Configure-BootManager { param( [string]$TargetDrive = "X", [string]$BootEntryName = "Win11TinyCore-Master" ) Write-Host "Configuring boot manager..." -ForegroundColor Yellow Write-Host "Boot entry name: $BootEntryName" -ForegroundColor Cyan try { # Use /d parameter to set custom boot menu description bcdboot "${TargetDrive}:\windows" /d "$BootEntryName" if ($LASTEXITCODE -eq 0) { Write-Host "Boot manager configured successfully with custom name!" -ForegroundColor Green return $true } else { Write-Host "Failed to configure boot manager (Exit code: $LASTEXITCODE)" -ForegroundColor Red return $false } } catch { Write-Host "Error configuring boot manager: $($_.Exception.Message)" -ForegroundColor Red return $false } } # Main script execution try { Write-Host "=== Phase 1: Creating Tiny11 Core ISO ===" -ForegroundColor Magenta Write-Host "" Write-Host "Step 1: Manual steps required:" -ForegroundColor Magenta Write-Host "1. Download Windows 11 ISO file" -ForegroundColor Yellow Write-Host "2. Mount the Windows 11 ISO (right-click -> Mount)" -ForegroundColor Yellow Write-Host "" # Step 2: Get Windows 11 ISO drive letter $win11Drive = Get-ISODriveLetter -Prompt "Step 2: Enter the drive letter where Windows 11 ISO is mounted:" # Step 3: Download Tiny11 Builder Write-Host "" Write-Host "Step 3: Downloading Tiny11 Builder..." -ForegroundColor Magenta $tiny11Script = Download-Tiny11Builder if (!$tiny11Script) { throw "Failed to download Tiny11 Builder" } Write-Host "" Write-Host "Step 4: Running Tiny11 Builder automatically..." -ForegroundColor Magenta # Change to the Tiny11 Builder directory $tiny11Dir = Split-Path $tiny11Script -Parent Set-Location $tiny11Dir Write-Host "Executing Tiny11 Builder..." -ForegroundColor Yellow Write-Host "Source ISO: ${win11Drive}:\" -ForegroundColor Cyan Write-Host "" try { # Run the Tiny11 Builder script with the Windows 11 ISO path & $tiny11Script if ($LASTEXITCODE -eq 0) { Write-Host "Tiny11 Builder completed successfully!" -ForegroundColor Green } else { Write-Host "Tiny11 Builder finished with exit code: $LASTEXITCODE" -ForegroundColor Yellow } } catch { Write-Host "Error running Tiny11 Builder: $($_.Exception.Message)" -ForegroundColor Red throw "Failed to run Tiny11 Builder" } Write-Host "" Write-Host "Step 5: Manual step required:" -ForegroundColor Magenta Write-Host "Please mount the created Tiny11 ISO file" -ForegroundColor Yellow Write-Host "The ISO should be located in: $tiny11Dir" -ForegroundColor Cyan Write-Host "" Read-Host "Press Enter when you have mounted the Tiny11 ISO..." # Step 6: Get Tiny11 ISO drive letter $tiny11Drive = Get-ISODriveLetter -Prompt "Step 6: Enter the drive letter where Tiny11 ISO is mounted:" Write-Host "" Write-Host "===============================================" -ForegroundColor Green Write-Host " TINY11 CORE ISO CREATION COMPLETED!" -ForegroundColor Green Write-Host "===============================================" -ForegroundColor Green Write-Host "" Write-Host "NEXT PHASE INFORMATION:" -ForegroundColor Yellow Write-Host "The script will now proceed to:" -ForegroundColor White Write-Host " • Create a virtual disk (VHDX) file" -ForegroundColor Cyan Write-Host " • Format and prepare the virtual disk" -ForegroundColor Cyan Write-Host " • Apply the Tiny11 Core image to the virtual disk" -ForegroundColor Cyan Write-Host " • Configure the boot manager for the installation" -ForegroundColor Cyan Write-Host "" Write-Host "Virtual Disk Details:" -ForegroundColor Yellow Write-Host " Path: $VHDXPath" -ForegroundColor White Write-Host " Size: $VHDXSizeGB GB" -ForegroundColor White Write-Host " Label: $VHDXLabel" -ForegroundColor White Write-Host " Boot Entry: $BootEntryName" -ForegroundColor White Write-Host "" $continue = Read-Host "Do you want to proceed with virtual disk creation and image application? (y/n)" if ($continue -ne 'y' -and $continue -ne 'Y') { Write-Host "Script terminated by user." -ForegroundColor Yellow exit 0 } Write-Host "" Write-Host "=== Phase 2: Creating Virtual Disk and Applying Image ===" -ForegroundColor Magenta Write-Host "" # Step 7: Create VHDX Write-Host "Step 7: Creating VHDX..." -ForegroundColor Magenta $vhdxSizeMB = $VHDXSizeGB * 1024 if (!(Create-VHDX -Path $VHDXPath -SizeMB $vhdxSizeMB -Label $VHDXLabel)) { throw "Failed to create VHDX" } # Step 8: Get WIM info and select index Write-Host "" Write-Host "Step 8: Getting Windows image information..." -ForegroundColor Magenta $selectedIndex = Get-WIMInfo -ISODriveLetter $tiny11Drive if (!$selectedIndex) { throw "Failed to get WIM information or select index" } # Step 9: Apply Windows image Write-Host "" Write-Host "Step 9: Applying Windows image..." -ForegroundColor Magenta if (!(Apply-WindowsImage -ISODriveLetter $tiny11Drive -Index $selectedIndex)) { throw "Failed to apply Windows image" } # Step 10: Configure boot manager Write-Host "" Write-Host "Step 10: Configuring boot manager..." -ForegroundColor Magenta if (!(Configure-BootManager -BootEntryName $BootEntryName)) { throw "Failed to configure boot manager" } # Success message Write-Host "" Write-Host "=== Installation Complete! ===" -ForegroundColor Green Write-Host "Windows 11 Tiny Core has been successfully installed to VHDX:" -ForegroundColor Green Write-Host $VHDXPath -ForegroundColor Cyan Write-Host "" Write-Host "You can now:" -ForegroundColor Yellow Write-Host "1. Detach the VHDX: diskpart -> select vdisk file=$VHDXPath -> detach vdisk" -ForegroundColor White Write-Host "2. Use the VHDX with Hyper-V or other virtualization software" -ForegroundColor White Write-Host "3. Boot from the VHDX on physical hardware (advanced)" -ForegroundColor White } catch { Write-Host "" Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red Write-Host "Installation failed. Please check the error message above." -ForegroundColor Red exit 1 } # Optional: Detach VHDX Write-Host "" $detach = Read-Host "Would you like to detach the VHDX now? (y/n)" if ($detach -eq 'y' -or $detach -eq 'Y') { Write-Host "Detaching VHDX..." -ForegroundColor Yellow $detachScript = @" select vdisk file="$VHDXPath" detach vdisk exit "@ $scriptPath = "$env:TEMP\detach_vhdx.txt" $detachScript | Out-File -FilePath $scriptPath -Encoding ASCII diskpart /s $scriptPath Remove-Item $scriptPath -Force Write-Host "VHDX detached successfully!" -ForegroundColor Green }
Conclusion
This automated script streamlines the creation of Windows 11 Tiny Core VHDX files, making it accessible for both beginners and advanced users. The two-phase approach provides clear checkpoints and flexibility, while the comprehensive error handling ensures a smooth experience.
Whether you’re creating virtual machines, building portable Windows environments, or setting up testing scenarios, this script provides a robust and efficient solution for your Windows 11 deployment needs.
Last updated: June 2025 Compatible with: Windows 11, PowerShell 5.1+ Requirements: Administrator privileges, Windows 11 ISO
-
Extend Logical Volume in Ubuntu
Steps to Extend Logical Volume in Ubuntu
This guide outlines the steps to extend a logical volume in Ubuntu to utilize the full disk space.
Prerequisites
- Access to a terminal with
sudo
privileges -
cloud-guest-utils
package installed (forgrowpart
)
Steps
Step 1: Check the Disk Layout
Verify the current disk layout to ensure that the additional space is available and correctly recognized by the system.
sudo fdisk -l /dev/sda
Step 2: Check Volume Group
Check the volume group to see how much free space is available.
sudo vgdisplay
Step 3: Install
growpart
If
growpart
is not installed, install it using the following commands:sudo apt update sudo apt install cloud-guest-utils
Step 4: Extend the Partition
Use
growpart
to extend the partition to include the new disk space. Replace/dev/sda
and3
with your disk and partition number if different.sudo growpart /dev/sda 3
Step 5: Resize the Physical Volume
Resize the physical volume to include the new space:
sudo pvresize /dev/sda3
Step 6: Extend the Logical Volume
Extend the logical volume to use all available free space in the volume group. Replace
/dev/ubuntu-vg/ubuntu-lv
with your logical volume path if different.sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
Step 7: Resize the Filesystem
Resize the filesystem to utilize the new space. For an ext4 filesystem, use:
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
Step 8: Verify the Changes
Check the disk space again to ensure that the changes have taken effect:
df -h
Conclusion
By following these steps, you should be able to extend your logical volume to utilize the full disk space available.
- Access to a terminal with
-
Setting Up a Weekly Cron Job for Pi-hole Gravity Updates
Setting Up a Weekly Cron Job for Pi-hole Gravity Updates
In this blog post, I’ll walk you through the process of setting up a weekly cron job to send an SMS notification when the Pi-hole gravity update is completed. This setup is particularly useful if you’re running Pi-hole in a Docker container and want to ensure that your cron job persists across container restarts.
Prerequisites
- A running Pi-hole instance in a Docker container.
- Access to the host machine where Docker is running.
- Basic knowledge of shell scripting and cron jobs.
Step 1: Create the Shell Script
First, create a shell script on the host machine that will be executed by the cron job. This script will update the Pi-hole gravity database and send an SMS notification upon successful completion.
-
Create the Script:
Open a text editor and create a new file named
pihole_update_gravity_with_sms.sh
:sudo nano /usr/local/bin/pihole_update_gravity_with_sms.sh
-
Add the Script Content:
Copy and paste the following content into the file:
#!/bin/bash # Path to the Pi-hole gravity update script GRAVITY_SCRIPT="docker exec pihole /usr/local/bin/pihole updateGravity" # SMS API credentials SMS_USER="USERNAME" SMS_PASS="APIKEY" SMS_MESSAGE="Pi-hole Gravity Update Completed Successfully." echo "Starting gravity update..." # Execute the gravity update \$GRAVITY_SCRIPT # Check if the gravity update was successful if [ \$? -eq 0 ]; then echo "Gravity update completed successfully." # Send notification via SMS using the confirmed working syntax echo "Sending SMS notification..." /usr/bin/curl "https://smsapi.free-mobile.fr/sendmsg?user=\${SMS_USER}&pass=\${SMS_PASS}&msg=\${SMS_MESSAGE}" echo "SMS notification sent successfully." else echo "Gravity update failed. No SMS notification sent." fi
-
Make the Script Executable:
Change the permissions of the script to make it executable:
sudo chmod +x /usr/local/bin/pihole_update_gravity_with_sms.sh
Step 2: Add the Script to the Host’s Cron Schedule
Next, add the script to the host’s cron schedule to run it weekly at 5:30 AM every Monday.
-
Edit the Crontab:
Open the crontab file for editing:
sudo crontab -e
-
Add the Cron Job Entry:
Add the following line to the crontab file to run the script at 5:30 AM every Monday:
30 5 * * 1 /usr/local/bin/pihole_update_gravity_with_sms.sh
-
Save and Exit:
Save the changes and exit the crontab editor.
Step 3: Verify the Cron Job
To ensure that the cron job is set up correctly, you can manually trigger the script and check the logs for any output or errors.
-
Manually Run the Script:
Execute the script manually to verify that it works as expected:
sudo /usr/local/bin/pihole_update_gravity_with_sms.sh
-
Check the Logs:
Review the system logs to see if the script was executed and if there were any errors:
bash sudo tail -f /var/log/syslog
Conclusion
By following these steps, you have successfully set up a weekly cron job to send an SMS notification upon the completion of the Pi-hole gravity update. This setup ensures that you are promptly notified of the update status, helping you maintain the efficiency of your Pi-hole instance.
-
Automount Rclone Remote at System Startup
Automount Rclone Remote at System Startup (Using systemd)
To automount your Rclone remote at system startup, follow these steps:
1. Create a systemd Service Unit
Create a systemd unit file (example:
/etc/systemd/system/rclone-debridlink.service
).[Unit] Description=Rclone Mount for DebridLink Seedbox After=network-online.target Wants=network-online.target [Service] Type=notify ExecStart=/usr/bin/rclone mount debridlink:/Seedbox /mnt/debridlink \\ --allow-other \\ --dir-cache-time 10s \\ --vfs-cache-mode full \\ --vfs-cache-max-size 500M \\ --vfs-read-chunk-size 8M \\ --vfs-read-chunk-size-limit 128M \\ --vfs-fast-fingerprint \\ --no-modtime \\ --read-only \\ --allow-non-empty \\ --log-level INFO \\ --log-file /var/log/rclone.log ExecStop=/bin/fusermount -u /mnt/debridlink Restart=on-failure User=<your-username> Group=<your-group> TimeoutSec=30 [Install] WantedBy=multi-user.target
Replace
<your-username>
and<your-group>
with the appropriate values (you can find them usingwhoami
andid -gn
).
2. Enable FUSE Permissions
Ensure your user is part of the
fuse
group (if applicable):sudo usermod -aG fuse <your-username>
Also install necessary FUSE packages (if missing):
sudo apt install fuse3
3. Enable and Start the Service
Enable and start your systemd service:
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable rclone-debridlink.service sudo systemctl start rclone-debridlink.service
You can check the status with:
systemctl status rclone-debridlink.service
✅ Your Rclone mount should now automatically mount on each system boot.
-
How to Set Up a Secure VPN Wi-Fi Access Point with OpenWRT and ProtonVPN (WireGuard)
In this guide, we’ll walk through setting up an OpenWRT-based Wi-Fi access point that forces all connected clients to route their traffic through ProtonVPN using WireGuard. This ensures privacy, prevents DNS leaks, and blocks fallback to your ISP (kill switch).
🔧 Prerequisites
- OpenWRT-compatible router with internet access
- OpenWRT firmware installed (with LuCI interface)
- ProtonVPN account with WireGuard support
1. Install Required Packages
SSH into your OpenWRT router and run:
opkg update opkg install luci-proto-wireguard wireguard-tools luci-app-wireguard kmod-wireguard
2. Configure WireGuard Interface
Use ProtonVPN’s WireGuard config generator and enter the config into:
LuCI > Network > Interfaces > Add new interface
- Name:
wg0
- Protocol: WireGuard VPN
- Assign firewall zone:
wgzone
Add interface details from ProtonVPN:
- Private key
- Public key
- Endpoint IP/port
- Allowed IPs:
0.0.0.0/0
- DNS server:
10.2.0.1
(or as provided)
**Proton Doc: Link
3. Create a VPN-Only Wi-Fi Network
LuCI > Network > Wireless > Add
- SSID:
VPN-WiFi
- Network: check vpnlan only
Then go to Network > Interfaces > Add:
- Name:
vpnlan
- Protocol: Static
- IPv4 address:
192.168.100.1
- Netmask:
255.255.255.0
- Firewall zone: create new
vpnlan
Enable DHCP:
Network > DHCP and DNS > Interfaces > vpnlan- Start: 100
- Limit: 150
- Lease time: 12h
4. Configure Firewall Zones
LuCI > Network > Firewall > Zones
Create zones:
-
vpnlan: covers
vpnlan
network- Input: accept
- Output: accept
- Forward: reject
- ✅ Masquerading
- ✅ MSS Clamping
-
wgzone: covers
wg0
- Input: reject
- Output: accept
- Forward: reject
- ✅ Masquerading
Forwarding Rules:
- Allow
vpnlan ➝ wgzone
- ❌ Do NOT allow
vpnlan ➝ wan
5. Force DNS Over VPN
Network > DHCP and DNS:
- ✅ Ignore resolv file
- DNS Forwardings:
10.2.0.1
(or ProtonVPN DNS)
Firewall > Traffic Rules:
-
Allow DNS to VPN:
- Source zone:
vpnlan
- Destination zone:
wgzone
- Destination IP:
10.2.0.1
- Port: 53
- ✅ Accept
- Source zone:
-
Block All Other DNS:
- Source zone:
vpnlan
- Port: 53
- ❌ Reject
- Source zone:
6. Test the Setup
✅ DNS Leak Test
Connect to
VPN-WiFi
, visit https://dnsleaktest.comYou should only see ProtonVPN DNS (e.g., 185.x.x.x in Netherlands).
✅ Kill Switch Test
Temporarily bring down the VPN:
ifdown wg0
Clients on
VPN-WiFi
should lose all internet access.
🔒 Result
You now have a secure, VPN-only wireless access point. All connected devices are:
- Protected via ProtonVPN (WireGuard)
- Free of DNS leaks
- Kill-switched from WAN fallback
Enjoy secure browsing!
-
Network Drive Status CSC CACHE
📁 Désactivation des fichiers hors connexion dans le Centre de synchronisation pour résoudre les conflits CSC CACHE
📝 Problème
Un lecteur réseau affiche le statut
CSC CACHE
, ce qui indique que les fichiers hors connexion sont activés via le Centre de synchronisation. Cela entraîne les problèmes suivants :- Dossiers incomplets ou contenus manquants.
- Conflits de fichiers ou fichiers obsolètes.
- Impossibilité d’accéder à certains fichiers présents sur le serveur.
✅ Objectif
Désactiver les fichiers hors connexion pour que le lecteur réseau reflète le contenu en temps réel sans mise en cache ni conflit.
🔧 Étapes à suivre
Étape 1 : Vérifier le statut dans le Centre de synchronisation
- Ouvrir le Panneau de configuration.
- Rechercher et ouvrir le Centre de synchronisation.
- Dans le menu de gauche, cliquer sur Gérer les fichiers hors connexion.
- Vérifier le statut :
- Si le message indique que les fichiers hors connexion sont activés, passer à l’étape suivante.
Étape 2 : Désactiver les fichiers hors connexion
- Dans la fenêtre Fichiers hors connexion, cliquer sur Désactiver les fichiers hors connexion.
- Cliquer sur OK.
- Redémarrer l’ordinateur lorsque cela est demandé.
Étape 3 : Vider le cache CSC (optionnel mais recommandé)
Si le lecteur réseau affiche toujours
CSC CACHE
ou si le problème persiste, il est conseillé de vider le cache des fichiers hors connexion.⚠️ Attention : cette opération supprimera tous les fichiers en cache. S’assurer que toutes les modifications ont été synchronisées et sauvegardées.
a. Modifier le registre pour vider le cache au redémarrage
- Appuyer sur
Windows + R
, taperregedit
, puis appuyer sur Entrée. -
Naviguer jusqu’à la clé suivante :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CSC
- Créer ou modifier la valeur DWORD suivante :
-
Nom :
FormatDatabase
-
Valeur :
1
-
Nom :
- Fermer l’Éditeur du Registre et redémarrer l’ordinateur.
Étape 4 : Vérifier l’accès au lecteur réseau
Après redémarrage :
- Ouvrir l’Explorateur de fichiers.
- Accéder au lecteur réseau concerné.
- Vérifier que :
- Le lecteur n’indique plus
CSC CACHE
. - Tous les fichiers et dossiers sont visibles et à jour.
- Le lecteur n’indique plus
-
Update Portainer on Ubuntu with Docker
Update Portainer on Ubuntu with Docker
This script stops and removes the existing Portainer container, pulls the latest image, and restarts Portainer using Docker.
Script:
update_portainer.sh
#!/bin/bash # Update Portainer using Docker echo "Stopping existing Portainer container..." docker stop portainer echo "Removing existing Portainer container..." docker rm portainer echo "Pulling the latest Portainer image..." docker pull portainer/portainer-ce:lts echo "Restarting Portainer with the latest image..." docker run -d \ -p 8000:8000 \ -p 9443:9443 \ --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:lts echo "Portainer update complete."
Make the Script Executable
chmod +x update_portainer.sh
Run the Script
./update_portainer.sh
⚠️ Adjust container name, ports, or volume paths if your setup differs.
-
Change the Metrics of the Network adapater
Powershell script to change the metrics of the network adapter
Some software, such as Siemens, installs virtual network adapters. By default, Windows automatically manages network metrics, which can cause delays during startup. In some cases, the system attempts to obtain a network address for the virtual adapter before the physical one, significantly delaying network availability for users. To address this issue, the following script manually sets the network metric values to prioritize the physical adapter.
# Following pre requisites are required: # The network cards should be named properly # Here in my scenario I have named the physical cards as Pedagogie which I could address it in the script. # Define the remote computer name $remotePC = "PC 01" # Define the adapter names and desired metric values $pedagogieAdapterName = "Pedagogie" $siemensAdapterName = "Ethernet 2" $pedagogieMetricValue = 1 $siemensMetricValue = 100 # Execute the following block remotely Invoke-Command -ComputerName $remotePC -ScriptBlock { param($pedagogieAdapterName, $siemensAdapterName, $pedagogieMetricValue, $siemensMetricValue) # Get the network adapter interfaces $pedagogieInterface = Get-NetAdapter -Name $pedagogieAdapterName -ErrorAction Stop $siemensInterface = Get-NetAdapter -Name $siemensAdapterName -ErrorAction Stop # Set the new metric values Set-NetIPInterface -InterfaceIndex $pedagogieInterface.ifIndex -InterfaceMetric $pedagogieMetricValue Set-NetIPInterface -InterfaceIndex $siemensInterface.ifIndex -InterfaceMetric $siemensMetricValue Write-Output "$comp : Metric for adapter '$pedagogieAdapterName' set to $pedagogieMetricValue." Write-Output "$comp : Metric for adapter '$siemensAdapterName' set to $siemensMetricValue." } -ArgumentList $pedagogieAdapterName, $siemensAdapterName, $pedagogieMetricValue, $siemensMetricValue
-
CRX-10 app not finding the Robot
CRX-10 app not finding the Robot
-
Freemobile SMS API template
```bash
SMS API credentials
SMS_USER=”USERNAME” SMS_PASS=”APIKEY” SMS_MESSAGE=”Pi-hole Gravity Update Completed Successfully.”
-
MailMerge avec ThunderBird
MailMerge avec Thunderbird
-
Nvidia Driver install
Documentation: Clean Nvidia Driver Installation using DDU and NVCleanInstall
-
Chocolatey package automation via github workflow
Chocolatey Package Deployment Workflow
-
Deploy the new Microsoft Teams client
Source: link
-
Copy a desired profile to default profile
Use defprof to copy the desired profile
-
Unable to update windows due to SSL error
-
Recover data using Duplicati
Points to remember while recovering using Duplicati.
-
Mounting a CIFS Share in an Unprivileged LXC Container Running Docker
This guide details how to mount a CIFS (SMB) share within an unprivileged LXC container running on Proxmox and make it accessible to a Docker container.
-
Metabase upgrade or migration to new server
Before upgrading the system, always take a backup of the database to prevent data loss.
-
Glpi-Agent
Ref: Doc
-
Microsoft 365 Apps activation error- Trusted Platform Module malfunctioned
When a motherboard has been replaced, Teams may not work and could give you an error stating “Trusted Platform Module malfunctioned”
-
File Association
Steps to Automate Setting File Associations via Group Policy Using Command Line
-
Powershell script to list the Members in the Administrateur Group
```powershell
Define the list of computers
$computers = @(“PC1”, “PC2”, “PC3”) # Replace with your actual computer names
-
Bitlocker key
suite à une maj de juillet certains ordis peuvent demander la clef bitlocker au démarrage Voici comment retrouver une clef bitlocker à partir de l’ID dans l’AD:
-
Fog Client unable to install CA certificate Error
During install of Fog client you might encounter the following error:
-
Topsolid Chocolatey Package Description
Topsolid License and update configuration:
-
Registering windows apps screen appears during logon
Registering windows apps screen appears during logon
-
Snippet for firewall rule in choco package
Snippet for firewall rule in choco package
-
Slow startup Troubleshooting
Slow start up can be troubleshooted via windows performance analysis tool available in windows ADK
- Download the latest version of Windows ADK and install the windows performance toolkit.
- Link: Télécharger le Windows ADK 10.1.26100.2454 (décembre 2024)
-
Disable automatic updates of Microsoft Store apps
Disable automatic updates of Microsoft Store apps
-
USB Devices Passthrough over IP
USB Devices Passthrough over IP
-
Recovery Partition Parameters
Process to hide and mark a partition as windows recovery partition
-
Kiosk JPO
Kiosk for JPO
-
Powershell Script to Backup Hyperv VM
This powershell Script backups the VM to Synology WORM shared Folder
-
Set Environment varaiable
To apply settings to the current user session
The set commands sets the variable but its not persistant after reboot
-
docker-stack-nexus
version: '3.3' services: nexus1: ports: - '8082:8081' container_name: nexus1 volumes: - chocolatey1-container-volume:/nexus-data - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro" image: sonatype/nexus3:latest networks: - network1 nexus2: ports: - '8083:8081' container_name: nexus2 volumes: - chocolatey2-container-volume:/nexus-data - "/etc/timezone:/etc/timezone:ro" - "/etc/localtime:/etc/localtime:ro" image: sonatype/nexus3:latest networks: - network1 networks: network1: name: nginx-proxy-manager_default external: true volumes: chocolatey1-container-volume: external: true name: chocolatey1-container-volume chocolatey2-container-volume: external: true name: chocolatey2-container-volume
-
Flexlm command line switches
License Administration Tools
-
HyperV isolated network with internet access
HyperV isolated network with internet access
-
Container-time-and-date-settings
Container Time and date for logs
-
Convert from Dynamic VHD/VHDX Disk Format to / from Fixed in Hyper-V
Convert from Dynamic VHD/VHDX Disk Format to / from Fixed in Hyper-V
-
Update portainer
To update to the latest version of Portainer Server, use the following commands to stop then remove the old version. Your other applications/containers will not be removed.
-
SSH configuration
SSH
-
Insight Block Application and Internet
Insight Block Application and Internet
-
MarkDown Diagrams and Charts
Source: (Hedgedoc.org)[https://demo.hedgedoc.org/features?both]
Diagrams
-
Add DNS Entry To Hosts File Using The Command Prompt
How To Add DNS Entry To Hosts File Using The Command Prompt
-
Compare Dell Bios parameters between Pcs
This Powershell script compares the parameters of Bios between Pcs
-
Chocolatey Install script snippets
When you need to check if a file exists in the network share before proceeding with the install use Get-Item command.
The Get-Item -path \Network-share\file.txt checks if the file is in the path, if not it raises an error that stops the chocolatey install script because of the erroractionpreferrence set at the begining of the sript.
-
Chocolatey Uninstall MSI using uninstall string
To uninstall a package which uses MSI filetype.
-
3Dexperince how to update Hotfix.
How to patch the hotfix in 3Dexperience
-
TemperMonkey Script to paste Front Matter Template
The script loads the Frontmatter template to the clipboard
After creating new post just CTRL + V to paste the FrontMatter
-
Tia-portal-Please-reboot-before-installing-any-more-programs
Message “Please reboot before installing any more programs”
-
Determine if MSI/EXE supports certain flag/argument
Determine if MSI/EXE supports certain flag/argument.
-
2023-05-10-GLPI_sql_query_for_metabase
SELECT glpi_computers.name, glpi_infocoms.warranty_date, TIMESTAMPDIFF(YEAR, glpi_infocoms.warranty_date, CURDATE()) AS Age, MID(glpi_computers.name,8,1) AS Batiment, MID(glpi_computers.name,9,4) AS Salle FROM
glpi_computers
LEFT JOIN glpi_infocoms ON glpi_computers.id = glpi_infocoms.items_id WHERE ((glpi_computers.name LIKE ‘028F2%’) AND (glpi_computers.states_id=2)) ORDER BY glpi_computers.name ASC LIMIT 2; -
How_to_Reset_MySQL_Master-Slave_Replication
How to Reset ( Re-Sync ) MySQL Master-Slave Replication
Source: https://tecadmin.net/reset-re-sync-mysql-master-slave-replication/
-
AutoIT Encrypt Script
AutoIT Encrypt Script
-
Set DHCP to static for PC in Base-IP
After importing CSV the DHCP type reflects as Regular to change the values to DHCP Static.
-
Windows_UI_Automation_with_Sikulix
Windows UI Automation with Sikulix
-
Insight Frequently used commands
Insight Freequently used commands
-
Chocolatey Softwares install commands
Chocolatey Interne software install commands
-
Fog Secure Boot issue
Fog Secure Boot issue
-
Modify BIOS settings via dell command configure winPE ISO
Modify BIOS settings via dell command configure via winPE
-
Deploy Roboguide package
Deploying Roboguide
Autoit script to install Roboguide
-
Insight Tech Console Backup WOL
Insight Tech Console Backup WOL
-
Change Vertical Menu to Horizontal Menu
Change Vertical Menu to Horizontal Menu
-
HP BIOS Settings Management
HP BIOS Settings Management source
-
Factory Reset your Aastra phone
How to factory reset an Aastra 6 series
- Applicable to Aastra 6751i, 6753i, 6755i, 6757i, 6730i, 6731i, 6739i
- Factory Reset your Aastra phone
- If you know the Admin Password
- If you do not know the Admin Password Important: These phones are outdated and no longer supported by 3CX. This guide is available for informational purposes only and will not be updated
-
Reinitialiser le pc aux paramètres dusine
Réinitialiser le pc aux paramètres d’usine
-
Powershell script to check if the software is installed on remote PC
``` function check-software-install() { Param ( [Parameter(Mandatory = $true)] [Array] $computers, [Parameter(Mandatory = $true)] [string] $softwarename )
-
Factory Reset Partition via Clonezilla
AUTOMATED UEFI-WINDOWS RESTORE USING CLONEZILLA
-
PartitionWizard Clean Uninstall
Partition Wizard Clean uninstall
-
Powershell remote install/uninstall softwares
Powershell Function to uninstall msi remotely and get the output status
-
GLPI Upgrade
When you would like to upgrade to the new version of Glpi
-
INITIATE SCCM CLIENT AGENT ACTIONS USING COMMAND LINE
Credits: https://www.manishbangia.com/initiate-sccm-client-actions-cmd-line/
-
Nexus Repository For Chocolatey
Installation:
-
DeepFreeze-Actions
DeepFreeze Actions
-
Powershell - Onliners
To remove appx provisioned package
-
Reinstall and re-register command for built-in Windows 10 apps
Credit : winhelponline
-
Installing Fusioninventory Plugin
Installez et configurez le plugin FusionInventory
-
Test-chocolatey Environment
function Disable-ExecutionPolicy {($ctx = $executioncontext.gettype().getfield("_context","nonpublic,instance").getvalue( $executioncontext)).gettype().getfield("_authorizationManager","nonpublic,instance").setvalue($ctx, (new-object System.Management.Automation.AuthorizationManager "Microsoft.PowerShell"))} Disable-ExecutionPolicy Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1 Import-Module $env:ChocolateyInstall\helpers\chocolateyInstaller.psm1
-
Select the active network card adapter of the pc
``` Get-WmiObject -Class Win32NetworkAdapterConfiguration -ComputerName $env:COMPUTERNAME | where { $.IpAddress -eq ([System.Net.Dns]::GetHostByName($Inputmachine).AddressList[0]).IpAddressToString }
-
Bypass powershell execution policy
The following script helps to bypass the execution policy in the powershell session
function Disable-ExecutionPolicy {($ctx = $executioncontext.gettype().getfield("_context","nonpublic,instance").getvalue( $executioncontext)).gettype().getfield("_authorizationManager","nonpublic,instance").setvalue($ctx, (new-object System.Management.Automation.AuthorizationManager "Microsoft.PowerShell"))} Disable-ExecutionPolicy
-
Apply changes to Pc while UWF is enabled
The following script helps to make changes on a PC with UWF Active.
``` Remove-Job * -Force $filter = Read-Host ‘Enter the Filter for PC::’ $comp = Get-ADComputer -SearchBase “ “ -Filter ‘Name -like $filter’|Select-Object -ExpandProperty Name | Out-GridView -PassThru
-
BSOD-INACCESSIBLE_BOOT_DEVICE
Resolve INACCESSIBLE_BOOT_DEVICE Error
Stage 1
- Boot Pc from windows CD -> repair option -> command prompt;
- for Safemode:
bcdedit /set {default} safeboot minimal
- for Safe Mode with Networking type in:
bcdedit /set {current} safeboot network
- If the pc is able to boot into safe mode, its evident that some driver or thirdparty apps is blocking the windows boot process
- to reset the pc to boot normally :
- use msconfig -> Boot -> disable safeboot
-
Docker-Glpi
Install Docker Engine on Ubuntu
Set up the repository
Update the apt package index and install packages to allow apt to use a repository over HTTPS:
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
Add Docker’s official GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Use the following command to set up the stable repository. To add the nightly or test repository, add the word nightly or test (or both) after the word stable in the commands below. Learn about nightly and test channels.
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Install Docker Engine
Update the apt package index, and install the latest version of Docker Engine and containerd, or go to the next step to install a specific version: ``` sudo apt-get update
-
Glpi-PowerBI-Reporting
- Install Power BI Desktop on a machine
- Download the ODBC connector for MariaDB from the official site (Same principle for MySQL)
- Note- Please install version : mariadb-connector-odbc-3.1.13-win64.msi
-
The latest version: mariadb-connector-odbc-3.1.14-win64.msi has a bug - It crashes the ODBC Data Source utility while connection.
- Installation classic of mariadb-connector-odbc-3.1.13-win64.msi.
- Click the start button and search “ODBC Data Source (64 bit)” and lauch it with admin privilege.
- click add and in the Create New Data Source window select the MariaDB ODBC 3.1 Driver and click on Finish button
- Connection Name : glpi-test
- In the Next window Enter the requested information (in my case)
- Server Name: IP of the server
- Port :3306
- User name
- Password
*
- click on the button TestDSN ,If the test is successful, a message tells you so and you can choose your database -> choose Glpi from the dropdown.
- Open the PowerBI file and click on the refresh button on the ribbon menu, a window pops up and demands for the database password. Please fill in the respective info and thats-it.
- Enjoy!
-
Delete_device_and_driver_windows10
Delete device and driver