0
美好的一天。我正在使用名爲PowerCLI 5.1的PowerShell變體。我使用它來更新與VMware虛擬中心數據庫的多個項目多列的SharePoint 2013列表。我使用的代碼是這樣的:使用powershell更新Sharepoint列表
Add-PSSnapin Microsoft.SharePoint.PowerShell
$viservers = "MyServer"
ForEach ($singleViserver in $viservers)
{
Connect-VIServer $singleViserver -User domainuser -Password accountpassword
$HostReport = @()
Get-Datacenter -Name NYDC | Get-VM |Get-View| %{
$Report = "" | select Name, VMos, IP, NumCPU, MemoryMB, FQDN, Status, Admin1, Admin2
$Report.Name =$_.Name
$Report.VMos =$_.Summary.Config.GuestFullName
$Report.IP =$_.Guest.IPAddress
$Report.NumCPU =$_.Config.Hardware.NumCPU
$Report.MemoryMB =$_.Config.Hardware.MemoryMB
$Report.FQDN =$_.Guest.HostName
$Report.Admin1 = (Get-VIObjectByVIView $_).CustomFields["Admin1"]
$Report.Admin2 = (Get-VIObjectByVIView $_).CustomFields["Admin2"]
$HostReport += $Report
}
}
$web = Get-SPWeb http://mysharepointsite
$list = $web.Lists["MYVMList"]
foreach ($item in $list.Items)
{
$item["Name"] = $Report.Name;
$item["Guest_OS"] = $Report.VMos;
$item["Memory_Size"] = $Report.MemoryMB;
$item["CPU_Count"] = $Report.NumCPU;
$item["IP_Address"] = $Report.IP;
$item["FQDN"] = $Report.FQDN;
$item["Admin1"] = $Report.Admin1;
$item["Admin2"] = $Report.Admin2;
$item.Update();
}
但是,它似乎填充我的整個列表只有第一個虛擬機屬性,並忽略所有其他虛擬機。現在我知道,我的代碼的第一部分的作品,因爲我可以正確地更新所有我的虛擬機和它們的屬性的Excel電子表格。
我不知道我做錯了什麼與更新與這些屬性的SharePoint列表。任何幫助將不勝感激,謝謝。