导入 pssession 缺少对象方法,但使用 enter-pssession



我有一个小的Powershell脚本可以针对备份软件veeam远程运行,但生成的对象是不同的。

我以两种不同的方式连接:

  1. Import-PSSession
$cred = Get-Credential -m "Backupserver" -UserName XY
$session = new-PSSession -ComputerName Backupserver -Credential $cred
Invoke-Command -Session $session {add-pssnapin VeeamPSSnapin}
Import-PSSession -Session $session -module VeeamPSSnapin
# but I tried the following too
Import-PSSession -Session $session -DisableNameChecking -AllowClobber
  1. enter-pssession
$cred = Get-Credential -m "Backupserver" -UserName XY
enter-pssession -Credential $cred Backupserver
add-pssnapin VeeamPSSnapin

之后,我可以使用 Veeam Snapin,但需要满足以下条件:

Get-VBRJob -name "Backup Job BITS-SERVER" | Get-Member

给我不是结果对象的所有方法,也不是相同的对象类型。

通过输入,我得到了:

TypeName: Veeam.Backup.Core.CBackupJob
Name                          MemberType Definition
----                          ---------- ----------
CanRunByScheduler             Method     bool ISchedulableJob.CanRunByScheduler()
CheckDeleteAllowed            Method     void CheckDeleteAllowed()
...

通过导入,我得到了:

TypeName: Deserialized.Veeam.Backup.Core.CBackupJob
Name                         MemberType   Definition
----                         ----------   ----------
GetType                      Method       type GetType()
ToString                     Method       string ToString(), string ToString(string format, System.IFormatProvider formatProvider), string IFormattable.ToString(string format, ...
PSComputerName               NoteProperty string PSComputerName=cpa-backup.itservice.de
...

它应该是生成的对象的不同类型的(Deserialized.Veeam.Backup.Core.CBackupJob(。

但是我怎样才能远程连接(没有 enter-pssession 的非交互(以使用所有方法获取相同的对象???

提前感谢...

由于PowerShell在通过网络发送给你之前序列化这些对象,因此最好使用Connect-VBRServercmdlet

Connect-VBRServer -Server "Backupserver"
Get-VBRJob -Name "Backup Job BITS-SERVER" | Get-Member