0

良い一日。PowerCLI 5.1 と呼ばれる PowerShell のバリアントを使用しています。これを使用して、複数列の 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();
 }

ただし、リスト全体に最初の VM プロパティのみが入力されているようで、他のすべての VM は無視されます。すべての VM とそのプロパティで Excel スプレッドシートを適切に更新できるため、コードの最初の部分が機能することがわかりました。

これらのプロパティを使用して SharePoint リストを更新したときに、何が間違っていたのかわかりません。どんな助けでも感謝します、ありがとう。

4

1 に答える 1