2017-03-08 20 views
0

PowerShellを使用してSharePointからExcelワークブックを開こうとしています。私はSharePointスナップインを読み込んでいません - 私はそれを持っていません。PowerShellを使用してSharePointからExcel文書を開く

PowerShellがブックを起動しようとすると、SharePointは資格情報を要求します。問題は、スクリプトをスケジュールしようとしていることです。スクリプトにSSO風の経験を持たせたいと考えています。ここで

はMWEです:

$Excel = New-Object -ComObject Excel.Application 
$Workbook = $Excel.Workbooks.Open(http://site/file.xlsx) 
$Worksheet = $Workbook.Sheets.Item($WorksheetName) 
$Excel.Visible = $false 

# some Excel manipulation 

$Workbook.Close($false) 
$Excel.Quit() 
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel) | Out-Null 
Remove-Variable Excel 
+1

これらのアクションでは、REST APIを使用する必要があります。ドキュメントはhttps://msdn.microsoft.com/en-us/library/ff798339.aspxにあり、ファイルのダウンロードをサポートする必要があります(SP 2016とSP Onlineを使用しているので、私のコード例は役に立ちません) – bluuf

答えて

3

まず、以下の例は、スクリプト/ PowerShellセッションを実行しているユーザーのデフォルトのcredsをを使用しています

など、操作し、その後、オープン、ローカルのSharePointファイルをダウンロード。

$fromfile = "http://site/file.xlsx" 
$tofile = "c:\somedirectory\file.xlsx" 

$webclient = New-Object System.Net.WebClient 
$webclient.UseDefaultCredentials = $true 
$webclient.DownloadFile($fromfile, $tofile) 

$Excel = New-Object -ComObject Excel.Application 
$Workbook = $Excel.Workbooks.Open($tofile) 
$Worksheet = $Workbook.Sheets.Item($WorksheetName) 
$Excel.Visible = $false 

# some Excel manipulation 

$Workbook.Close($false) 
$Excel.Quit() 
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel) | Out-Null 
Remove-Variable Excel 
関連する問題