我想使用用户信息列表中的信息填充sharepoint 2013基础中的列表。用户信息列表位于/_catalogs/users/simple.aspx,包含用户的所有条目。
是否可以使用powershell或任何其他方法执行此操作,而不是使用c#,vb等...
答案 0 :(得分:1)
以下示例演示如何使用JSOM
填充用户信息列表中的信息填充联系人列表(function(){
var context = SP.ClientContext.get_current();
var userInfoList = context.get_site().get_rootWeb().get_siteUserInfoList(); //source list
var userItems = userInfoList.getItems(SP.CamlQuery.createAllItemsQuery());
var contactsList = context.get_site().get_rootWeb().get_lists().getByTitle('Contacts'); //target list
context.load(contactsList);
context.load(userItems);
context.executeQueryAsync(
function(){
for(var i = 0; i < userItems.get_count();i++){
var item = userItems.getItemAtIndex(i);
//mapping properties from user item to contact item
var contactEntry = {
'Title': item.get_item('Title'),
'FullName': item.get_item('Name'),
'Email': item.get_item('EMail'),
'WorkPhone': item.get_item('MobilePhone'),
'WebPage': item.get_item('WebSite')
};
//prepare contact item
createContact(contactsList,contactEntry);
}
context.executeQueryAsync(
function(){
console.log('Completed');
},
function(sender,args){
console.log(args.get_message());
});
},
function(sender,args){
console.log(args.get_message());
});
function createContact(list, itemProps)
{
var itemCreateInfo = new SP.ListItemCreationInformation();
var listItem = list.addItem(itemCreateInfo);
for(var propName in itemProps) {
listItem.set_item(propName, itemProps[propName])
}
listItem.update();
}
})();
如果需要,可以将脚本转换为PowerShell脚本。