我有一个小型powershell脚本可以对备份软件veeam远程运行,但是结果对象是不同的。
我用两种不同的方式连接:
$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$cred = Get-Credential -m "Backupserver" -UserName XY
enter-pssession -Credential $cred Backupserver
add-pssnapin VeeamPSSnapin在此之后,我可以使用Veeam管理单元,但如下所示:
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)的不同类型。
但是,我如何远程连接(在没有输入-pssession的情况下是非互动式的)来获得所有方法的相同对象?
提前谢谢..。
发布于 2020-02-11 12:48:28
当PowerShell在通过网络发送给您之前序列化这些对象时,最好使用Connect-VBRServer cmdlet。
Connect-VBRServer -Server "Backupserver"
Get-VBRJob -Name "Backup Job BITS-SERVER" | Get-Memberhttps://stackoverflow.com/questions/59270800
复制相似问题