Добрый день. Я использую вариант PowerShell под названием PowerCLI 5.1. Я использую это для обновления многостолбцового списка SharePoint 2013 несколькими элементами из базы данных VMware Virtual Center. Код, который я использую, таков:
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 с помощью этих свойств. Любая помощь будет оценена, спасибо.