SharePoint列表未通过PowerShell更新
我当前正在尝试使用lists.asmx更新SharePoint列表。不幸的是,我不能使用CSOM,因为这将作为批处理文件传递给非技术人员。在向列表中添加新项目时,我可以使用它,但如果我修改代码以更新列表中的项目,则所有项目都不会更新 代码如下:SharePoint列表未通过PowerShell更新,powershell,sharepoint,sharepoint-2010,sharepoint-2007,powershell-ise,Powershell,Sharepoint,Sharepoint 2010,Sharepoint 2007,Powershell Ise,我当前正在尝试使用lists.asmx更新SharePoint列表。不幸的是,我不能使用CSOM,因为这将作为批处理文件传递给非技术人员。在向列表中添加新项目时,我可以使用它,但如果我修改代码以更新列表中的项目,则所有项目都不会更新 代码如下: # Connect to web service $uri = "http://teams.COMPANY.intranet/_vti_bin/lists.asmx" $service = New-WebServiceProxy -uri $uri -N
# Connect to web service
$uri = "http://teams.COMPANY.intranet/_vti_bin/lists.asmx"
$service = New-WebServiceProxy -uri $uri -Namespace SpWs -UseDefaultCredential # -credential $credential
$service.url = "http://home.COMPANY.intranet/sites/Sharepoint/_vti_bin/lists.asmx"
$xmlDoc = new-object System.Xml.XmlDocument
$listName = "MapDetails"
$viewFields = $xmlDoc.CreateElement("ViewFields")
$query = $xmlDoc.CreateElement("Query")
# Get name attribute values (guids) for list and view
$ndlistview = $service.getlistandview($listname, "")
$strlistid = $ndlistview.childnodes.item(0).name
$strviewid = $ndlistview.childnodes.item(1).name
# Create an xmldocument object and construct a batch element and its attributes.
$xmldoc = new-object system.xml.xmldocument
# note that an empty viewname parameter causes the method to use the default view
$batchelement = $xmldoc.createelement("Batch")
$batchelement.setattribute("onerror", "continue")
$batchelement.setattribute("listversion", "1")
$batchelement.setattribute("viewname", $strviewid)
$id = 1
$xml = ""
# The row to be modified
$rowId = 0
$Files=GET-CHILDITEM '\\Client.COMPANY.com\Homeshare\HOME0029\USER\My Documents\WebTrends Global Adoption\Output\*.txt' | Sort-Object
Foreach ($File in $Files) {
$fullName = $File.BaseName
$content = Get-Content $File
$xml = "<Method ID='$id' Cmd='Update'>" +
"<Field Name='ID'>$rowId</Field>" +
"<Field Name='Title'>$fullName</Field>" +
"<Field Name='LocationDetails'><![CDATA[$content]]></Field></Method>"
# Set the xml content
$batchelement.innerxml = $xml
$ndreturn = $null
$ndreturn = $service.updatelistitems($listname, $batchelement)
$rowId++
}
#连接到web服务
$uri=”http://teams.COMPANY.intranet/_vti_bin/lists.asmx"
$service=newWebServiceProxy-uri$uri-Namespace SpWs-UseDefaultCredential#-credential$credential
$service.url=”http://home.COMPANY.intranet/sites/Sharepoint/_vti_bin/lists.asmx"
$xmlDoc=new object System.Xml.XmlDocument
$listName=“MapDetails”
$viewFields=$xmlDoc.CreateElement(“viewFields”)
$query=$xmlDoc.CreateElement(“查询”)
#获取列表和视图的名称属性值(GUID)
$ndlistview=$service.getlistandview($listname,“”)
$strlistid=$ndlistview.childnodes.item(0).name
$strviewid=$ndlistview.childnodes.item(1).name
#创建一个xmldocument对象并构造一个批处理元素及其属性。
$xmldoc=new object system.xml.xmldocument
#请注意,空viewname参数会导致该方法使用默认视图
$batchelement=$xmldoc.createelement(“批处理”)
$batchelement.setattribute(“onerror”、“continue”)
$batchelement.setattribute(“listversion”、“1”)
$batchelement.setattribute(“视图名称”、$strviewid)
$id=1
$xml=“”
#要修改的行
$rowId=0
$Files=GET-CHILDITEM'\\Client.COMPANY.com\Homeshare\HOME0029\USER\My Documents\WebTrends Global Adoption\Output\*.txt'|排序对象
Foreach($Files中的文件){
$fullName=$File.BaseName
$content=获取内容$File
$xml=“”+
“$rowId”+
“$fullName”+
""
#设置xml内容
$batchelement.innerxml=$xml
$ndreturn=$null
$ndreturn=$service.updatelistitems($listname,$batchelement)
$rowId++
}
我在网上搜寻了一个解决方案,但似乎找不到有同样问题的人。也许我只是太傻了。如果这个问题以前已经发布过,请随时为我指出正确的方向
谢谢 我确信没有
***Update***
cmd…我的错,实际的代码是“Update”,我把它们放在它周围以突出显示该区域,忘记了它在代码块中不起作用。