web-dev-qa-db-ja.com

IIS Powershellからの複数のサーバーへのバックアップ

誰かがPowerShellスクリプトからリモートで複数のサーバー上のIISのバックアップを手伝ってくれますか。PowerShellコマンドからIISのバックアップを取ることができます。

backup-webconfiguration -name IIS_backup。

また、バックアップを取るバッチスクリプトがありますが、これは1つのサーバーでのみ機能します。ローカルにログインして、これをバッチジョブとして実行する必要があります。

@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.

現在、私はこれら2つのスクリプトに取り組んでいます。可能であれば、PowerShellまたはバッチファイルを使用して、複数のサーバーでIISをリモートでバックアップするのを手伝ってください。

1
Abhishek

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変数にデータを入力できます。たとえば、テキストファイルまたはfromとADクエリから。

1