![Server 2008 上的 PowerShell 和 Windows Server Backup](https://linux22.com/image/561235/Server%202008%20%E4%B8%8A%E7%9A%84%20PowerShell%20%E5%92%8C%20Windows%20Server%20Backup.png)
我最近在运行 Windows Server 2008 R2 的服务器上编写了一个 PowerShell 脚本,该脚本创建了一个日期目录,然后启动 Windows Server Backup 进行系统状态备份。该脚本每晚运行一次,效果很好。
因为想在另一台服务器上使用它,所以我复制了脚本,并从 powershell 命令行添加了 WSB 管理单元后,却发现它无法运行。
这两台服务器之间的区别在于,这台新服务器运行的是 Server 2008(而不是 R2)。有没有人使用 powershell 脚本在 Windows Server 2008 上使用 Windows Server Backup 运行备份?我想知道命令行是否不同。到目前为止,我找到的所有文档都是基于 R2 的。
这是我在 R2 服务器上使用的脚本:
$date = Get-Date -format MMddyyyyHHmm
$policy = New-WBPolicy
$volume = Get-WBVolume -AllVolumes
$backupLocation = New-WBBackupTarget -NetworkPath "\\NAS01\backup\RDP01\$date"
New-Item "\\NAS01\backup\RDP01\$date" -type directory
Add-WBVolume -Policy $policy -Volume $volume
Add-WBSystemState $policy
Add-WBBareMetalRecovery $policy
Add-WBBackupTarget -Policy $policy -Target $backupLocation
Set-WBVssBackupOptions -Policy $policy -VssCopyBackup
Start-WBBackup -Policy $policy
有人知道我是否应该在 Server 2008 上做一些不同的事情来使其工作,或者除了在 R2 上之外,从 powershell 运行备份是否不受支持?
答案1
我对这些 cmdlet 并不十分熟悉,但问题可能是您的 Win 2008 机器正在运行 Powershell v1.0,而您的 Win 2008 R2 机器正在运行 v2.0。v1.0 是 Win 2008 中的可选组件,您可能需要安装 v2.0 才能使这些 cmdlet 正常工作。您可以通过打开 powershell 并输入 来确认每个机器上安装的版本$host
。
从http://en.wikipedia.org/wiki/Windows_PowerShell:
1.0 版于 2006 年发布,适用于 Windows XP SP2/SP3、Windows Server 2003 和 Windows Vista。对于 Windows Server 2008,它作为一项可选功能包含在内。
2.0 版本与 Windows 7 和 Windows Server 2008 R2 集成,并针对带有 Service Pack 3 的 Windows XP、带有 Service Pack 2 的 Windows Server 2003 和带有 Service Pack 1 的 Windows Vista 发布。
答案2
您可能需要在 2008 服务器上升级到 Powershell v2。有关 Windows Mgmt Framework v2 的信息是这里
如果您收到特定错误,请告知我们。
答案3
我认为这可能与 2008 和 2008 R2 上的 Windows Server Backup 的 cmdlet 不同有关。执行了“get-command -module windows.serverbackup”并在 2008 服务器上获取了以下 cmdlet:
Add-WBBackupTarget
Add-WBVolume
Get-WBBackupTarget
Get-WBDisk
Get-WBPolicy
Get-WBSchedule
Get-WBSummary
Get-WBVolume
New-WBBackupTarget
New-WBPolicy
Remove-WBBackupTarget
Remove-WBPolicy
Remove-WBVolume
Set-WBPolicy
Set-WBSchedule
我在 R2 服务器上运行了相同的命令并得到以下结果:
Add-WBBackupTarget
Add-WBBareMetalRecovery
Add-WBFileSpec
Add-WBSystemState
Add-WBVolume
Get-WBBackupSet
Get-WBBackupTarget
Get-WBBareMetalRecovery
Get-WBDisk
Get-WBFileSpec
Get-WBJob
Get-WBPolicy
Get-WBSchedule
Get-WBSummary
Get-WBSystemState
Get-WBVolume
Get-WBVssBackupOptions
New-WBBackupTarget
New-WBFileSpec
New-WBPolicy
Remove-WBBackupTarget
Remove-WBBareMetalRecovery
Remove-WBFileSpec
Remove-WBPolicy
Remove-WBSystemState
Remove-WBVolume
Set-WBPolicy
Set-WBSchedule
Set-WBVssBackupOptions
Start-WBBackup
请注意,R2 cmdlet 的数量大于普通 2008 服务器的数量。我认为这就是问题所在。最突出的命令是 2008 服务器缺少“Start-WBBackup”命令,这是执行备份所需的命令。很有趣。看来我要回到 WBadmin 工具,在我的 2008 服务器上批量运行这些内容,并将 powershell 保存到 2008 R2