标签: sharepoint-2010

在PowerShell中有条件地指定开关参数

我正在编写一个PowerShell脚本,该脚本使用SharePoint 2010 New-SPWeb cmdlet创建由Xml文件定义的站点:

<?xml version="1.0" encoding="utf-8" ?>
<siteStructure>
  <site>
    <url>Corporate</url>
    <name>Corporate</name>
    <language>1033</language>
    <addToQuickLaunch>0</addToQuickLaunch>
    <addToTopNav>0</addToTopNav>
    <useParentTopNav>1</useParentTopNav>
  </site>
</siteStructure>
Run Code Online (Sandbox Code Playgroud)

New-SPWeb cmdlet有三个开关参数:

  1. AddToQuickLaunch
  2. AddToTopNav
  3. UseParentTopNav

当Xml中的匹配值为0或$ true时,我无法确定如何仅设置switch参数.

在调用New-SPWeb来设置三个开关参数时,我几乎需要某种内联if语法.

$siteStructureData = [xml](Get-Content .\Data-SiteStructure.xml)

# find the template to use
$webTemplate = Get-SPWebTemplate | Where {$_.Title -like $templateName } 

if ($webTemplate)
{
    # iterate through and create sites
    foreach ($siteToCreate in $siteStructureData.siteStructure.site)
    {   
        "Creating site $webtitle at $URL/$webUrl"

        # http://technet.microsoft.com/en-us/library/ff607579.aspx
        New-SPWeb `
            -Url "$URL/$siteToCreate.url" `
            -Name $siteToCreate.name `
            -Template $webTemplate `
            -Language $siteToCreate.language 
            # …
Run Code Online (Sandbox Code Playgroud)

powershell sharepoint-2010

15
推荐指数
2
解决办法
4557
查看次数

SharePoint 2010 - 客户端对象模型 - 向ListItem添加附件

我有一个SharePoint列表,我正在使用客户端对象模型添加新的ListItems.添加ListItems不是问题,效果很好.

现在我想添加附件.

我以下列方式使用SaveBinaryDirect:

File.SaveBinaryDirect(clientCtx, url.AbsolutePath + "/Attachments/31/" + fileName, inputStream, true);
Run Code Online (Sandbox Code Playgroud)

只要我尝试添加附件的项目已经具有通过SharePoint网站添加的附件而不使用客户端对象模型,它就没有任何问题.

当我尝试将附件添加到没有任何附件的项目时,我会收到以下错误(两者都发生但没有相同的文件 - 但这两个消息始终显示):

The remote server returned an error: (409) Conflict
The remote server returned an error: (404) Not Found

我想我可能需要先为这个项目创建附件文件夹.当我尝试以下代码时:

clientCtx.Load(ticketList.RootFolder.Folders);
clientCtx.ExecuteQuery();
clientCtx.Load(ticketList.RootFolder.Folders[1]);             // 1 -> Attachment folder
clientCtx.Load(ticketList.RootFolder.Folders[1].Folders);
clientCtx.ExecuteQuery();
Folder folder = ticketList.RootFolder.Folders[1].Folders.Add("33");
clientCtx.ExecuteQuery();
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

Cannot create folder "Lists/Ticket System/Attachment/33"

我拥有SharePoint站点/列表的完全管理员权限.

我有什么想法可能做错了吗?

谢谢,Thorben

c# client attachment listitem sharepoint-2010

14
推荐指数
3
解决办法
3万
查看次数

使用PowerShell将用户添加到SharePoint 2010组

我们需要将多个用户添加到多个SharePoint组.

有没有人有一个如何使用power shell将用户添加到sharepoint组的示例.

powershell sharepoint sharepoint-2010

14
推荐指数
2
解决办法
3万
查看次数

如何获取sharepoint库中文件的绝对URL

我正在使用SharePoint 2010.我在该库中有一个文档库ID和文档ID.我没有web文件库所在的站点.现在我必须得到文档的完整URL在运行时.我怎么能得到它.我尝试了以下内容.

string filepath = currentList.DefaultViewUrl + "/" + sListItem.Url;
Run Code Online (Sandbox Code Playgroud)

请回答这个问题.

url sharepoint document-library sharepoint-2010

14
推荐指数
2
解决办法
7万
查看次数

超过Sharepoint 2010中的列表视图阈值5000项

我将我的sp 2007升级到sp 2010,我有一个表单库有超过5000个项目.表单库过滤器项的默认视图,仅向用户显示10-20项.

升级后sp2010所有用户在转到表单库期待网站集管理员时都会遇到以下错误.

我认为这是一个许可问题,但我找不到任何解决这个问题的来源,有什么想法吗?

无法显示此视图,因为它超出了管理员强制执行的列表视图阈值(5000项).

要查看项目,请尝试选择其他视图或创建新视图.如果您没有足够的权限为此列表创建视图,请要求管理员修改视图,使其符合列表视图阈值.

sharepoint-2010

14
推荐指数
2
解决办法
11万
查看次数

如何将SharePoint 2010项目从沙盒解决方案更改为场解决方案

我在Visual Studio 2010中创建了一个新的sharepoint项目,并且错误地将它作为沙盒解决方案,在完成我的开发之后它不会构建,因为我正在向控制模板添加项目,并且它说我需要将项目作为场解决方案,所以如何更改eproject类型?

sharepoint visual-studio-2010 sharepoint-2010

13
推荐指数
1
解决办法
1万
查看次数

覆盖Chrome类型Webpart

我在Sharepoint 2010中创建了一个Webpart,我需要将"Chrome Type"属性设置为"None"值.

我一直在寻找各种方法来强制组合框为"无",或覆盖在C#类的"Chrome类型",但我没有发现任何方式做他们.设置此属性的最佳方法是什么?

覆盖Chrometype

sharepoint web-parts sharepoint-2010

13
推荐指数
2
解决办法
2万
查看次数

如何判断SPListItem是文档还是文件夹

我有一个循环遍历文档库,如下例所示.

foreach (SPListItem item in DocumentLibrary)
{
}
Run Code Online (Sandbox Code Playgroud)

如何判断SPListItem文件是文件还是文件夹?

sharepoint web-parts sharepoint-2010

13
推荐指数
2
解决办法
2万
查看次数

jQuery UI API无法正确加载LABjs

我最近改用了LABjs在SharePoint Webparts(2010)中加载脚本.这样做的主要原因是,如果将多个Web部件添加到同一页面,则不要多次向页面加载相同的库(如jqueryjquery.ui).这样,他们每个人都可以单独指定其依赖关系,而无需警告已经或可能添加了哪些其他Web部件.

两者LABjs和另一个包含脚本链的文件都是通过<script>Webpart标记底部的标记加载的.

10次​​中有9次,Javascript执行没有任何问题.不过,每隔一段时间,就会抛出一个异常,说明TypeError: $(...).button is not a function.

即使页面上只有一个Webpart并且似乎与浏览器无关(在页面强制使用FireFox 38,Chrome 43和IE 11/IE 8中测试),也会发生这种情况.

链看起来像这样(为清晰起见编辑):

$LAB.setOptions({Debug:true})
.script("../js/jquery-1.11.3.min.js").wait()
.script("../js/jquery-migrate-1.2.1.min.js").wait()
.script("../js/jquery-ui.min.js").wait()
.script("../js/core.js")
.wait(function(){ 
    jQuery(function() {
        init();     // The jQuery UI .button() call
    });
})
.script("../js/jquery.multiselect.min.js").wait()
.script("../js/jquery.multiselect.filter.min.js")
.script("../js/rte/jquery.rte.js").wait()
.script("../js/rte/jquery.rte.tb.js")
.script("../js/rte/jquery.ocupload-1.1.4.js")
.wait(function () {
    jQuery(function() {
        // Some DOM-dependant code lives here
    });
});
Run Code Online (Sandbox Code Playgroud)

这是调试器输出的内容(为清晰起见,也进行了编辑):

start script load (ordered async): ../js/jquery-1.11.3.min.js
start script load (ordered async): ../js/jquery-migrate-1.2.1.min.js
start script load (ordered async): …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-ui sharepoint-2010 labjs

13
推荐指数
1
解决办法
652
查看次数

设置项目权限

文件夹工作:

我现在知道如何设置库中文件夹的权限:

public void ChangeItemPermissions()
{
    _SharePoint.ClientContext _ClientContext = new _SharePoint.ClientContext("https://sharepoint.oshirowanen.com/sites/oshirodev/");
    _ClientContext.Credentials = new NetworkCredential("user", "pass", "oshirowanen.com");

    _SharePoint.Principal user = _ClientContext.Web.EnsureUser(@"oshirowanen\tom");

    var _List = _ClientContext.Web.Lists.GetByTitle("Library1");
    var _Item = _List.LoadItemByUrl("/sites/oshirodev/Library1/Folder1");
    var roleDefinition = _ClientContext.Site.RootWeb.RoleDefinitions.GetByType(_SharePoint.RoleType.Reader);
    var roleBindings = new _SharePoint.RoleDefinitionBindingCollection(_ClientContext) { roleDefinition };
    _Item.BreakRoleInheritance(false,true);
    _Item.RoleAssignments.Add(user, roleBindings);

    _ClientContext.ExecuteQuery();
}
Run Code Online (Sandbox Code Playgroud)

文件尝试:

我已经尝试将文件名添加到此行:

var _Item = _List.LoadItemByUrl("/sites/oshirodev/Library1/Folder1/File1.docx");

注意(/File1.docx)添加到上面一行的末尾.


收到错误:

但这只是一个错误:

System.NullReferenceException was unhandled
  HResult=-2147467261
  Message=Object reference not set to an instance of an object.
  Source=ItemPermissions
  StackTrace:
       at ItemPermissions.Form1.ChangeItemPermissions() in c:\Users\Oshirowanen\Documents\Visual Studio 2013\Projects\ItemPermissions\ItemPermissions\Form1.cs:line 46 …
Run Code Online (Sandbox Code Playgroud)

.net c# sharepoint sharepoint-2010 csom

13
推荐指数
1
解决办法
909
查看次数