PowerShell을 사용하여 서버에서 SharePoint ASPX 페이지를 다운로드하는 방법
-
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"
제휴하지 않습니다 sharepoint.stackexchange