【问题标题】:Powershell Sharepoint snapin when not on the sharepoint server不在共享点服务器上时的 Powershell Sharepoint 管理单元
【发布时间】:2015-03-21 23:41:38
【问题描述】:

我是 powershell 和 sharepoint 的新手,我需要编写脚本来自动将附件从 Outlook 删除和上传到 sharepoint。我已经轻松完成了提取附件的第一部分,但是根据我公司的规则,上传到 sharepoint 变得很困难。据我了解,要使用 sharepoint cmdlet,您需要添加 sharepoint 管理单元,但我无法这样做,因为我无权访问 sharepoint 服务器。无论如何,管理单元是否存在而不在服务器上,如果没有,我可以通过其他方式上传吗?

【问题讨论】:

  • 您可以使用 powershell 远程处理,从您的计算机到 SharePoint 服务器吗?例如Enter-PSSession -ComputerName
  • 我会尝试,但我没有太大希望。服务器被锁定了,他们可能不会让我。

标签: powershell sharepoint upload server cmdlets


【解决方案1】:

除非服务器是 SP 服务器,否则您无法添加 SP 管理单元。相反,使用 webservice/webclient 方法来上传文件。根据您的 SP 版本,这样的事情应该可以工作: http://blog.sharepoint-voodoo.net/?p=205

【讨论】:

  • 谢谢,这正是我所需要的
【解决方案2】:

接受的答案链接已损坏。

此脚本使用 PowerShell 使用纯 Web 服务调用将文件上传到 SharePoint 中的文档库,因此可以远程完成,这也意味着它应该与 O365 一起使用,尽管我没有尝试过。 这些变量在整个脚本中用于源文件、目标文件和身份验证。如果您的工作站与 SharePoint 位于同一域中,并且您的登录用户对 SharePoint 站点具有权限,则可以省略 $username、$password 和 $domain

$LocalPath = "C:\filename.docx"
$spDocLibPath = "http://site.contoso.com/sites/spteam/Shared Documents/"
$username = "someone"
$password = "somepassword"
$domain = "contoso"

$UploadFullPath = $spDocLibPath + $(split-path -leaf $LocalPath)
$WebClient = new-object System.Net.WebClient

if($username -eq "" -or $password -eq "" -or $password -eq "")
{ 
# Use Local Logged on User Credentials
$WebClient.Credentials = [System.Net.CredentialCache]::DefaultCredentials
}
else
{
# Alternate Login for specifying credentials
$WebClient.Credentials = new-object System.Net.NetworkCredential($username, $password, $domain)
}
$WebClient.UploadFile($UploadFullPath, "PUT", $LocalPath)

https://web.archive.org/web/20160404174527/http://blog.sharepoint-voodoo.net/?p=205

【讨论】:

  • 自 Powershell v3(2012 年发布)以来,您拥有内置的 Invoke-WebRequest,因此不需要使用 system.net.webclient。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
  • 2014-02-04
  • 2023-03-10
相关资源
最近更新 更多