首次提交
This commit is contained in:
121
README.md
Normal file
121
README.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# DayZ 服务器自动安装工具
|
||||
|
||||
这是一个用于自动安装和配置 DayZ 专用服务器的工具集。该工具可以自动下载并安装 DayZ 服务器文件,简化服务器部署过程。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- 🔧 **自动安装 VC++ 运行库** - 确保系统具备运行 DayZ 服务器的必要组件
|
||||
- 📦 **自动下载 SteamCMD** - 自动获取 Steam 命令行工具
|
||||
- 🎮 **自动下载 DayZ 服务器文件** - 通过 Steam 自动下载最新的 DayZ 服务器文件
|
||||
- 🔄 **自动生成更新脚本** - 安装完成后自动创建用于后续更新的批处理脚本
|
||||
- 🛡️ **安全凭证处理** - 安装完成后自动清理内存中的 Steam 凭证
|
||||
|
||||
## 文件说明
|
||||
|
||||
- `install.ps1` - 主要的 PowerShell 安装脚本
|
||||
- `双击安装.bat` - 用户友好的批处理启动脚本
|
||||
- `说明.txt` - 使用说明文档
|
||||
- `更新服务器.bat` - 安装完成后自动生成的更新脚本
|
||||
|
||||
## 系统要求
|
||||
|
||||
- Windows Server 2016+
|
||||
- PowerShell 5.0 或更高版本
|
||||
- 稳定的网络连接
|
||||
- 至少 10GB 可用磁盘空间
|
||||
|
||||
## 安装步骤
|
||||
|
||||
### 1. 准备工作
|
||||
|
||||
1. 确保项目文件夹路径不包含中文字符
|
||||
2. 右键点击 `双击安装.bat` 文件,选择"编辑"
|
||||
|
||||
### 2. 配置 Steam 凭证
|
||||
|
||||
在编辑器中找到以下行:
|
||||
```batch
|
||||
set "STEAM_USER=your_username"
|
||||
set "STEAM_PASS=your_password"
|
||||
```
|
||||
|
||||
将其修改为你的 Steam 账号信息:
|
||||
```batch
|
||||
set "STEAM_USER=你的steam用户名"
|
||||
set "STEAM_PASS=你的steam密码"
|
||||
```
|
||||
|
||||
**注意:** 使用的 Steam 账号不需要购买 DayZ 游戏,任何有效的 Steam 账号都可以。
|
||||
|
||||
### 3. 运行安装
|
||||
|
||||
1. 保存并关闭 `双击安装.bat` 文件
|
||||
2. 双击运行 `双击安装.bat`
|
||||
3. 等待安装完成
|
||||
|
||||
## 安装过程
|
||||
|
||||
安装脚本会自动执行以下步骤:
|
||||
|
||||
1. **下载并安装 VC++ 运行库**
|
||||
2. **下载 SteamCMD 工具**
|
||||
3. **使用 SteamCMD 下载 DayZ 服务器文件**
|
||||
4. **生成更新脚本**
|
||||
|
||||
安装完成后,会在项目目录下创建:
|
||||
- `game_server/` - DayZ 服务器文件目录
|
||||
- `steamcmd/` - SteamCMD 工具目录
|
||||
- `更新服务器.bat` - 用于后续更新的脚本
|
||||
|
||||
## 更新服务器
|
||||
|
||||
安装完成后,如需更新 DayZ 服务器文件,只需双击运行 `更新服务器.bat` 即可。
|
||||
|
||||
## 注意事项
|
||||
|
||||
### ⚠️ 重要提醒
|
||||
|
||||
1. **路径限制**:项目文件夹路径不能包含中文字符,因为 SteamCMD 不支持中文路径
|
||||
2. **网络要求**:确保网络连接稳定,下载过程可能需要较长时间
|
||||
3. **磁盘空间**:确保有足够的磁盘空间(建议至少 10GB)
|
||||
4. **权限要求**:可能需要管理员权限来安装 VC++ 运行库
|
||||
|
||||
### 🔒 安全建议
|
||||
|
||||
- 安装完成后,脚本会自动清理内存中的 Steam 凭证
|
||||
- 建议使用专门的 Steam 账号进行服务器文件下载
|
||||
- 定期更新服务器文件以获取最新的安全补丁
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 常见问题
|
||||
|
||||
1. **PowerShell 执行策略错误**
|
||||
- 解决方案:脚本已包含自动绕过执行策略的代码
|
||||
|
||||
2. **网络下载失败**
|
||||
- 检查网络连接
|
||||
- 尝试使用 VPN 或更换网络环境
|
||||
|
||||
3. **Steam 登录失败**
|
||||
- 确认 Steam 账号和密码正确
|
||||
- 检查是否需要 Steam Guard 验证码
|
||||
|
||||
4. **磁盘空间不足**
|
||||
- 清理磁盘空间后重新运行安装
|
||||
|
||||
## 技术支持
|
||||
|
||||
如果遇到问题,请检查:
|
||||
1. 系统是否满足最低要求
|
||||
2. 网络连接是否正常
|
||||
3. Steam 账号信息是否正确
|
||||
4. 路径是否包含中文字符
|
||||
|
||||
## 许可证
|
||||
|
||||
本项目仅供学习和个人使用。请遵守 DayZ 和 Steam 的服务条款。
|
||||
|
||||
---
|
||||
|
||||
**免责声明**:本工具仅用于自动化 DayZ 服务器文件的下载和安装过程。使用者需要自行承担使用风险,并确保遵守相关法律法规和服务条款。
|
||||
107
install.ps1
Normal file
107
install.ps1
Normal file
@@ -0,0 +1,107 @@
|
||||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$SteamUser,
|
||||
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$SteamPass
|
||||
)
|
||||
|
||||
Set-ExecutionPolicy Bypass -Scope Process -Force
|
||||
|
||||
$scriptDir = if ($PSScriptRoot) { $PSScriptRoot }
|
||||
else { Split-Path -Parent $MyInvocation.MyCommand.Definition }
|
||||
if (-not $scriptDir) { $scriptDir = Get-Location }
|
||||
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
|
||||
$appId = "223350"
|
||||
$installDir = Join-Path $scriptDir "game_server"
|
||||
|
||||
$vcRedistUrl = "https://aka.ms/vs/17/release/vc_redist.x64.exe"
|
||||
$vcRedistPath = Join-Path -Path $env:TEMP -ChildPath "vc_redist_x64.exe"
|
||||
|
||||
try {
|
||||
Write-Host "正在下载 VC++ 运行库..."
|
||||
(New-Object System.Net.WebClient).DownloadFile($vcRedistUrl, $vcRedistPath)
|
||||
|
||||
if (Test-Path $vcRedistPath) {
|
||||
Write-Host "正在静默安装 VC++ 运行库..."
|
||||
$installProcess = Start-Process -FilePath $vcRedistPath `
|
||||
-ArgumentList "/install /quiet /norestart" `
|
||||
-Wait -NoNewWindow -PassThru
|
||||
Remove-Item $vcRedistPath -Force
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "VC++安装失败: $_"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$steamcmdDir = Join-Path $scriptDir "steamcmd"
|
||||
$steamcmdUrl = "https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip"
|
||||
$steamcmdZip = Join-Path $steamcmdDir "steamcmd.zip"
|
||||
|
||||
try {
|
||||
if (-not (Test-Path $steamcmdDir)) {
|
||||
New-Item -Path $steamcmdDir -ItemType Directory -Force | Out-Null
|
||||
}
|
||||
|
||||
Write-Host "正在下载 SteamCMD..."
|
||||
(New-Object System.Net.WebClient).DownloadFile($steamcmdUrl, $steamcmdZip)
|
||||
|
||||
if (Test-Path $steamcmdZip) {
|
||||
Write-Host "正在解压 SteamCMD..."
|
||||
Expand-Archive -Path $steamcmdZip -DestinationPath $steamcmdDir -Force
|
||||
Remove-Item $steamcmdZip -Force
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "SteamCMD操作失败: $_"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$steamcmdExe = Join-Path $steamcmdDir "steamcmd.exe"
|
||||
|
||||
try {
|
||||
if (Test-Path $steamcmdExe) {
|
||||
Write-Host "正在更新游戏服务器 (AppID: $appId)..."
|
||||
$arguments = @(
|
||||
"+force_install_dir `"$installDir`"",
|
||||
"+login `"$SteamUser`" `"$SteamPass`"",
|
||||
"+app_update $appId validate",
|
||||
"+quit"
|
||||
)
|
||||
$process = Start-Process -FilePath $steamcmdExe `
|
||||
-ArgumentList $arguments `
|
||||
-Wait -NoNewWindow -PassThru `
|
||||
}
|
||||
else {
|
||||
throw "SteamCMD可执行文件未找到: $steamcmdExe"
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Error "游戏更新失败: $_"
|
||||
exit 1
|
||||
}
|
||||
|
||||
$updateBatPath = Join-Path $scriptDir "更新服务器.bat"
|
||||
$batContent = @"
|
||||
@echo off
|
||||
set STEAMCMD_PATH="$steamcmdDir"
|
||||
set STEAM_USER=$SteamUser
|
||||
set STEAM_PASS=$SteamPass
|
||||
set INSTALL_DIR="$installDir"
|
||||
set APP_ID=$appId
|
||||
|
||||
cd /d %STEAMCMD_PATH%
|
||||
steamcmd.exe +login %STEAM_USER% %STEAM_PASS% +force_install_dir %INSTALL_DIR% +app_update %APP_ID% validate +quit
|
||||
|
||||
echo 服务器已更新完成!
|
||||
pause
|
||||
"@
|
||||
|
||||
$batContent | Out-File -FilePath $updateBatPath -Encoding Default
|
||||
Write-Host "已创建更新脚本: $updateBatPath" -ForegroundColor Cyan
|
||||
Write-Host "双击此文件可一键更新服务器" -ForegroundColor Green
|
||||
|
||||
Write-Host "`n所有操作已完成!" -ForegroundColor Green
|
||||
18
双击安装.bat
Normal file
18
双击安装.bat
Normal file
@@ -0,0 +1,18 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
:: 设置账号密码(实际使用时可替换为真实凭证)
|
||||
set "STEAM_USER=your_username"
|
||||
set "STEAM_PASS=your_password"
|
||||
|
||||
:: 调用PowerShell脚本并传递参数
|
||||
powershell.exe -ExecutionPolicy Bypass -File "%~dp0install.ps1" ^
|
||||
-SteamUser "!STEAM_USER!" ^
|
||||
-SteamPass "!STEAM_PASS!"
|
||||
|
||||
:: 安全擦除内存中的凭证
|
||||
set "STEAM_USER="
|
||||
set "STEAM_PASS="
|
||||
endlocal
|
||||
pause
|
||||
exit
|
||||
Reference in New Issue
Block a user