彻底更新windows配置工具!!!!!!!!!!!!!!!!!!!!!!

This commit is contained in:
2025-06-10 19:25:24 +08:00
Unverified
parent b1ee39317e
commit 8be98ca1b1
6 changed files with 261 additions and 45 deletions

Binary file not shown.

View File

@@ -34,6 +34,9 @@
<title>zerotier安装&加入私有planet脚本</title>
<h1>zerotier安装&加入私有planet脚本</h1>
<p>Linuxcurl -s https://o.nmgjg.com.cn/install/zerotier/linux.sh | sudo bash</p>
<p>WindowsSet-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\windows.ps1
</p>
</div>
</body>

View File

@@ -312,7 +312,7 @@ source /etc/os-release
# 检测发行版并处理
if [ $ID == "debian" ] || [ $ID == "raspbian" ]; then
echo '*** 检测到 Debian Linux正在创建 /etc/apt/sources.list.d/zerotier.list'
\
# Debian testing/sid does not declare a VERSION_ID in /etc/os-release
if [ -z "$VERSION_ID" ] || [ $VERSION_ID -gt $MAX_SUPPORTED_DEBIAN_VERSION ]; then
write_apt_repo $ID $MAX_SUPPORTED_DEBIAN_VERSION $ZT_BASE_URL_HTTP $MAX_SUPPORTED_DEBIAN_VERSION_NAME

Binary file not shown.

View File

@@ -1,35 +1,247 @@
# Check if ZeroTier is installed, exit if not
# if not exist "C:\Program Files\ZeroTier\One\ZeroTier One.exe" (
# echo "ZeroTier not detected, exiting..."
# exit /b 1
# )
# Check for administrator privileges
# if not "%USERPROFILE%"=="C:\Users\Administrator" (
# echo "Please run this script as Administrator."
# exit /b 1
# )
# Check if curl is installed, exit if not
# if not exist "C:\Program Files\curl\bin\curl.exe" (
# echo "curl not detected, exiting..."
# exit /b 1
# )
# # Check if ZeroTier is installed, exit if not
# # if not exist "C:\Program Files\ZeroTier\One\ZeroTier One.exe" (
# # echo "ZeroTier not detected, exiting..."
# # exit /b 1
# # )
# # Check for administrator privileges
# # if not "%USERPROFILE%"=="C:\Users\Administrator" (
# # echo "Please run this script as Administrator."
# # exit /b 1
# # )
# # Check if curl is installed, exit if not
# # if not exist "C:\Program Files\curl\bin\curl.exe" (
# # echo "curl not detected, exiting..."
# # exit /b 1
# # )
# Remove old planet file
del "C:\ProgramData\ZeroTier\One\planet"
# Download https://o.nmgjg.com.cn/install/zerotier/planet and overwrite to C:/ProgramData/ZeroTier/One/planet
echo "Downloading planet file..."
#curl.exe -s -o "C:/ProgramData/ZeroTier/One/planet" "http://150.158.212.94:3000/planet?key=60aa98087ae3a21f"
curl.exe -s -o "C:/ProgramData/ZeroTier/One/planet" "https://o.nmgjg.com.cn/install/zerotier/planet"
echo "Planet file downloaded, joining network..."
# # Remove old planet file
# del "C:\ProgramData\ZeroTier\One\planet"
# # Download https://o.nmgjg.com.cn/install/zerotier/planet and overwrite to C:/ProgramData/ZeroTier/One/planet
# echo "Downloading planet file..."
# #curl.exe -s -o "C:/ProgramData/ZeroTier/One/planet" "http://150.158.212.94:3000/planet?key=60aa98087ae3a21f"
# curl.exe -s -o "C:/ProgramData/ZeroTier/One/planet" "https://o.nmgjg.com.cn/install/zerotier/planet"
# echo "Planet file downloaded, joining network..."
# Start-Sleep -Seconds 3
# zerotier-cli join af7c492762d601cd
# echo "Restarting ZeroTier service..."
# Restart-Service -Name "ZeroTierOneService"
# echo "Waiting for ZeroTier to start..."
# Start-Sleep -Seconds 5
# echo "Joining new network again..."
# zerotier-cli join af7c492762d601cd
# echo "Leaving old network..."
# zerotier-cli leave 12ac4a1e71a30025
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԱȨ<D4B1><C8A8>
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltinRole] "Administrator")) {
Write-Host "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д˽ű<EFBFBD><EFBFBD><EFBFBD>" -ForegroundColor Red
Start-Sleep -Seconds 3
zerotier-cli join af7c492762d601cd
echo "Restarting ZeroTier service..."
Restart-Service -Name "ZeroTierOneService"
echo "Waiting for ZeroTier to start..."
exit 1
}
$ErrorActionPreference = "Stop"
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
function Write-Log {
param (
[string]$Message,
[string]$Color = "White"
)
Write-Host $Message -ForegroundColor $Color
}
# <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ѱ<EFBFBD>װ ZeroTier <20>ͻ<EFBFBD><CDBB><EFBFBD>
function Check-ZTInstalled {
$ztPath = "C:\Program Files\ZeroTier\One\ZeroTier One.exe"
if (Test-Path $ztPath) {
return $true
}
else {
return $false
}
}
# ж<><D0B6> ZeroTier <20>ͻ<EFBFBD><CDBB><EFBFBD>
function Uninstall-ZT {
Write-Log "<EFBFBD><EFBFBD>ʼж<EFBFBD><EFBFBD> ZeroTier <20>ͻ<EFBFBD><CDBB><EFBFBD>..." "Yellow"
$ztUninstallKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
$uninstallString = $null
# <20><><EFBFBD><EFBFBD> ZeroTier ж<><D0B6><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
$keys = Get-ChildItem $ztUninstallKey
foreach ($key in $keys) {
$displayName = (Get-ItemProperty $key.PSPath).DisplayName 2>$null
if ($displayName -and $displayName -like "*ZeroTier*") {
$uninstallString = (Get-ItemProperty $key.PSPath).UninstallString
break
}
}
if ($uninstallString) {
# <20>е<EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ִ<EFBFBD><D6B4><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>
if ($uninstallString.StartsWith("msiexec")) {
# MSIж<49>أ<EFBFBD><D8A3><EFBFBD> /x <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$args = $uninstallString -replace 'msiexec.exe', ''
# ʹ<>þ<EFBFBD>Ĭж<C4AC><D0B6>
Write-Log "<EFBFBD><EFBFBD><EFBFBD>⵽ MSI ж<>س<EFBFBD><D8B3><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>о<EFBFBD>Ĭж<C4AC><D0B6>..." "Yellow"
Start-Process msiexec.exe -ArgumentList "/x $args /qn" -Wait
}
else {
# <20><><EFBFBD><EFBFBD>ж<EFBFBD>س<EFBFBD><D8B3><EFBFBD>
Write-Log "ִ<EFBFBD><EFBFBD>ж<EFBFBD>س<EFBFBD><EFBFBD><EFBFBD>: $uninstallString" "Yellow"
Start-Process -FilePath "cmd.exe" -ArgumentList "/c `"$uninstallString /quiet`"" -Wait
}
Write-Log "ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɡ<EFBFBD>" "Green"
}
else {
Write-Log "δ<EFBFBD>ҵ<EFBFBD> ZeroTier ж<>س<EFBFBD><D8B3>򣬿<EFBFBD><F2A3ACBF><EFBFBD>δ<EFBFBD><CEB4>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ж<EFBFBD>ء<EFBFBD>" "Red"
}
# <20>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD>̹ر<CCB9>
Start-Sleep -Seconds 5
echo "Joining new network again..."
zerotier-cli join af7c492762d601cd
echo "Leaving old network..."
zerotier-cli leave 12ac4a1e71a30025
}
# <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
function Download-File($url, $outputPath) {
Write-Log "<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>أ<EFBFBD> $url" "Cyan"
try {
Invoke-WebRequest -Uri $url -OutFile $outputPath -UseBasicParsing
Write-Log "<EFBFBD><EFBFBD><EFBFBD>سɹ<EFBFBD><EFBFBD><EFBFBD> $outputPath" "Green"
}
catch {
Write-Log "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD> $_" "Red"
exit 1
}
}
# <20>滻 planet <20>ļ<EFBFBD>
function Replace-PlanetFile {
$planetPath = "$env:ProgramData\ZeroTier\One\planet"
$tempPath = "$env:TEMP\planet"
$planetUrl = "https://o.nmgjg.com.cn/install/zerotier/planet"
if (Test-Path $planetPath) {
try {
Stop-Service -Name "ZeroTierOne" -ErrorAction SilentlyContinue
}
catch {}
Write-Log "ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> planet <20>ļ<EFBFBD>..." "Yellow"
Remove-Item -Path $planetPath -Force -ErrorAction SilentlyContinue
}
Write-Log "<EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><EFBFBD>滻 planet <20>ļ<EFBFBD>..." "Cyan"
Download-File -url $planetUrl -outputPath $tempPath
Move-Item -Path $tempPath -Destination $planetPath -Force
Write-Log "planet <20>ļ<EFBFBD><C4BC><EFBFBD><E6BBBB><EFBFBD>ɡ<EFBFBD>" "Green"
}
# <20><><EFBFBD><EFBFBD> ZeroTier <20><><EFBFBD><EFBFBD>
function Join-ZTNetwork {
$networkId = "af7c492762d601cd"
Write-Log "<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD> ZeroTier <20><><EFBFBD>$networkId" "Cyan"
$ztCli = "C:\Program Files\ZeroTier\One\zerotier-cli.exe"
if (-not (Test-Path $ztCli)) {
Write-Log "<EFBFBD>Ҳ<EFBFBD><EFBFBD><EFBFBD> zerotier-cli.exe<78><65><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" "Red"
return
}
& $ztCli join $networkId
if ($LASTEXITCODE -eq 0) {
Write-Log "<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $networkId" "Green"
}
else {
Write-Log "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>$LASTEXITCODE" "Red"
}
}
# <20><>װ ZeroTier <20>ͻ<EFBFBD><CDBB><EFBFBD>
function Install-ZT {
$installerDir = "C:\zerotier_installer"
$installerPath = Join-Path $installerDir "win64.msi"
$installerUrl = "https://o.nmgjg.com.cn/install/zerotier/win64.msi"
if (-not (Test-Path $installerDir)) {
New-Item -ItemType Directory -Path $installerDir | Out-Null
}
Download-File -url $installerUrl -outputPath $installerPath
Write-Log "<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>װ ZeroTier <20>ͻ<EFBFBD><CDBB><EFBFBD>..." "Yellow"
Start-Process msiexec.exe -ArgumentList "/i `"$installerPath`" /qn /norestart" -Wait
Write-Log "ZeroTier <20><>װ<EFBFBD><D7B0><EFBFBD>ɡ<EFBFBD>" "Green"
}
# <20><>װ MeshCentral <20>ͻ<EFBFBD><CDBB><EFBFBD>
function Install-MeshCentral {
$installerDir = "C:\zerotier_installer"
$installerPath = Join-Path $installerDir "win64.exe"
$installerUrl = "https://o.nmgjg.com.cn/install/meshcentral/win64.exe"
if (-not (Test-Path $installerDir)) {
New-Item -ItemType Directory -Path $installerDir | Out-Null
}
Download-File -url $installerUrl -outputPath $installerPath
Write-Log "<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>װ MeshCentral <20>ͻ<EFBFBD><CDBB><EFBFBD>..." "Yellow"
Start-Process -FilePath $installerPath -ArgumentList "-install" -Wait
Write-Log "MeshCentral <20><>װ<EFBFBD><D7B0><EFBFBD>ɡ<EFBFBD>" "Green"
}
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Write-Log "=== ZeroTier & MeshCentral <20><><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD> ===" "Magenta"
$installed = Check-ZTInstalled
if ($installed) {
$choice = Read-Host "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѱ<EFBFBD>װ ZeroTier <20>ͻ<EFBFBD><CDBB>ˣ<EFBFBD><CBA3>Ƿ<EFBFBD>ж<EFBFBD>أ<EFBFBD>(Y/N)"
if ($choice -match "^[Yy]$") {
Uninstall-ZT
Write-Log "<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD>ټ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" "Yellow"
$restartNow = Read-Host "<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N)"
if ($restartNow -match "^[Yy]$") {
Restart-Computer
exit
}
else {
Write-Log "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д˽ű<EFBFBD><EFBFBD><EFBFBD>" "Red"
exit
}
}
else {
Write-Log "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" "Yellow"
}
}
else {
Write-Log "δ<EFBFBD><EFBFBD><EFBFBD>⵽ ZeroTier <20>ͻ<EFBFBD><CDBB>˰<EFBFBD>װ<EFBFBD><D7B0>" "Green"
}
$installChoice = Read-Host "<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ ZeroTier <20>ͻ<EFBFBD><CDBB>ˣ<EFBFBD>(Y/N)"
if ($installChoice -match "^[Yy]$") {
Install-ZT
} else {
Write-Log "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ZeroTier <20><>װ<EFBFBD><D7B0>" "Yellow"
}
Replace-PlanetFile
Join-ZTNetwork
$meshChoice = Read-Host "<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>װ MeshCentral <20>ͻ<EFBFBD><CDBB>ˣ<EFBFBD>(Y/N)"
if ($meshChoice -match "^[Yy]$") {
Install-MeshCentral
} else {
Write-Log "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> MeshCentral <20><>װ<EFBFBD><D7B0>" "Yellow"
}
$finalRestart = Read-Host "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Y/N)"
if ($finalRestart -match "^[Yy]$") {
Restart-Computer
} else {
Write-Log "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" "Green"
}
Write-Log "<EFBFBD>ű<EFBFBD>ִ<EFBFBD>н<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>лʹ<EFBFBD>ã<EFBFBD>" "Magenta"

View File

@@ -1,7 +1,8 @@
<!DOCTYPE html>
<html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>&#x5185;&#x7f51;&#x7a7f;&#x900f;&#x5347;&#x7ea7;&#x901a;&#x77e5;</title>
<style>
/* From extension vscode.github */