Powershell : Query Document Exclude Document Set

I have a Document Library contains multiple Document Sets, each of the Document Sets contains Files.
Document Library ----> Document Set ----> Files
My objective is to query all File Name only across Document Sets.
here are my code:
function Get-SPItem{
    $web = Get-SPWeb $webUrl
    $documentsLib = $web.Lists[$libraryName]
    Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
    $query = New-Object Microsoft.SharePoint.SPQuery
    #$viewFields = "<FieldRef Name='Title'/><FieldRef Name='Name'/>"
    $query.Query = $camlQuery
    $query.ViewAttributes = "Scope='Recursive'"
    $queryResults = $documentsLib.GetItems($query)
    foreach($item in $queryResults){
        $filename =  [io.path]::GetFileNameWithoutExtension($item.Name)
        Write-Host $filename
Get-SPItem
The code above return both Document Set Name and Files Name, which going to be extra row and how can I eliminate Document Set Name?
Thank you in advanced :)

Hi,
Please try to use the CAML statement like below in your script:
$query.Query = "<Where><BeginsWith><FieldRef Name = 'ContentTypeId' /><Value Type= 'ContentTypeId'>0x0101</Value></BeginsWith></Where>"
$query.ViewAttributes = "Scope = 'RecursiveAll'"
Thanks
Patrick Liang
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
[email protected]
Patrick Liang
TechNet Community Support

Similar Messages

  • How to get Document Set property values in a SharePoint library in to a CSV file using Powershell

    Hi,
    How to get Document Set property values in a SharePoint library into a CSV file using Powershell?
    Any help would be greatly appreciated.
    Thank you.
    AA.

    Hi,
    According to your description, my understanding is that you want to you want to get document set property value in a SharePoint library and then export into a CSV file using PowerShell.
    I suggest you can get the document sets properties like the PowerShell Command below:
    [system.reflection.assembly]::loadwithpartialname("microsoft.sharepoint")
    $siteurl="http://sp2013sps/sites/test"
    $listname="Documents"
    $mysite=new-object microsoft.sharepoint.spsite($siteurl)
    $myweb=$mysite.openweb()
    $list=$myweb.lists[$listname]
    foreach($item in $list.items)
    if($item.contenttype.name -eq "Document Set")
    if($item.folder.itemcount -eq 0)
    write-host $item.title
    Then you can use Export-Csv PowerShell Command to export to a CSV file.
    More information:
    Powershell for document sets
    How to export data to CSV in PowerShell?
    Using the Export-Csv Cmdlet
    Thanks
    Best Regards
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • PowerShell Script for Setting the Welcome Page View of a document set

    Hi,
    We are using document set in the document library and we have created the separate view in the document set and it will show only particular metadata columns. We need to change from default view to another view. For this, we need to write the power shell
    script and update the document set welcome page view link in the document set template. Please let me know how we can get this.
    Thanks,
    Mylsamy

    Hey Mylsamy,
    welcome page view is stored in $contenttype.XmlDocuments. Here is how you can change the view using powershell:
    $web = Get-SPWeb "WEBURL"
    $list = $web.Lists["LISTNAME"]
    $contenttype = $list.ContentTypes["CONTENTYPENAME"]
    $viewid = $list.Views["VIEWNAME"].Id
    $xmldocs = $contenttype.XmlDocuments
    foreach($xmldoc in $xmldocs)
    if($xmldoc.Contains("WelcomePageView"))
    Write-Host "XML contains WPV"
    $newview = [XML] @"
    <wpv:WelcomePageView xmlns:wpv="http://schemas.microsoft.com/office/documentsets/welcomepageview" ViewId="$viewid" />
    $xmldocs.Delete("http://schemas.microsoft.com/office/documentsets/welcomepageview")
    $xmldocs.Add($newview)
    break;
    $contenttype.Update($updateChildren, $false)
    Write-Host "Welcome Page View updated at " $list.Title
    Regards,
    Alexander 

  • Display Document Set Columns Within The Document Set

    Hello all! Hopefully you all can let me know if the idea I have in my head is possible:
    Background: I have a Document Library with a custom made Document Set that has about 15 columns. The way I initially designed this, I left about 10 of the fields as "Hidden" because we didn't want the user to fill out that information
    when creating a Document Set. That information would be completed in the next step through a Workflow. The Document Set Welcome Page has been left pretty much untouched with the usual web parts for Document Set Properties and the view of the items within the
    Document Set.
    Question: What I would like to know is...would it be possible to display those Document Set fields within the Document Set itself? At the moment, if I try to add another Document Library web part and view it, the information web part is
    empty, or it contains information about one of the items within the Document Set.
    Simplified Structure of Document Set:
    Name (required)
    Fiscal Year (Required)
    Total Cost (Required)
    Approval Date (Hidden)
    Requisition # (Hidden)
    Team Members (Hidden)
    Reminder Date (Hidden)
    User creates a new Document Set, fills out the information, and saves (this triggers a background workflow that approves the Document Set). After approval, a new workflow is started to provide the information for the Hidden fields (and also schedules a reminder
    for that Reminder date.)
    The goal would be to display those Hidden fields in another web part on the page. Right now, I have users going back up to the main level of the Document Library to look at a view that contains those fields.
    Hopefully I haven't confused you all too much! Please let me know if my idea is possible and any resources you might have!
    Thanks!
    Toni
    Toni Marie

    Here is the approach to read document set columns and assign to other webparts:
    for each document set you can find the id when you clicking on the document set or navigating to the welcome page,
    using this id read query string and  the associated item column values and assign to otherwebpart .
    Reference code:
    //page_load for other webpart read the query string of welcome page
    if (Page.Request.QueryString["ID"] != null)
                    ID = Convert.ToInt32(Page.Request.QueryString["ID"]);
                    if (itemID > 0)
                        GetDocumentSetItem(ID , site);
      protected void GetDocumentSetItem(int itemid, SPSite sSiteUrl)
                SPSite site = sSiteUrl;
                SPWeb web = site.OpenWeb();
                SPList list = web.Lists.TryGetList("DocumentlibraryName"); //where documentset content type attached
                SPListItemCollection items = list.GetItems();
                SPListItem item = null;
                if (itemid > 0)
                    item = list.Items.GetItemById(itemID);//getting the current item
       //read the document set item column values and assign it other webpart controls , 
                    txtDocsetidname.Text = Convert.ToString(item["FileLeafRef"]);
                    txtDocsetid.Text = Convert.ToString(item["hiddenfield"]);
    In the welcome page I have placed button to load webpart ,while loading the webpart I am reading the query string assigning the values to otherwebparts.
    G1

  • SharePoint Document Set Version Extension

    Before reading further, please note this is not a simple 'how do I enable versioning' and, as far as I can tell, nothing similar has been asked before...
    Instead I am looking for any solutions (3rd party or OOTB) or novel suggestions for an extension to document set versions so that users are presented with a friendlier user interface than the default version history dialogue that we all know and love.  
    This is a very specific request from a senior stakeholder at my company who requires the highlighting/comparison of document set versions in which we are already displaying a custom ASPX page of properties and lookups against other data in the site. The
    user has previously used (and most likely prefers) the Atlassian Confluence offering (https://www.atlassian.com/software/confluence) which provides such functionality.
    So far I have explored the following no code solutions:
    Allowing users to track their own changes through Word and then uploading the document to the correct document set. This is not an option due to the number of clicks users have to navigate through and the loss of centralised tracking etc. through the doc
    set properties
    Providing users with the ability to mark their changes in the document set with rich text highlighting (has to be enabled through SPD for document sets) which was initially promising but places the reliance on users to remember to highlight changes correctly.
    I have also noticed a frustrating feature with version control which, in the history dialogue box, properties with a large number of characters (we have extended most fields to be greater than 250 - I know this is probably not recommended but needed to be
    done) are clipped so that the entire field is not visible. Through PowerShell I can see that the values are fully stored in the Snapshot Collection for each document set.
    Currently, I am working on the assumption that this is the only way to access version history and a custom server side solution (CSOM doesn't seem to expose these properties) will be the only option going forward. Ideally a no-code option (especially not
    server side) would be preferable so reaching out to you wonderful experts for some insights.
    Really appreciate any responses...

    Hi,
    Based on your description, my understanding is that you want to make the Document Set Version history with a friendlier user interface than the default version history dialogue.
    SharePoint seems to only expose the Document Set's metadata version in the "Version" column. I call this the metadata version because this will only increase if you make changes to the document set's properties, and not if you update the documents
    inside. This is what I mean by metadata version.
    In the Document Set Version history,  the first column displayed is No. This is not the regular version column of the library, but a totally different one. When creating a document set version the version column of the library doesn’t change,
    only the No value.   
    The version(s) of a document set are stored in the propertybag of the item itself. 
    Take a look at this article about how to retrieve document set version history:
    http://www.itidea.nl/index.php/how-to-retrieve-document-set-version-history/
    Best Regards,
    Lisa Chen
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Lisa Chen
    TechNet Community Support

  • Document Set with mysteriously disappearing files

    I am having issues trying to figure out what is wrong with my
    document set. It is inside of an approval library and I had just approved all
    the items within the set as well as the set itself. Then when I came back to the
    set later, all the items were missing. I could see them while looking through
    the explorer view but not in sharepoint.
    Any idea what the issue here is?

    Hello,
    Can you verify if there is any custom view on your SharePoint library which is preventing the Documents to be excluded after approval?
    Thanks & Regards,
    Kamlesh | Blog |
    Twitter | Posting is provided "AS IS" with no warranties, and confers no rights.

  • Document Sets and Content Types

    Hi All,
    I am having trouble in getting the "document sets" content types applied as expected when I try to create a site based off custom template.
    Scenario:
    We have 8 document sets stored in a document library. This library is part of a site which we have saved as a template.
    E.g. of document sets is "Others", "Meetings" etc
    Each of these document sets have one or more content types associated with it.
    We are trying to create a site based off the saved site template using powershell.
    E.g. $web = New-SPWeb http://myserver/sites/mysite/subsite
    $web.ApplyWebTemplate("{GUID}#Name of Template")
    When we open the document sets in this newly created site, the content types seem to be coming all together rather than being associated with the specific document set.
    E.g. Clicking "New document" in the "others" document set would show up content types from "meeting" and all the remaining document sets present in that library.
    Interestingly, when I go to "Document Set" settings, I only see the content type of "Others" Document Set.
    Any idea why the "New document" dropdown for the document set is not behaving as expected?

    Hi Abhi,
    Based on your description, I did a test. In my testing, everything worked well.
    The steps are:
    Go to Site Actions->Site Settings->Site content types.
    Create a new content type, and select parent content type from Document Set Content Types, and Parent Content Type: Document Set
    Click ok
    Under Settings, click Document Set settings
    On the Allowed Content Type section, select some content types and add them
    Click OK
    Then repeat step2-6, and create another custom document set
    Open your library, and allow management of content types in advanced settings
    Add the two document sets into the library
    Check each document set, and each one had different content types
    Save the site as a template and include the content
    Create a new site based on the site template using PowerShell(the command was same with yours)
    After creating, check the document sets of the library in the new site, everything worked well.
    Please check your process as the above steps.
    I hope this helps.
    Thanks,
    Wendy
    Wendy Li
    TechNet Community Support

  • Bulk Add Document Set

    Hello,
    Is there a way to bulk create document set in SharePoint? I saw mutliple way to bulk add "simple" items but I can't find a way to do this with document set (or better with my custom document set type)
    My target is to read an xml file containing IDs and create in a document library a document set for each entry..
    for now i'm using a web service that I call with PowerShell but it is too slow for me (I need to import a lot of document sets) ... is there a faster way?
    Thanks in advance
    Christopher
    Best regards, Christopher.
    Blog |
    Mail
    Please remember to click "Mark As Answer" if a post solves your problem or
    "Vote As Helpful" if it was useful.
    Why mark as answer?

    I'm thinking, a faster way would be to leverage the client OM to upload files in batches. Each batch gets a little bit bigger because files get Base64 encoded, but according to my tests it's well worth the effort. In my case, I was able to make the
    code run 10 x faster. Here's some example code to get you started:
    // Run some kind of loop to add batch of files
    FileCreationInformation fileCreationInformation = new FileCreationInformation();
    byte[] content = fileContent;
    fileCreationInformation.Content = content;
    fileCreationInformation.Overwrite = true;
    fileCreationInformation.Url = fileName;
    this.CurrentList.RootFolder.Files.Add(fileCreationInformation);
    // End of loop, now execute in 1 batch:
    Context.ExecuteQuery();
    This code is for individual files, not for document sets, but I guess you'll be able to figure that out. I once built a tool that leverages the concept of batch uploading files, you can check that out as well at
    http://gallery.technet.microsoft.com/office/The-Migration-Dragon-for-c0880e59/view/Discussions
    Kind regards,
    Margriet Bruggeman
    Lois & Clark IT Services
    web site: http://www.loisandclark.eu
    blog: http://www.sharepointdragons.com

  • Unable to edit Document Set metadata.

    I have a Library with Document Sets enabled.  The metadata for the documents and the DS are defined and the columns visible (set to optional) from within each content type under library settings.  However, when I select a DS and then click Edit
    Properties, I can only change the DS Name and the Content Type (DS or Folder).  None of the other metadata from the DS content type is visible.  The extra metadata shows when I create a new DS item, but there is no way to change it after the fact.
    Anyone have any ideas?

    It is possible to make it do that but i can't imagine how it could happen without sigificant deliberate effort.
    It is possible to modify the columns on a content type so that they do not appear on specific views (view,new,edit) but it's a fairly obscure trick and you need PowerShell to do it. If this has happened then you could use PowerShell to correct the settings
    but i dislike treating the symptoms of a problem unless you know the cause.
    There are some columns that are set by default to only appear on set views but that would normally affect the items as well as the document sets.
    For a random thought you could look at the effectts of seting the columns to be shared throught the document set, it's possible that i've forgotten a bit of default behaviour and that the columns are being hidden on purpose. Other than that i'm out of ideas
    i'm afraid. Hopefully someone else may be able to contribute.

  • Create a Webpart with Sharepoint Designer to see and upload documents in document set

    Hello,
    In a document set, we see documents in this document set and we can upload files and documents only in this document set.
    Can i save this view to other sites in webPart ?
    I tried to use sharepoint designer saving the dataview in a file and then import this file in other site but the result is that webpart show me the root of the library, not the document set and same for file uploads, it show me the file upload window for
    the root of the library.
    Thanks.

    Hi,
    Thanks for your answer.
    Yes, i linked source site collection from SPD; I don't want to send but i want to display document set in another site.
    Finaly, i found a solution but i don't know if its the best practice :
    i have all my libraries in the top site to have all important documents in one site.
    So i want to display a library/folder/document set in webParts to my subsites.
    To do this, i create a dataview in SPD; i save this dataview in a file and import this file as webPart in my subsites.
    my problem : It display the root of my library instead of within the document set. AND when i clic on "upload a document", it display the root of my library upload form instead of the document set upload form
    my solution : i create a dataview in SPD; i copy/past the document set upload form link in this dataview; I save this dataview in a file and import this file as webPart in my subsite; from the webpart of my subsite, i create a view to my document set.
    ... should i do it for all my views ? or is there another solution ?
    Thanks

  • SharePoint 2013 List & linked Document Set Project Help Needed

    I have struggling to find the best solution for a recent project. I'm sure someone will have a better suggestion than what I have come up with.
    Project Requests
    Project Tracking and Documents
    Status and other data
    Project Documents
    Offsite Syncing for active projects (SkyDrive Pro)
    Attempted Scenario
    1 List for Project Tracking
    1 Document Library for Project Documents (Document Set content type)
    I created a workflow to automatically create a new Document Set when an item was added to the list, then create a link to the Document set in a column called Documents. The goal with the document sets is to have them sent to another library (archive) when
    the project is marked complete. The reason is so that the user synching offline won't have so many document sets to sync or to browse through (there would easily be a few hundred within a couple of months)
    Is there a way to programmatically move the document set to an archive library when the list item status is set to complete?  And if the status were to change back to active, to move back to the active library. 
    Or maybe I am going about this the wrong way entirely?  All suggestions are greatly appreciated! 

    Hi,
    With Event Receiver, we can capture the ItemUpdated event of item of a list when the value of an item is updated, then perform the Document Set moving accordingly.
    Here is a step by step sample on creating a simple Item added event receiver for Custom List in SharePoint 2010:
    http://msdn.microsoft.com/en-us/library/ff398052.aspx
    More information on
    Event Receiver for your reference:
    http://msdn.microsoft.com/en-us/library/gg749858(v=office.14).aspx
    http://msdn.microsoft.com/en-us/library/ff408183(v=office.14).aspx
    Here is a thread with code demo about
    moving Document Set programmatically:
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/1e8b1110-a719-4825-a300-cc1946f4d96a/document-sets-move-programatically
    Feel free to reply if there are still any questions.
    Best regards
    Patrick Liang
    TechNet Community Support

  • How to create a Document Set in SharePoint 2013 using JavaScript Client Side Object Model (JSOM)?

    Hi,
    The requirement is to create ""Document Sets in Bulk" using JSOM. I am using the following posts:-
    http://blogs.msdn.com/b/mittals/archive/2013/04/03/how-to-create-a-document-set-in-sharepoint-2013-using-javascript-client-side-object-model-jsom.aspx
    http://social.msdn.microsoft.com/Forums/sharepoint/en-US/1904cddb-850c-4425-8205-998bfaad07d7/create-document-set-using-ecma-script
    But, when I am executing the code, I am getting error "Cannot read property 'DocumentSet' of undefined "..Please find
    below my code. I am using Content editor web part and attached my JS file with that :-
    <div>
    <label>Enter the DocumentSet Name <input type="text" id="txtGetDocumentSetName" name="DocumentSetname"/> </label> </br>
    <input type="button" id="btncreate" name="bcreateDocumentSet" value="Create Document Set" onclick="javascript:CreateDocumentSet()"/>
    </div>
    <script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js"> </script>
    <script type="text/javascript">
       SP.SOD.executeFunc('sp.js','SP.ClientContext','SP.DocumentSet','SP.DocumentManagement.js',CreateDocumentSet);
    // This function is called on click of the “Create Document Set” button. 
    var ctx;
    var parentFolder;
    var newDocSetName;
    var docsetContentType;
    function CreateDocumentSet() {
        alert("In ClientContext");
        var ctx = SP.ClientContext.get_current(); 
        newDocSetName = $('#txtGetDocumentSetName').val(); 
        var docSetContentTypeID = "0x0120D520";
        alert("docSetContentTypeID:=" + docSetContentTypeID);
        var web = ctx.get_web(); 
        var list = web.get_lists().getByTitle('Current Documents'); 
        ctx.load(list);
        alert("List Loaded !!");
        parentFolder = list.get_rootFolder(); 
        ctx.load(parentFolder);
        docsetContentType = web.get_contentTypes().getById(docSetContentTypeID); 
        ctx.load(docsetContentType);
        alert("docsetContentType Loaded !!");
        ctx.executeQueryAsync(onRequestSuccess, onRequestFail);
    function onRequestSuccess() {       
        alert("In Success");
        SP.DocumentSet.DocumentSet.create(ctx, parentFolder, newDocSetName, docsetContentType.get_id());
        alert('Document Set creation successful');
    // This function runs if the executeQueryAsync call fails.
    function onRequestFail(sender, args) {
        alert("Document Set creation failed" + + args.get_message());
    Please help !!
    Vipul Jain

    Hello,
    I have already tried your solution, however in that case I get the error - "UncaughtSys.ArgumentNullException: Sys.ArgumentNullException:
    Value cannot be null.Parameter name: context"...
    Also, I tried removing SP.SOD.executeFunc
    from my code, but no success :(
    Kindly suggest !!!
    Vipul Jain

  • Document setting prevent placing a signature using Adobe Reader

    Created a statis pdf witha  digital signature field in Adobe Livecycle designer, also tried in Acrobat PRO, saved as a PDF, when opening the file under Adobe Reader X or Adobe Reader 8 get sam eissue adobe reader will not allow the signature or document ot be changed, get a warning that saya "document setting prevent placing a signature using Adobe Reader"
    Sorry I am new to Adobe, what does Reader want, I do not have this issue when I open the file under Acrobat PRO or Livecycle.
    Thanks

    This forum is only for discussions on the forums themselves. You may want trying to post your question in the Reader forum.

  • Document Set Creation in document library using REST API in Sharepoint 2013

    Hi,
    I want to create the document set using REST API call. Currently i am able to create the folder and able to upload the files using REST API's in the document library. Is there any way we can pass the contentype name or Id and create the document set using
    REST API call. We need to create the document set along with metadata and upload the files inside the document set.
    I need to create the document set along with meta data column values using REST API. Please let me know how we can achieve this through REST API.
    Thank you,
    Mylsamy

    Hi,
    According to your post, my understanding is that you wanted to create document set along with managed metadata fields.
    The REST API does not currently support working with Managed Metadata or Taxonomy fields.
    As a workaround, we can use the JavaScript Client Object Model.
    Create document set using JavaScript Client Object Model.
    http://blogs.msdn.com/b/mittals/archive/2013/04/03/how-to-create-a-document-set-in-sharepoint-2013-using-javascript-client-side-object-model-jsom.aspx
    http://social.technet.microsoft.com/Forums/sharepoint/en-US/aacd96dc-0fb2-4f0d-ab4c-f94ce819e3ed/create-document-sets-with-javascript-com-sharepoint-2010
    Set managed metadata field with JavaScript Client Object Model.
    http://sharepoint.stackexchange.com/questions/95933/add-list-item-with-managed-metadata-field-through-jsom
    http://sharepointfieldnotes.blogspot.com/2013/06/sharepoint-2013-code-tips-setting.html
    Thanks,
    Jason
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Jason Guo
    TechNet Community Support

  • Transfer changes from Document to the Document Set [Sharepoint bug?]

    I I have Document Set, 1 Document inside and, for example,
    1 general field.
    Task: when I change Document I need to copy value of the general field to the Document Set.
    Problem: I made Workflow on Document that calls when I change it, this Workflow copies data to the Document Set.
    But it doesn't work, because when I change Document inside Document Set there are 2 events: "Document was changed" and "Document Set was changed". And the event "Document Set was changed" called first and it copies all general
    fields to all documents inside. That's why when my Workflow starts, field in Document has value from Document Set not the one that user typed.
    Any solutions to solve the task or problem (e.g. to increase the priority for Workflow on documents inside)?

    Hi ,
    According to your description, my understanding is that you want to copy the value of a field for a document inside a document set to the associated column for document set.
    How did you design your workflow?
    I did a test based on your description, and I used the ID (in my testing, the ID of the document set is 2)to find the associated document set, and the testAA is the column.
    My workflow is:
    In my testing, everything was ok. Please have a try as the above workflow, compare the result.
    Best Regards,
    Wendy
    Wendy Li
    TechNet Community Support

Maybe you are looking for

  • How to connect my ipad mini wifi without a SIM card

    How do I connect my ipad mini cellular to wifi without a sim card

  • Unable to create a PO(in backend system) in ECS

    Hello all, I used the FM BBP_PD_SC_CREATE, BBP_PD_SC_UPDATE, BBP_PD_SC_SAVE to create a shopping cart in ECS scenario. The problem is I am unable to create a PO in the backend system for the shopping cart. I am also getting the message 'Vendor 300001

  • Is it possible to make an OSB Proxy service offline/online based on BS

    JMS QUEUE | |_____ Proxy Service <-------->Business Service <---------> External System URL I have a configuration as shown above. There is a way to make the Business Service offline/online based on the External system URL being offline/online by set

  • Fund Reservation

    Hi, I created a fund reservation with two line items. Each line item has a different order number. When the purchase order is created and the creator reference the order number for line item two of the fund reservation, it defaults to the order numbe

  • Solaris 10 Live Upgrade with Veritas Volume Manager 4.1

    What is the latest version of Live Upgrade? I need to upgrade our systems from Solaris 8 to Solaris 10. All our systems have Veritas VxVM 4.1, with the O.S disks encapsulated and mirrored. Whats the best way to do the Live Upgrade. Anyone have clean