I have implemented the code located at this link to export and import a list to a cmp file using powershell and the SPDeployment functions. While trying to better understand this code I came to the realization that I can use the same code (with a few adjustments) to export a single item by giving it the item unique ID, the type file (or list item), and the folder server relative url. My question is how would I modify the import-list to import this item in a specific folder/list. I read this article but it is in another language. I'm not sure how to convert it to powershell. I also, wasn't sure if the register-objectevent was the proper method but I also didn't want to do an "inline" function.

At first I thought I simply needed to give it a import object but there is no API to do so. I suspect I need to add this line:

Register-ObjectEvent -InputObject $import -EventName started `
-SourceIdentifier $import.started -Action { importStart   }

And the following function:

Function importStart([object]$sender, [object]$args)#[Microsoft.SharePoint.Deployment.SPDeploymentEventArgs]$args) 
   write-host "successfully entered started2"
   $web = #get list web somehow
   $list = #get list somehow

   $rootObjects = $args.RootObjects; 
   foreach ($io in $rootObjects) 
      if ($io.Type -eq [Microsoft.Sharepoint.Deployment.SPDeploymentObjectType]::File -or 
        $io.Type -eq [Microsoft.Sharepoint.Deployment.SPDeploymentObjectType]::ListItem)               
         $io.TargetParentUrl = $list.RootFolder.ServerRelativeUrl;    
      if ($io.Type -eq [Microsoft.Sharepoint.Deployment.SPDeploymentObjectType]::List)                   
         $io.TargetParentUrl = $web.Url;                              

But there are no event arguments passed to the -action command block or the function. Am I missing something here? Please help!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.