6

I have a powershell script that inserts webparts onto a page. The problem is that if I don't have the page checked out it will throw the following error:

Exception calling "AddWebPart" with "3" argument(s): "The file is not checked out. You must first check out this document before making changes." At C:\temp\AddWebParts.ps1:49 char:27

Is it possible to checkout a page using PowerShell?

Abe Miessler
  • 6,755
  • 23
  • 75
  • 121

4 Answers4

5

Found this after doing a little more research:

$Site = Get-SPWeb $siteurl
$Site.GetFile($myFile).CheckOut()

Hope this helps someone!

Abe Miessler
  • 6,755
  • 23
  • 75
  • 121
2

yes, if you have SPListItem, you may call

$file = $listItem.File;
$file.CheckOut();
Ashish Patel
  • 11,385
  • 3
  • 22
  • 29
2

I think the POSH script excerpts above (by Abe & Ashish) would work but also verify the CheckOut & Lock status property of the file prior to checking it out: $fooFile.CheckOutType - this returns enum type showing online, offline & none. To check the file property LockType - $fooFile.LockType which returns enum SPLockType (exclusive, shared & none).

Supriyo SB Chatterjee
  • 2,911
  • 14
  • 22
  • `The code will be similar to the following:
    1. $fooWeb = Get-SPWeb("FooWebURL");
    2. $fooFile = $fooWeb.GetFile("FooFile");
    3. if($fooFile.CheckOutType -eq "None" -And $fooFile.LockType -eq "None")
    4. { $fooFile.CheckOut()
    5.   Write-Host $fooFile.Name Checked out
      
    6. } else
    7. { Write-Host $fooFile.Name already Checked out or locked }
    8. $fooWeb.Dispose()`
    – Supriyo SB Chatterjee Dec 16 '11 at 21:21
0

Below script will help you to checkout file

$urlWeb = "http://mysite"
$urlWebWP =  "http://mysite/pages/default.aspx"

$web = Get-SPWeb 
$urlWeb $page =  $web.GetFile($urlWebWP)
$page.CheckOut()
Hojo
  • 167
  • 2
  • 9