使用 Powershell 在多台服务器上进行 IIS 备份

使用 Powershell 在多台服务器上进行 IIS 备份

有人能帮我远程使用 powershell 脚本备份多台服务器上的 IIS 吗?我可以使用 powershell 命令备份 IIS。

备份网络配置-名称 IIS_backup。

另外,我有一个用于备份的批处理脚本,但只适用于一台服务器。我必须在本地登录并将其作为批处理作业运行。

@echo off
cls

pushd "%WinDir%\System32\inetsrv"

echo.| date | find /i "current">datetime1.tmp
echo.| time | find /i "current">datetime2.tmp

for /f "tokens=1,2,3,4,5,6" %%i in (datetime1.tmp) do (
  echo %%n>datetime1.tmp
)
for /f "tokens=1,2,3,4,5,6" %%i in (datetime2.tmp) do (
  echo %%m>datetime2.tmp
)
for /f "delims=/ tokens=1,2,3" %%i in (datetime1.tmp) do (
  set TMPDATETIME=%%k%%i%%j
)
for /f "delims=:. tokens=1,2,3,4" %%i in (datetime2.tmp) do (
  set TMPDATETIME=D%TMPDATETIME%T%%i%%j%%k%%l
)

appcmd add backups %TMPDATETIME%

del datetime1.tmp
del datetime2.tmp

set TMPDATETIME=

popd
echo.

目前我已经研究了这两个脚本。如果可能的话,请帮助我通过 powershell 或批处理文件在多台服务器上远程备份 IIS。

答案1

如果您的 Web 服务器上启用了 PSRemoting,您只需运行以下命令即可在多台计算机上运行备份:

invoke-command -ComputerName "webserver1","webserver2","webserver3" -Scriptblock {Import-Module WebAdministration; backup-webconfiguration -name IIS_backup}

您还可以将服务器列表与命令分开,如下所示:

$Computers = "webserver1","webserver2","webserver3"
invoke-command -ComputerName $Computers -Scriptblock {Import-Module WebAdministration; backup-webconfiguration -name IIS_backup}

然后,您可以通过多种方式填充 $Computers 变量。例如,从文本文件或 AD 查询。

相关内容