Windows server 2022 常见 备份事项

发布时间 2023-06-03 17:17:06作者: suv789

以下是 Windows Server 2022 的 DNS 备份批处理脚本示例:

Copy Code
@echo off

setlocal

rem 定义备份路径
set backupPath=c:\dns_backup\

rem 获取当前日期时间作为备份文件名
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do set "datestamp=%%a-%%b-%%c"
for /f "tokens=1-2 delims=: " %%a in ('time /t') do set "timestamp=%%a%%b"
set "backupFileName=dns_backup-%datestamp%-%timestamp%.dns"

rem 导出 DNS 区域配置
dnscmd /zoneexport mydomain.com "%backupPath%%backupFileName%"

rem 校验备份文件是否存在
if exist "%backupPath%%backupFileName%" (
    echo DNS 备份成功:%backupFileName%
) else (
    echo DNS 备份失败!%backupFileName% 文件不存在。
)

endlocal

pause

在这个脚本中,我们首先设置了备份路径和备份文件名,然后使用 dnscmd 命令导出 DNS 区域配置并存储到备份路径中。最后,我们检查备份文件是否存在,如果存在则输出“DNS 备份成功”,否则输出“DNS 备份失败”。我们可以将此脚本保存为 .bat 文件并定期执行以实现自动化 DNS 备份。请注意,在执行脚本之前,请确保您已经安装了 DNS 服务并在管理员权限下运行此脚本。

 

以下是 Windows Server 2022 的组策略备份批处理脚本示例:

Copy Code
@echo off

setlocal

rem 定义备份路径
set backupPath=C:\GroupPolicyBackup\

rem 获取当前日期时间作为备份文件名
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do set "datestamp=%%a-%%b-%%c"
for /f "tokens=1-2 delims=: " %%a in ('time /t') do set "timestamp=%%a%%b"
set "backupFileName=GroupPolicyBackup_%datestamp%_%timestamp%.zip"

rem 备份组策略
powershell -command "& {Get-GPO -All | Backup-GPO -Path '%backupPath%'}"

rem 压缩备份文件
powershell -command "& {Compress-Archive '%backupPath%' '%backupPath%%backupFileName%'}"

rem 校验备份文件是否存在
if exist "%backupPath%%backupFileName%" (
    echo 组策略备份成功:%backupFileName%
) else (
    echo 组策略备份失败!备份文件 %backupFileName% 不存在。
)

endlocal

pause

在这个脚本中,我们首先设置了备份路径和备份文件名,然后使用 PowerShell 命令 Get-GPOBackup-GPO 备份所有组策略,并将其保存到指定的备份路径中。接下来,我们使用 Compress-Archive 将备份文件压缩为 ZIP 文件并存储到备份路径中。最后,我们检查备份文件是否存在,如果存在则输出“组策略备份成功”,否则输出“组策略备份失败”。我们可以将此脚本保存为 .bat 文件并定期执行以实现自动化组策略备份。请注意,在执行脚本之前,请确保您已经安装了 PowerShell 并在管理员权限下运行此脚本。

 

以下是 Windows Server 2022 的注册表备份批处理脚本示例:

Copy Code
@echo off

setlocal

rem 定义备份路径
set backupPath=C:\RegistryBackup\

rem 获取当前日期时间作为备份文件名
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do set "datestamp=%%a-%%b-%%c"
for /f "tokens=1-2 delims=: " %%a in ('time /t') do set "timestamp=%%a%%b"
set "backupFileName=RegistryBackup_%datestamp%_%timestamp%.reg"

rem 备份注册表
reg export HKEY_LOCAL_MACHINE "%backupPath%%backupFileName%"

rem 校验备份文件是否存在
if exist "%backupPath%%backupFileName%" (
    echo 注册表备份成功:%backupFileName%
) else (
    echo 注册表备份失败!备份文件 %backupFileName% 不存在。
)

endlocal

pause

在这个脚本中,我们首先设置了备份路径和备份文件名,然后使用 reg export 命令备份整个 HKEY_LOCAL_MACHINE 分支的注册表,并将其保存到指定的备份路径中。最后,我们检查备份文件是否存在,如果存在则输出“注册表备份成功”,否则输出“注册表备份失败”。我们可以将此脚本保存为 .bat 文件并定期执行以实现自动化注册表备份。请注意,在执行脚本之前,请确保您已经以管理员身份运行此脚本。

 

以下是 Windows Server 2022 的驱动程序备份脚本示例:

Copy Code
@echo off

setlocal

rem 定义备份路径
set backupPath=C:\DriverBackup\

rem 获取当前日期时间作为备份文件名
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do set "datestamp=%%a-%%b-%%c"
for /f "tokens=1-2 delims=: " %%a in ('time /t') do set "timestamp=%%a%%b"
set "backupFileName=DriverBackup_%datestamp%_%timestamp%.zip"

rem 备份驱动程序
dism /online /export-driver /destination:"%backupPath%"

rem 压缩备份文件
powershell -command "& {Compress-Archive '%backupPath%' '%backupPath%%backupFileName%'}"

rem 校验备份文件是否存在
if exist "%backupPath%%backupFileName%" (
    echo 驱动程序备份成功:%backupFileName%
) else (
    echo 驱动程序备份失败!备份文件 %backupFileName% 不存在。
)

endlocal

pause

在这个脚本中,我们首先设置了备份路径和备份文件名,然后使用 dism 命令备份当前系统中所有驱动程序,并将其保存到指定的备份路径中。接下来,我们使用 Compress-Archive 将备份文件压缩为 ZIP 文件并存储到备份路径中。最后,我们检查备份文件是否存在,如果存在则输出“驱动程序备份成功”,否则输出“驱动程序备份失败”。我们可以将此脚本保存为 .bat 文件并定期执行以实现自动化驱动程序备份。请注意,在执行脚本之前,请确保您已经以管理员身份运行此脚本。