Как скачать страницу ASPX SharePoint с сервера с помощью PowerShell

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/56664

  •  10-12-2019
  •  | 
  •  

Вопрос

Я сделал несколько изменений в страницах SP ASPX в среде.Я хочу переместить эти изменения в свой TFS.Обычно человек принимает страницы, используя дизайнер, сохранить его на рабочем столе и сохранить это к TFS.

Но есть ли PowerShell способ автоматизации этого?- означает, что просто сохранение желаемых страниц ASPX к файловой системе

Это было полезно?

Решение

I believe this is what you are looking for. You can export a specific file or object from the Export-SPWeb context, not the whole kitten kaboodle.

Export-SPWeb -identity "http://sharepoint" -ItemUrl "/default.aspx"  -Path "c:\default.aspx" 

Import-SPWeb -identity "http://sharepoint" -Path "C:\default.aspx" 

Другие советы

As I understood you need source of the file from content DB to check it into Source Control. Please, try the following code:

Add-PSSnapin Microsoft.Sharepoint.Powershell
$web = Get-SPWeb <path to web>
$file = $web.GetFile('<relative path to file>');
$bytes = $file.OpenBinary();
[System.IO.File]::WriteAllBytes('<path to file on your disk>', $bytes);

you should use WebRequest

$web = Get-SPWeb $webUrl
$path = "C:\file.aspx"

$request = [System.Net.WebRequest]::Create($url)
$request.UseDefaultCredentials = $true

#do web request - if exception -> item does not exist
try {
    $response = [System.Net.WebResponse]$request.GetResponse();
    if ($response.StatusCode -ne "OK") {
        write-host "Error: " $response.StatusCode;
        return;
    }

    # get contents
    $stream = [System.IO.Stream]$response.GetResponseStream();
    $streamReader = New-Object System.IO.StreamReader($stream);

    $data = $streamReader.ReadToEnd();

    $enc = [system.Text.Encoding]::UTF8
    $filebytes = $enc.GetBytes($data) 

    $stream.Close();    
    $streamReader.Close();

    # save file        
    [System.IO.File]::WriteAllBytes($Path, $filebytes)
}
catch [Exception]
{
    write-host "exception" $error[0]
}

$web.Dispose() 

EDIT: I was in good mood so I've completed also the code to download contents and save them to file system.

Another approach is possible :

$web = get-spweb http://server/yoursite
$file = $web.GetFile("$($web.Url)/pages/home.aspx")
[System.IO.File]::WriteAllBytes("$(gl)\$($file.Name)", $file.OpenBinary())

This will write in the current directory the content of the file "Pages/home.aspx"

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top