2017-09-07 3 views
0

上の.jpgを更新することができますどのように私は、私たちのSharePoint上で一日一回の画像を更新し、古いスクリプトを得ました。 スクリプトがSharePointの365へのアップグレード前にやった、、ウェブカメラで写真を作ることで、ローカルに写真を保存し、それは、SharePointに写真をアップロードします。それはうまく動作します。は、私はSharePointの

しかし、我々は、SharePoint 365にアップグレードするので、最後のステップはもう動作しません。

のSharePointにアップロードするために古いコードです。

# Upload to Sharepoint 
[System.Management.Automation.PSCredential] $SharepointCredentials = New-Object System.Management.Automation.PSCredential ($SharepointUser, ($SharepointPassword | ConvertTo-SecureString -AsPlainText -Force)) 
Invoke-WebRequest -Uri $SharepointUrl -Method Put -InFile "$Path\webcam.jpg" -ContentType 'image/jpg' -Credential $SharepointCredentials -UseBasicParsing | Out-Null 

は、私はこの問題はもはやPut doens't仕事Invoke-WebRequestにしていることだと思います。ファイルを変更または更新する新しい方法があるかどうか知っていますか?

答えて

0

この記事では、PowerShellの経由CSOMを使用してOffice 365のSharePointライブラリにファイルをアップロードする方法について説明します。うまくいけば、それはあなたを正しい道に導きます。 Invoke-WebRequestコマンドレットの

https://blogs.technet.microsoft.com/fromthefield/2014/02/19/office-365-powershell-script-to-upload-files-to-a-document-library-using-csom/

+0

タンク。 「Invoke-WebRequest」が「Put」で動作しない場合は、ご存知ですか? – Till

+0

-InFileを指定した 'Invoke-RestMethod'がそのトリックを行うかもしれません。私はプットについてはわからないが、ポストを使ってみるだろう。 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-restmethod?view=powershell-5.1 –

0

Credentials parameter SharePoint Onlineのにクレームベースの認証をサポートしていない、そのような基本的な、ダイジェスト、NTLM、Kerberos認証などのみの認証方式をサポートしています。

function Connect-SPO ([string] $Username, [string]$Password, [string]$Url) { 

    $Context = New-Object Microsoft.SharePoint.Client.ClientContext($Url) 
    $Context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $(ConvertTo-SecureString -AsPlainText $Password -Force)) 
    $Context.ExecuteQuery() 

    $AuthenticationCookie = $Context.Credentials.GetAuthenticationCookie($Url, $true) 
    $WebSession = New-Object Microsoft.PowerShell.Commands.WebRequestSession 
    $WebSession.Credentials = $Context.Credentials 
    $WebSession.Cookies.SetCookies($Url, $AuthenticationCookie) 

    $FormsDigest = $Context.GetFormDigestDirect() 
    $WebSession.Headers['X-RequestDigest'] = $FormsDigest.DigestValue 

    $Context.Dispose() 
    return $WebSession 
} 

次に、ファイルをアップロードするためのスクリプトは次のように変更することができます:

#Connect 
$Session = Connect-SPO -Username $Username -Password $Password -Url $WebUrl 
# Upload file 
$targetFileUrl = "$WebUrl/documents/$($FileInfo.Name)" #set target file url 
Invoke-WebRequest -Uri $targetFileUrl -Method Put -WebSession $Session -InFile $filePath 
を実行するには

は、以下に示すようSharePointOnlineCredentials classを利用することができ、ユーザーの資格情報を使用してSharePoint Onlineの中で要求を認証し応答のための

SPOUploadFile.ps1

関連する問題