Cleanup of KM Content

Hi experts,
We've configured the Portal to a test client during our testing phase. During the period of time, notifications, collaboration tasks, portal favourites have been created. Now, we're switched the same Portal to a production client to get ready for go-live. Thus all user-related KM Content such as the mentioned items have to be cleared. SHould I just go to Content Admin > KM Content and delete the following folders (root\userhome, root\workflow)? Can anyone advise if that is the correct method to do a cleanup? THanks!
REgards,
ZM

Dear Zhenmin,
to clean up the notifications you can use the notification cleanup report. You will find it under Content-Administration -> KM-Content -> Toolbox -> Reports -> User related Cleanup
I am not sure if you can safely delete the /workflow folder. As Raghu stated above you should not delete SAP standard folder. The userhome contains mostly links to other Resources. eg. the wastebasket folder under Userhome contains links to the deleted files of the user in the corresponding repository. You can pretty much safely delete the userhome of the user (based on my experiences), just make sure that the linked files are also removed. You can use the different [Reports |http://help.sap.com/saphelp_nw70/helpdata/en/07/dad131443b314988eeece94506f861/content.htm] provided by SAP. Always be aware when deleting any SAP folders that you might not delete all objects associated.
In case you decide to delete the userhome and you accidentally delete an wrong userhome, it will be created during the next login, but it does not contain any reference to the old files.
Regards,
Fabian

Similar Messages

  • CUCM: Cleanup TFTP server content. Tool available?

    Hi,
    We've been upgrading our CUCM regularly since version 8.6. Every upgrade brings newer phone firmware files. We now have like 7-9 versions of firmware for each type of phone. Our backups are growing and growing and the time it takes to backup increases.
    Is there any tool available to delete older phone firmware files from all the TFTP servers?
    I know I can delete files manually (one-by-one) but it takes too much time. A tool that would delete all but the latest 2 versions of firmware for each type of phone would be great.
    Regards,
    Erik

    Manish,
    Thank you. I'll proceed and write me a tool that does this via CLI. I didn't know CLI had the tftp list/delete features.
    Process will be easy:
    List all *.loads files
    Download all *.loads files via http/tftp
    Find all references from the loads files to the actual firmware files
    Output CLI delete statements

  • Need a script to update AD information from Excel file, however employee ID is use for identify the user in AD

    Please help me to get this done!....Thanks in Advance
    This is current script I use to update AD record but its taking user id to pick the user in AD, which is some time give error not update properly..
    # UpdateUsers.ps1
    # PowerShell program to update Active Directory users from the information in a
    # Microsoft Excel spreadsheet. Only single-valued string attributes supported.
    # Author: Richard Mueller
    # PowerShell Version 1.0
    # September 12, 2011
    Trap
        If ("$_".StartsWith("Cannot load COM type Excel.Application"))
            "Excel application not found, program aborted"
            Add-Content -Path $LogFile -Value "## Excel application not found"
            Add-Content -Path $LogFile -Value "   $_"
            Add-Content -Path $LogFile -Value $("Program aborted: " + (Get-Date).ToString())
            Break
        If (("$_".StartsWith("Exception has been thrown")) -and ($Step -eq "4"))
            "Excel spreadsheet not found, program aborted"
            Add-Content -Path $LogFile -Value "## Excel spreadsheet not found: $ExcelPath"
            Add-Content -Path $LogFile -Value "   $_"
            Add-Content -Path $LogFile -Value $("Program aborted: " + (Get-Date).ToString())
            Break
        If ("$_".StartsWith("The server is not operational"))
            "Domain Controller not found, program aborted"
            Add-Content -Path $LogFile -Value "## Domain Controller not found"
            Add-Content -Path $LogFile -Value "   $_"
            Add-Content -Path $LogFile -Value $("Program aborted: " + (Get-Date).ToString())
            Break
        If ("$_".StartsWith("The directory service is unavailable"))
            "Active Directory not found, program aborted"
            Add-Content -Path $LogFile -Value "## Active Directory not found"
            Add-Content -Path $LogFile -Value "   $_"
            Add-Content -Path $LogFile -Value $("Program aborted: " + (Get-Date).ToString())
            Break
        If ("$_".StartsWith("The specified domain"))
            "Domain not found, program aborted"
            Add-Content -Path $LogFile -Value "## Domain not found"
            Add-Content -Path $LogFile -Value "   $_"
            Add-Content -Path $LogFile -Value $("Program aborted: " + (Get-Date).ToString())
            Break
        "Unexpected error: $_"
        Add-Content -Path $LogFile -Value "## Unexpected error: $_"
        Add-Content -Path $LogFile -Value "   Step: $Step"
        Break
    Function CleanUp
        Trap
            "Error during cleanup: $_"
            Add-Content -Path $LogFile -Value "## Error during cleanup: $_"
            $Script:Errors = $Script:Errors + 1
            Continue
        # Function to release Excel objects from memory.
        Do {$x = [System.Runtime.InteropServices.Marshal]::ReleaseComObject($Columns)} While ($x -gt -1)
        Do {$x = [System.Runtime.InteropServices.Marshal]::ReleaseComObject($Rows)} While ($x -gt -1)
        Do {$x = [System.Runtime.InteropServices.Marshal]::ReleaseComObject($Range)} While ($x -gt -1)
        Do {$x = [System.Runtime.InteropServices.Marshal]::ReleaseComObject($Sheet)} While ($x -gt -1)
        Do {$x = [System.Runtime.InteropServices.Marshal]::ReleaseComObject($Worksheets)} While ($x -gt -1)
        $Workbook.Close($False)
        Do {$x = [System.Runtime.InteropServices.Marshal]::ReleaseComObject($Workbook)} While ($x -gt -1)
        Do {$x = [System.Runtime.InteropServices.Marshal]::ReleaseComObject($Workbooks)} While ($x -gt -1)
        $Excel.Quit()
        Do {$x = [System.Runtime.InteropServices.Marshal]::ReleaseComObject($Excel)} While ($x -gt -1)
    # Specify paths to spreadsheet and log file.
    $Script:Errors = 0
    $Step = "1"
    $ExcelPath = "c:\scripts\UpdateUsers.xls"
    $LogFile = "c:\scripts\UpdateUsers.log"
    Write-Host "Please Standby..."
    # Add to the log file.
    $Step = "2"
    Add-Content -Path $LogFile -Value "------------------------------------------------" -ErrorAction Stop
    Add-Content -Path $LogFile -Value "UpdateUsers.ps1 Version 1.0 (September 12, 2011)"
    Add-Content -Path $LogFile -Value $("Started: " + (Get-Date).ToString())
    Add-Content -Path $LogFile -Value "Spreadsheet: $ExcelPath"
    Add-Content -Path $LogFile -Value "Log file: $LogFile"
    $Step = "3"
    # Open specified Excel spreadsheet.
    $Excel = New-Object -ComObject "Excel.Application"
    $Workbooks = $Excel.Workbooks
    $Step = "4"
    $Workbook = $Workbooks.Open($ExcelPath)
    $Worksheets = $Workbook.Worksheets
    $Sheet = $Worksheets.Item(1)
    $Range = $Sheet.UsedRange
    $Rows = $Range.Rows
    $Columns = $Range.Columns
    $Step = "5"
    # Hash table of attribute syntaxes.
    # The LDAP display names will be read from the spreadsheet.
    # The corresponding syntaxes will be read from the Schema container.
    $Attributes = @{}
    # Array of spreadsheet column headings.
    $Cols = @()
    $Step = "6"
    # Read attribute LDAP Display Names from the first row of the spreadsheet.
    $ID = 0
    For ($k = 1; $k -le $Columns.Count; $k = $k + 1)
        # Retrieve column heading, the lDAPDisplayName of an attribute.
        $Value = $Sheet.Cells.Item(1, $k).Text
        # Keep track of all column headings.
        $Cols += $Value
        # Skip duplicates in hash table.
        If ($Attributes.ContainsKey($Value) -eq $False)
            # Default is "NotFound", until found in the AD Schema.
            $Attributes.Add($Value, "NotFound")
        # Keep track of which column uniquely identifies users.
        If ($Value.ToLower() -eq "distinguishedname") {$ID = $k}
        If (($Value.ToLower() -eq "samaccountname") -and ($ID -eq 0)) {$ID = $k}
        # This script cannot be used to rename users.
        If ($value.ToLower() -eq "cn")
            Add-Content -Path $LogFile -Value "## This script cannot be used to rename users"
            Add-Content -Path $LogFile -Value "   Do not specify the cn attribute in the spreadsheet"
            Add-Content -Path $LogFile -Value $("Program aborted: " + (Get-Date).ToString())
            CleanUp
            Return "Program aborted: cn attribute found in spreadsheet" `
                + "`nSee log file: $LogFile"
    $Step = "7"
    If ($ID -eq 0)
        Add-Content -Path $LogFile -Value "## No column found to identify users"
        Add-Content -Path $LogFile -Value "   One column must be distinguishedName or sAMAccountName"
        Add-Content -Path $LogFile -Value $("Program aborted: " + (Get-Date).ToString())
        CleanUp
        Return "Program aborted: No column found in spreadsheet to identify users" `
            + "`nSee log file: $LogFile"
    # Create filter to query for attributes in the schema.
    $Attrs = $Attributes.Keys
    $Filter = "(&(objectCategory=AttributeSchema)(|"
    ForEach ($Attr In $Attrs)
        $Filter = $Filter + "(lDAPDisplayName=$Attr)"
    $Filter = $Filter + "))"
    $Step = "8"
    $RootDSE = [System.DirectoryServices.DirectoryEntry]([ADSI]"LDAP://RootDSE")
    $Domain = $RootDSE.Get("defaultNamingContext")
    $Schema = $RootDSE.Get("schemaNamingContext")
    $Step = "9"
    # Use the NameTranslate object.
    $objTrans = New-Object -comObject "NameTranslate"
    $objNT = $objTrans.GetType()
    # Initialize NameTranslate by locating the Global Catalog.
    $objNT.InvokeMember("Init", "InvokeMethod", $Null, $objTrans, (3, $Null))
    $Step = "10"
    # Retrieve NetBIOS name of the current domain.
    $objNT.InvokeMember("Set", "InvokeMethod", $Null, $objTrans, (1, "$Domain"))
    $NetBIOSDomain = $objNT.InvokeMember("Get", "InvokeMethod", $Null, $objTrans, 3)
    Add-Content -Path $LogFile -Value "NetBIOS name of domain: $NetBIOSDomain"
    $Step = "11"
    $Searcher = New-Object System.DirectoryServices.DirectorySearcher
    $Searcher.SearchRoot = [ADSI]"LDAP://$Schema"
    $Searcher.PageSize = 200
    $Searcher.SearchScope = "subtree"
    $Searcher.PropertiesToLoad.Add("lDAPDisplayName") > $Null
    $Searcher.PropertiesToLoad.Add("attributeSyntax") > $Null
    $Searcher.PropertiesToLoad.Add("isSingleValued") > $Null
    $Searcher.PropertiesToLoad.Add("systemFlags") > $Null
    # Filter on specified attributes.
    $Searcher.Filter = $Filter
    $Step = "12"
    # Query Active Directory.
    $Results = $Searcher.FindAll()
    # Enumerate recordset.
    ForEach ($Result In $Results)
        # Retrieve properties of attributes.
        $Name = $Result.Properties.Item("lDAPDisplayName")[0]
        $SysFlags = $Result.Properties.Item("systemFlags")[0]
        $SyntaxNum = $Result.Properties.Item("attributeSyntax")[0]
        $SingleValued = $Result.Properties.Item("isSingleValued")[0]
        # Only single-valued string attributes supported by this version of the program.
        Switch ($SyntaxNum)
            "2.5.5.12" {$Syntax = "String"}
            Default {$Syntax = "NotSupported"}
        If ($Name.ToLower() -eq "distinguishedname") {$Syntax = "DN"}
        If (($SysFlags -band 4) -ne 0)
            $Attributes[$Name] = "Constructed"
        Else
            If ($SingleValued -eq $True)
                $Attributes[$Name] = $Syntax
            Else
                $Attributes[$Name] = "NotSupported"
    $Step = "13"
    # Check if any attributes not found or have unsupported syntax.
    $Found = $True
    ForEach ($Attr In $Attrs)
        $Syntax = $Attributes[$Attr]
        If ($Syntax -eq "NotFound")
            Add-Content -Path $LogFile -Value "## Attribute $Attr not found in schema"
            "Attribute $Attr not found in schema"
            $Found = $False
        If ($Syntax -eq "NotSupported")
            Add-Content -Path $LogFile -Value "## Attribute $Attr has a syntax that is not supported"
            "Attribute $Attr has a syntax that is not supported"
            $Found = $False
        If ($Syntax -eq "Constructed")
            Add-Content -Path $LogFile -Value "## Attribute $Attr is operational, so is not supported"
            "Attribute $Attr is operational, so is not supported"
            $Found = $False
    $Step = "14"
    If ($Found -eq $False)
        Add-Content -Path $LogFile -Value $("Program aborted: " + (Get-Date).ToString())
        CleanUp
        Return "Program aborted" `
            + "`nSee log file: $LogFile"
    # Read remaining rows of the spreadsheet, until the first blank value is found
    # in the column that identifies users.
    $Step = "15"
    $Script:Updated = 0
    $Script:Unchanged = 0
    $j = 2
    Do {
        # Retieve ID value for the user first.
        $Value = $Sheet.Cells.Item($J, $ID).Text
        $Found = $False
        $Step = "16"
        If ($Cols[$ID - 1] -eq "distinguishedname")
            # Any forward slash characters must be escaped.
            $DN = $Value.Replace("/", "\/")
            # Bind to the user object.
            # If user not found, $User.Name will be $Null.
            $User = [ADSI]"LDAP://$DN"
            If ($User.Name -ne $Null)
                $Found = $True
        $Step = "17"
        If ($Cols[$ID - 1] -eq "samaccountname")
            Trap
                Write-Host ""
                "Error translating name: $_"
                Add-Content -Path $LogFile -Value "## Error translating name $Value"
                Add-Content -Path $LogFile -Value "   Description: $_"
                $Script:Errors = $Script:Errors + 1
                Continue
            # Convert sAMAccountName to distinguishedName.
            $DN = ""
            $Step = "18"
            $objNT.InvokeMember("Set", "InvokeMethod", $Null, $objTrans, (3, "$NetBIOSDomain$Value"))
            $DN = $objNT.InvokeMember("Get", "InvokeMethod", $Null, $objTrans, 1)
            $Step = "19"
            If ($DN -ne "")
                $Step = "20"
                # Any forward slash characters must be escaped.
                $DN = $DN.Replace("/", "\/")
                # Bind to the user object.
                $User = [ADSI]"LDAP://$DN"
                $Found = $True
        If ($Found -eq $True)
            $Step = "21"
            # Read remaining values for this user.
            $Changed = $False
            For ($k = 1; $k -le $Columns.Count; $k = $k + 1)
                # Skip the identifying column.
                If ($k -ne $ID)
                    $Step = "22"
                    # Retrieve attribute name for this column from array.
                    $AttrName = $Cols[$k - 1]
                    # Retrieve attribute syntax from hash table.
                    $Syntax = $Attributes[$AttrName]
                    $Step = "23"
                    # Retrieve attribute value for this user.
                    $Value = $Sheet.Cells.Item($j, $k).Text
                    # Skip blank values.
                    If ($Value -ne "")
                        If ($Syntax -eq "String")
                            Trap
                                If ("$_".StartsWith("The directory property cannot be found"))
                                    Continue
                                Else
                                    Write-Host ""
                                    "Error retrieving value from Active Directory: $_"
                                    Add-Content -Path $LogFile -Value "## Error retrieving $AttrName for user $DN"
                                    Add-Content -Path $LogFile -Value "   Description: $_"
                                    $Script:Errors = $Script:Errors + 1
                                    Continue
                            $Step = "24"
                            # Single-valued string attribute.
                            # Retrieve existing value.
                            $OldValue = ""
                            $OldValue = $User.Get($AttrName)
                            # Check if existing value to be deleted.
                            If ($Value.ToLower() -eq ".delete")
                                If ($OldValue -ne "")
                                    If ($AttrName.ToLower -eq "samaccountname")
                                        Add-Content -Path $LogFile -Value `
                                            "## Mandatory attribute sAMAccountName cannot be cleared for user: $DN"
                                        $Script:Errors = $Script:Errors + 1
                                    Else
                                        Trap
                                            Write-Host ""
                                            "Error deleting value from Active Directory: $_"
                                            Add-Content -Path $LogFile -Value "## Error deleting $AttrName for user $DN"
                                            Add-Content -Path $LogFile -Value "   Description: $_"
                                            $Script:Errors = $Script:Errors + 1
                                            Continue
                                        $Step = "25"
                                        # Make the attribute value "not set".
                                        $User.PutEx(1, $AttrName, 0)
                                        $Changed = $True
                            Else
                                $Step = "26"
                                # Check if new value from spreadsheet different.
                                If ($Value -ne $OldValue)
                                    Trap
                                        Write-Host ""
                                        "Error assigning value from Active Directory: $_"
                                        Add-Content -Path $LogFile -Value "## Error assigning $AttrName for user $DN"
                                        Add-Content -Path $LogFile -Value "   Description: $_"
                                        $Script:Errors = $Script:Errors + 1
                                        Continue
                                    # Assign the new value to the attribute.
                                    $User.Put($AttrName, $Value)
                                    $Changed = $True
                        Else
                            # Unexpected error.
                            Add-Content -Path $LogFile -Value `
                                "## Unexpected syntax: $Syntax for attribute $AttrName for user $DN"
                            $Script:Errors = $Script:Errors + 1
            If ($Changed -eq $True)
                Trap
                    Write-Host ""
                    "Error saving to Active Directory: $_"
                    Add-Content -Path $LogFile -Value "## Error saving to AD for user $DN"
                    Add-Content -Path $LogFile -Value "   Description: $_"
                    $Script:Errors = $Script:Errors + 1
                    $Script:Updated = $Script:Updated - 1
                    Continue
                $User.SetInfo()
                Add-Content -Path $LogFile -Value "Update user: $DN"
                Write-Host "." -NoNewLine
                $Script:Updated = $Script:Updated + 1
            Else
                Add-Content -Path $LogFile -Value "User unchanged: $DN"
                Write-Host "." -NoNewLine
                $Script:Unchanged = $Script:Unchanged + 1
        Else
            Add-Content -Path $LogFile -Value "## User not found: $Value"
            Write-Host "." -NoNewLine
            $Script:Errors = $Script:Errors + 1
        $j = $J + 1
    } Until ($Sheet.Cells.Item($j, $ID).Text -eq "")
    $Step = "27"
    CleanUp
    Add-Content -Path $LogFile -Value $("Finished: " + (Get-Date).ToString())
    Add-Content -Path $LogFile -Value "Number of users updated: $Script:Updated"
    Add-Content -Path $LogFile -Value "Number of users unchanged: $Script:Unchanged"
    Add-Content -Path $LogFile -Value "Number of errors: $Script:Errors"
    Write-Host ""
    "Done"
    "Number of errors: $Script:Errors"
    "See log file: $LogFile"

    Actually scripts run fine with excel file, currently we are using user-id to pick to update AD. Now we want to update AD use employee id. You can say to identify the record in AD through employee ID instead of user-id. 
    I do not think you will get anyone here to fix that for you.  You need to find someone who knows PowerShell to help you or learn PowerShell your self.
    I would fix it for you but not for free.  It is too oddly designed and has too many dependencies.  Any small change is likely to break it.
    ¯\_(ツ)_/¯

  • Error message in console app

    I see these and have issues with my macbook not waking up from sleep...I deinstalled the internet cleanup app by dragging it to trash but these still persist! have always had schedulermailer errors but not sure what they were
    my mac is..macbook running 10.5.8 leopard....
    !Dec 21 20:24:10 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.schedulerdaemon): Throttling respawn: Will start in 10 seconds
    Dec 21 20:24:10 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.internetcleanupd[435]): Exited with exit code: 1
    Dec 21 20:24:10 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.internetcleanupd): Throttling respawn: Will start in 10 seconds
    Dec 21 20:24:14 scott-cuthbertsons-computer com.apple.launchd[85] (com.smithmicro.cleaning.schedulermailer[436]): posix_spawnp("/Library/Smith Micro/Common/schedulermailer", ...): No such file or directory
    Dec 21 20:24:14 scott-cuthbertsons-computer com.apple.launchd[85] (com.smithmicro.cleaning.schedulermailer[436]): Exited with exit code: 1
    Dec 21 20:24:14 scott-cuthbertsons-computer com.apple.launchd[85] (com.smithmicro.cleaning.schedulermailer): Throttling respawn: Will start in 10 seconds
    Dec 21 20:24:20 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.schedulerdaemon[437]): posix_spawnp("/Library/Smith Micro/Common/schedulerdaemon", ...): No such file or directory
    Dec 21 20:24:20 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.schedulerdaemon[437]): Exited with exit code: 1
    Dec 21 20:24:20 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.schedulerdaemon): Throttling respawn: Will start in 10 seconds
    Dec 21 20:24:20 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.internetcleanupd[438]): posix_spawnp("/Library/Smith Micro/Internet Cleanup/internetcleanupd.app/Contents/MacOS/internetcleanupd", ...): No such file or directory
    Dec 21 20:24:20 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.internetcleanupd[438]): Exited with exit code: 1
    Dec 21 20:24:20 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.internetcleanupd): Throttling respawn: Will start in 10 seconds
    Dec 21 20:24:24 scott-cuthbertsons-computer com.apple.launchd[85] (com.smithmicro.cleaning.schedulermailer[439]): posix_spawnp("/Library/Smith Micro/Common/schedulermailer", ...): No such file or directory
    Dec 21 20:24:24 scott-cuthbertsons-computer com.apple.launchd[85] (com.smithmicro.cleaning.schedulermailer[439]): Exited with exit code: 1
    Dec 21 20:24:24 scott-cuthbertsons-computer com.apple.launchd[85] (com.smithmicro.cleaning.schedulermailer): Throttling respawn: Will start in 10 seconds
    Dec 21 20:24:30 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.schedulerdaemon[440]): posix_spawnp("/Library/Smith Micro/Common/schedulerdaemon", ...): No such file or directory
    Dec 21 20:24:30 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.internetcleanupd[441]): posix_spawnp("/Library/Smith Micro/Internet Cleanup/internetcleanupd.app/Contents/MacOS/internetcleanupd", ...): No such file or directory
    Dec 21 20:24:30 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.schedulerdaemon[440]): Exited with exit code: 1
    Dec 21 20:24:30 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.schedulerdaemon): Throttling respawn: Will start in 10 seconds
    Dec 21 20:24:30 scott-cuthbertsons-computer com.apple.launchd[1] (com.smithmicro.internetcleanupd[441]): Exited with exit code: 1

    Contact SmithMicro and use their uninstaller to get rid of the stuff its installer scattered about your machine. Without the app, there are daemons trying to launch it. BTW, why did you think it was necessary to clean your machine?

  • How do I export a scanned document to Word?

    How do I export a scanned document to Word?

    Use your OS's file browser/explorer to sort the files (in the folder) by date.
    Rename each. Top down put a numeric prefix in place.
    000-filename
    001-filename
    nnn-filename
    Open Acrobat and use the "Combine" feature to combine the files into a single PDF.
    An option available with the Combine feature is to have Bookmarks used. Tick this choice.
    The single, new PDF is created. Save it.
    Open this PDF file's Bookmark pane. There'll be a bookmark for each of the files.
    The order of Bookmarks and the order of PDF pages reflects the order you set when you renamed the source files (a date sort).
    Note that you could manually position the order of files to be combined in the Combine dialog.
    I find it easier and quicker to add the prefix to the source files.
    Using Acrobat XI you'd process the new, single PDF through OCR.
    As some of the PDF pages already have renderable text they cannot undergo OCR.
    Acrobat will alert you of this when it comes to the first of such pages.
    Just tick the box in the lower left. This tells Acrobat to ignore any upcoming pages that cannot be OCRd and to keep on truck'n to OCR the page that hold the scanned image.
    Now, use Acrobat XI to export the the PDF to the Word file you want.
    (File :: Save As Other :: <make the desired choice> )
    Do not expect a 1:1 export. You have a diverse collection of source files.
    While you might get 1:1 if ALL the PDFs combined were well-formed Tagged PDF (compliant with 14.8 of ISO 32000-1 & ISO 14289-1) you don't have that.
    So --- To be expected — cleanup of the content in the Word file.
    Be well...
    Message was edited by: CtDave

  • Converting Election PDF's to Excel;

    When converting several different election PDF's to Excel, the conversion does not come out correctly. Individual rows in the PDF's are grouped together as sets of three in the corresponding Excel file. It is very difficult to work with the resulting Excel file.
    For example try converting this PDF election file: http://www.acgov.org/rov/current.htm
    The result in Excel becomes this: (note how three rows are gouped in each cell)
    200200 - Election Day Reporting
    200300 - Vote by Mail Reporting
    200300 - Election Day Reporting
    715
    589
    589
    256
    317
    168
    35.80
    53.82
    28.52
    227
    283
    148
    4
    2
    5
    1
    1
    0
    19
    23
    13
    2
    6
    0
    1
    0
    1
    2
    1
    1
    0
    0
    0
    200600 - Vote by Mail Reporting
    200600 - Election Day Reporting
    200700 - Vote by Mail Reporting
    684
    684
    671
    353
    220
    347
    51.61
    32.16
    51.71
    312
    186
    305
    13
    7
    12
    1
    0
    1
    21
    23
    25
    2
    2
    1
    1
    1
    2
    2
    0
    1
    1
    0
    0
    200700 - Election Day Reporting
    200800 - Vote by Mail Reporting
    200800 - Election Day Reporting
    671
    617
    617
    199
    333
    188
    29.66
    53.97
    30.47
    185
    302
    170
    1
    0
    7
    0
    0
    0
    9
    25
    6
    1
    4
    4
    2
    0
    1
    0
    2
    0
    0
    0
    0
    I have an Adobe account and used the online converter. I also had problem converting such files with Adobe Acrobat Pro XI.
    Are there any options or other trick that can be used to convert such files?
    Thanks

    Short response:
    "You cannot make a silk purse from a sow's ear."
    Expanded response:
    Just looked at "sovc2012-11-06.pdf".
    From looking at the PDF and at the content exported to PDF -
    The Excel file has multiple rows in a single Excel row.
    re: (note how three rows are grouped in each cell)
    Root cause for export content needing cleanup = the PDF is not a tagged PDF.
    Viewing the content one "sees" and extrapolates the intended logical hierarchy.
    However the PDF content has no logical hierarchy imposed as it is not a well-formed tagged PDF.
    ("well-formed" as defined by ISO 14289-1, the ISO standard for PDF/UA).
    Export needs the content's logical hierarchy to be known.
    When this is not present heuristics are used. How effective this is is dictated on how the content was created and processed out to PDF.
    The PDF I viewed is intended to represent tabular data.
    That is not how the content in the PDF was created/painted.
    If you have Acrobat Pro open the PDF then open the Content Panel.
    Ignore the "Path" entries.
    Select a "Text:" entry.
    From the Panel's Options menu select the "Highlight" choice.
    Now move down, selecting "Text:" entries for a given page.
    Observe how what is highlighted bounce about different locations on the page.
    Whatever application was used to feed Distiller (which produced the PDF) did not provide requisite logical hierarchy.
    The page bounce I mentioned displays the order in which textual content was painted to the PDF page.
    A consequence of how the PDF source content was mastered and how this was processed to PDF is that what we see/know to be, logically, discrete rows gets bundled during export and placed into a single row.
    This would not occur had the PDF content been created as proper tabular data with correct application of the PDF <Table> element and this element's child elements/tags.
    If this PDF had been mastered properly and appropriate tag management used the tagged output PDF would've had a well-formed <Table> element with proper child elements.
    An export of this to Excel would've required little to no cleanup in the Excel file.
    Unfortunately you do not have the "well-formed tagged PDF".
    Consequently ExportPDF or Acrobat export is hampered.
    n.b., manually tagging to provide a proper <Table> is, typically, not practicable.
    For this particular content it'd be a waste of life-minutes.
    Unfortunately, you'll have to perform manual cleanup of the content exported to Excel to get where you want to be.
    As good as ExportPDF and Acrobat export are they are constrained by what is provided as input.
    It's unfortunate that Alameda did not provide well-formed tagged PDF on it's publicly facing web site.
    Consequently they are not accessible to many (i.e., Section 508 accessibility), they are not fully supportive of "re-purpose" via export, they are not fully supportive of use on mobile devices.
    Disappointing because with Acrobat Pro (and perhaps some ancillary supporting tools) it is not so difficult to provide well-formed tagged PDF.
    Be well...

  • Putting pdf pages in chronological order

    I have several documents in one pdf folder that are dated.  I would like to put these documents in chronological order by date, how do I do that?  I also got a message that some of the content is not editable because it was scanned.  So, if I export this to a Word document, how do I put the pages in chronological order?
    Thank you,
    Slspencer

    Use your OS's file browser/explorer to sort the files (in the folder) by date.
    Rename each. Top down put a numeric prefix in place.
    000-filename
    001-filename
    nnn-filename
    Open Acrobat and use the "Combine" feature to combine the files into a single PDF.
    An option available with the Combine feature is to have Bookmarks used. Tick this choice.
    The single, new PDF is created. Save it.
    Open this PDF file's Bookmark pane. There'll be a bookmark for each of the files.
    The order of Bookmarks and the order of PDF pages reflects the order you set when you renamed the source files (a date sort).
    Note that you could manually position the order of files to be combined in the Combine dialog.
    I find it easier and quicker to add the prefix to the source files.
    Using Acrobat XI you'd process the new, single PDF through OCR.
    As some of the PDF pages already have renderable text they cannot undergo OCR.
    Acrobat will alert you of this when it comes to the first of such pages.
    Just tick the box in the lower left. This tells Acrobat to ignore any upcoming pages that cannot be OCRd and to keep on truck'n to OCR the page that hold the scanned image.
    Now, use Acrobat XI to export the the PDF to the Word file you want.
    (File :: Save As Other :: <make the desired choice> )
    Do not expect a 1:1 export. You have a diverse collection of source files.
    While you might get 1:1 if ALL the PDFs combined were well-formed Tagged PDF (compliant with 14.8 of ISO 32000-1 & ISO 14289-1) you don't have that.
    So --- To be expected — cleanup of the content in the Word file.
    Be well...
    Message was edited by: CtDave

  • PCD Content missing after cleanup

    Hi all,
    I'm working at a customer where they cleaned up their PCD content a while ago. Basically they created a new main structure under ''portal_content' and restructured everything in here. They use a customized portal desktop that contains their own look and feel. This is assigned via the Portal Rule collection and everything is working fine.
    However, there are a few users that receive an error message as soon as they login, when they refresh the page it is working fine. When you look in the log files you see the following messages very regularly:
    [EXCEPTION]
    com.sapportals.portal.prt.runtime.PortalRuntimeException: iView not found: pcd:portal_content/abcde/group/layout/abcde_portal_desktop/frameworkPages/abcde_default_frameworkpage/com.sap.portal.innerpage
    this one is pointing to the old location, which indeed does not exist anymore. But does anyone know how to find out what is refering to the old location? I also thought about a caching problem, however, the portal was restarted already multiple times in meantime so I doubt that as well.
    Although the end users that get the error only need to refresh once it is still an annoying problem, any help is appreciated.
    Regards,
    Nico...

    Dear Nico,
    Hope you are doing good.
    Just try the below:
    1)
    Try the PCD inspector. this should help you administer and make the necessary changed in the PCD.
    [http://help.sap.com/saphelp_nw70/helpdata/de/47/a4a442dc030e31e10000000a1550b0/frameset.htm]
    and
    [https://cw.sdn.sap.com/cw/docs/DOC-113769]
    2)
    Also try the below note. This will sync the DB data with the FS from scratch and should solve this as well:
    1539483 - J2EE server/applications affected due to file system corruption
    Thank you and have a nice day :).
    Kind Regards,
    Hemanth
    SAP AGS

  • Cleanup Wizard shows no unused content files deleted

    WINDOWS 2008 SERVER / wsus Server Version 3.2.7600.251 / I've run the Wizard several times over the past couple of weeks and it never deleted any unused content files / doesn't seem right  ....any ideas?

    WINDOWS 2008 SERVER / wsus Server Version 3.2.7600.251 / I've run the Wizard several times over the past couple of weeks and it never deleted any unused content files / doesn't seem right  ....any ideas?
    Yep. You need to do update approval maintenance first.
    See
    Removing unneeded update approvals for additional info.
    Lawrence Garvin, M.S., MCSA, MCITP:EA, MCDBA
    SolarWinds Head Geek
    Microsoft MVP - Software Packaging, Deployment & Servicing (2005-2014)
    My MVP Profile: http://mvp.microsoft.com/en-us/mvp/Lawrence%20R%20Garvin-32101
    http://www.solarwinds.com/gotmicrosoft
    The views expressed on this post are mine and do not necessarily reflect the views of SolarWinds.

  • Drag and Drop of cell content between 2 tables

    Hi Guys,
    Iam into implementing drag and drop of cell contents between 2 different tables,say Table1 and Table2.(Iam not dragging and dropping rows or cells,Just copying the content of one cell to another).
    Have extended the java tutorial class "TableTransferHandler" and "StringTransferHandler" under http://java.sun.com/docs/books/tutorial/uiswing/examples/dnd/index.html#ExtendedDndDemo to satisfy my needs.
    The drag is enabled for Table1 and table2 as follows.
    jTable1.setDragEnabled(true);
    jTable1.setTransferHandler(new TableTransferHandler());
    jTable2.setDragEnabled(true);
    jTable2.setTransferHandler(new TableTransferHandler());
    Dont be taken aback with the code I have put.It just to show what I have done..
    My questions are put at the end of the post..
    //String Transfer Handler class.
    public abstract class StringTransferHandler extends TransferHandler {
        protected abstract String exportString(JComponent c);
        protected abstract void importString(JComponent c, String str);
        protected abstract void cleanup(JComponent c, boolean remove);
        protected Transferable createTransferable(JComponent c) {
            return new StringSelection(exportString(c));
        public int getSourceActions(JComponent c) {
            return COPY_OR_MOVE;
        public boolean importData(JComponent c, Transferable t) {
            if (canImport(c, t.getTransferDataFlavors())) {
                try {
                    String str = (String)t.getTransferData(DataFlavor.stringFlavor);
                    importString(c, str);
                    return true;
                } catch (UnsupportedFlavorException ufe) {
                } catch (IOException ioe) {
            return false;
        protected void exportDone(JComponent c, Transferable data, int action) {
            cleanup(c, action == MOVE);
        public boolean canImport(JComponent c, DataFlavor[] flavors) {
              JTable table = (JTable)c;         
             int selColIndex = table.getSelectedColumn();
            for (int i = 0; i < flavors.length; i++) {
                if ((DataFlavor.stringFlavor.equals(flavors))&& (selColIndex !=0)) {
    return true;
    return false;
    }//TableTransferHandler classpublic class TableTransferHandler extends StringTransferHandler {
    private int[] rows = null;
    private int addIndex = -1; //Location where items were added
    private int addCount = 0; //Number of items added.
    protected String exportString(JComponent c) {
    JTable table = (JTable)c;
    rows = table.getSelectedRows();
    StringBuffer buff = new StringBuffer();
    int selRowIndex = table.getSelectedRow();
    int selColIndex = table.getSelectedColumn();
    String val = table.getValueAt(selRowIndex,selColIndex).toString();
    buff.append(val);
    return buff.toString();
    protected void importString(JComponent c, String str) {
    JTable target = (JTable)c;
    DefaultTableModel model = (DefaultTableModel)target.getModel();
    //int index = target.getSelectedRow();
    int row = target.getSelectedRow();
    int column = target.getSelectedColumn();
    target.setValueAt(str, row, column);
    protected void cleanup(JComponent c, boolean remove) {
    }Now I want to put in the following functionality into my program...
    [1]prevent dragging and dropping text in to the same table.That means I dont want to drag a cell content from Table1  and drop to another cell in Table1. Want to drag and drop cell content only from Table1 to Table2.
    [2]Change cursor on a un-defined Target. That means how to prevent a drag from a particular column in Table1.Also how to prevent a drop to a particular column in Table2. How to change the cursor to a "NO-DRAG" cursoror "NO-DROP" cursor.
    Could it be done using Drag Source Listener and drop Target Listener?.
    If yes,How can these listeners attached to the table and how to do it?
    If No,How Could it be done?
    [3]Want to change the background colour of the cell being dragged and also the background colour of the target cell where the drop is made...
    [4]Is there any out of the box way to make an undo in the target cell(where drop was made) so that the old cell value is brought back.
    How can I extend my code to take care of the above said things.
    Any help or suggestions is greatly appreciated.....
    Edited by: Kohinoor on Jan 17, 2008 10:58 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    Hi Guys,
    Iam into implementing drag and drop of cell contents between 2 different tables,say Table1 and Table2.(Iam not dragging and dropping rows or cells,Just copying the content of one cell to another).
    Have extended the java tutorial class "TableTransferHandler" and "StringTransferHandler" under http://java.sun.com/docs/books/tutorial/uiswing/examples/dnd/index.html#ExtendedDndDemo to satisfy my needs.
    The drag is enabled for Table1 and table2 as follows.
    jTable1.setDragEnabled(true);
    jTable1.setTransferHandler(new TableTransferHandler());
    jTable2.setDragEnabled(true);
    jTable2.setTransferHandler(new TableTransferHandler());
    Dont be taken aback with the code I have put.It just to show what I have done..
    My questions are put at the end of the post..
    //String Transfer Handler class.
    public abstract class StringTransferHandler extends TransferHandler {
        protected abstract String exportString(JComponent c);
        protected abstract void importString(JComponent c, String str);
        protected abstract void cleanup(JComponent c, boolean remove);
        protected Transferable createTransferable(JComponent c) {
            return new StringSelection(exportString(c));
        public int getSourceActions(JComponent c) {
            return COPY_OR_MOVE;
        public boolean importData(JComponent c, Transferable t) {
            if (canImport(c, t.getTransferDataFlavors())) {
                try {
                    String str = (String)t.getTransferData(DataFlavor.stringFlavor);
                    importString(c, str);
                    return true;
                } catch (UnsupportedFlavorException ufe) {
                } catch (IOException ioe) {
            return false;
        protected void exportDone(JComponent c, Transferable data, int action) {
            cleanup(c, action == MOVE);
        public boolean canImport(JComponent c, DataFlavor[] flavors) {
              JTable table = (JTable)c;         
             int selColIndex = table.getSelectedColumn();
            for (int i = 0; i < flavors.length; i++) {
                if ((DataFlavor.stringFlavor.equals(flavors))&& (selColIndex !=0)) {
    return true;
    return false;
    }//TableTransferHandler classpublic class TableTransferHandler extends StringTransferHandler {
    private int[] rows = null;
    private int addIndex = -1; //Location where items were added
    private int addCount = 0; //Number of items added.
    protected String exportString(JComponent c) {
    JTable table = (JTable)c;
    rows = table.getSelectedRows();
    StringBuffer buff = new StringBuffer();
    int selRowIndex = table.getSelectedRow();
    int selColIndex = table.getSelectedColumn();
    String val = table.getValueAt(selRowIndex,selColIndex).toString();
    buff.append(val);
    return buff.toString();
    protected void importString(JComponent c, String str) {
    JTable target = (JTable)c;
    DefaultTableModel model = (DefaultTableModel)target.getModel();
    //int index = target.getSelectedRow();
    int row = target.getSelectedRow();
    int column = target.getSelectedColumn();
    target.setValueAt(str, row, column);
    protected void cleanup(JComponent c, boolean remove) {
    }Now I want to put in the following functionality into my program...
    [1]prevent dragging and dropping text in to the same table.That means I dont want to drag a cell content from Table1  and drop to another cell in Table1. Want to drag and drop cell content only from Table1 to Table2.
    [2]Change cursor on a un-defined Target. That means how to prevent a drag from a particular column in Table1.Also how to prevent a drop to a particular column in Table2. How to change the cursor to a "NO-DRAG" cursoror "NO-DROP" cursor.
    Could it be done using Drag Source Listener and drop Target Listener?.
    If yes,How can these listeners attached to the table and how to do it?
    If No,How Could it be done?
    [3]Want to change the background colour of the cell being dragged and also the background colour of the target cell where the drop is made...
    [4]Is there any out of the box way to make an undo in the target cell(where drop was made) so that the old cell value is brought back.
    How can I extend my code to take care of the above said things.
    Any help or suggestions is greatly appreciated.....
    Edited by: Kohinoor on Jan 17, 2008 10:58 AM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Unable to get the file system information for: \\****servername\E$\; error = 64 Unable to distribute content to DP

    One of our DPs has stopped loading content. 
    I've research for quite a bit and cannot find a clear cut reason to this.  This server only has a DP role, I verified sharing permissions, all looked good. This DP has been running just fine for the last year or so and all sudden it will no longer load
    packages.  The disk drive is still present I can still reach the hidden share \\servername.com\E$
    Verified that the SMSSIG$ folder is there and the last entry is from 4/23/2015 
    SCCM 2012 R2 
    OS 2008 R2 Standard
    Any help is greatly appreciated!
    Here's a snipit from the distmgr.log
    Start updating the package on server ["Display=\\*****.com\"]MSWNET:["SMS_SITE=1AB"]\\*****.com\...
    Attempting to add or update a package on a distribution point.
    Will wait for 1 threads to end.
    Thread Handle = 0000000000001E48
    STATMSG: ID=2342 SEV=I LEV=M SOURCE="SMS Server" COMP="SMS_DISTRIBUTION_MANAGER" SYS=***.com SITE=1AB PID=2472 TID=8252 GMTDATE=Thu Apr 30 19:12:01.972 2015 ISTR0="SYSMGMT Source" ISTR1="["Display=\\*****.com\"]MSWNET:["SMS_SITE=1AB"]\\*****.com\"
    ISTR2="" ISTR3="" ISTR4="" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=2 AID0=400 AVAL0="CAS00087" AID1=404 AVAL1="["Display=\\*****.com\"]MSWNET:["SMS_SITE=1AB"]\\*****.com\"
    SMS_DISTRIBUTION_MANAGER 4/30/2015 2:12:01 PM
    8252 (0x203C)
    The current user context will be used for connecting to ["Display=\\*****.com\"]MSWNET:["SMS_SITE=1AB"]\\*****.com\.
    Successfully made a network connection to \\*****.com\ADMIN$.
    Ignoring drive \\*****.com\C$\.  File \\*****.com\C$\NO_SMS_ON_DRIVE.SMS exists.
    Unable to get the file system information for: \\*****.com\E$\; error = 64.
    Failed to find a valid drive on the distribution point ["Display=\\*****.com\"]MSWNET:["SMS_SITE=1AB"]\\*****.com\
    Cannot find or create the signature share.
    STATMSG: ID=2324 SEV=E LEV=M SOURCE="SMS Server" COMP="SMS_DISTRIBUTION_MANAGER" SYS=sccmprdpr1sec2.mmm.com SITE=1AB PID=2472 TID=8252 GMTDATE=Thu Apr 30 19:12:55.206 2015 ISTR0="["Display=\\*****.com\"]MSWNET:["SMS_SITE=1AB"]\\*****.com\"
    ISTR1="CAS00087" ISTR2="" ISTR3="30" ISTR4="94" ISTR5="" ISTR6="" ISTR7="" ISTR8="" ISTR9="" NUMATTRS=2 AID0=400 AVAL0="CAS00087" AID1=404 AVAL1="["Display=\\*****.com\"]MSWNET:["SMS_SITE=1AB"]\\*****.com\"
    Error occurred. Performing error cleanup prior to returning.
    Cancelling network connection to \\*****.com\ADMIN$.

    Error 64 is being returned which is simply "the network name is no longer available".
    There can be a number of reasons for this from SMB compatibility issues (2003 servers wont support SMB2), to the expected and actual computer name of the boxes don't match (tries to authenticate with server.tld.com when the actual name is srv-01.tld.com and
    you just put a C-name in). I'd start from the top:  Try opening said share from the Primary Site server as that's the box doing the work.  Verify the IP and computer name is legit and that no one has played ACL games between the two systems (remember
    RPC only initiates/listens on port 135 but established connections are up in the dynamic port range).
    At the end of the day it's an issues "underneath" SCCM, and not an SCCM problem specifically. 

  • Best Practice to clean up WSUS content no longer needed

    I have been researching this for days and probably have about 10 hours invested in trying to come to a conclusion and now want some feedback from this group. Below you will find everything I think you might need about my current configuration. I originally
    installed my first WSUS server in 2006.Over the years I added new products as needed, changed to express files (seems to have been a bad decision), unselected products no longer needed, and when version 3 came out began running the cleanup wizard monthly.
    I have never declined any updates myself and only approved those showing as needed. I watched my content grow to about 65 GB then decided to migrate to a new server. I followed this procedure which worked very well:
    http://exchangeserverpro.com/how-to-move-wsus-30-to-a-new-server
    After the migration I tested a round of updates and everything was working fine. Then I added Windows Server 2008 (only have one server with this OS) and SQL Server 2008 R2 (only have one server with this OS) products and was amazed when my content went
    up to over 100 GB. I decided to remove those two products since only one server needs them and I could update it direct from MS instead thinking it would be easy to recover the space. Was I in for a surprise. No real easy way to do that. From my research these
    seem to be the options to do a good clean up on all unneeded content. What do you suggest as the best way for me to proceed?
    Option 1: uninstall and re-install fresh
    Option 2: reset the content following this procedure:
    http://blogs.technet.com/b/gborger/archive/2009/02/27/what-to-do-when-your-wsuscontent-folder-grows-too-large.aspx
    Option 3: reset the content following this procedure: (I tested this on my old server and steps 1-4 took about 90 minutes)
    1. Decline all previously approved updates. (Yes, all of them. Even the ones you want.)
    2. Run the cleanup wizard -- this will remove files in the WsusContent folder.
    3. Change the approval of all DECLINED updates from declined to "Not Approved" (and apply inheritance).
    4. Run the cleanup wizard again -- this will decline all expired updates.
    5. Re-approve needed updates. Content will be re-downloaded.
    I do plan to remove the express files option first to reduce the amount of space needed for storage. If you see anything else in my config that should be tweaked please let me know. Thanks for any and all feedback. I appreciate you taking the time to read
    this and respond.
    My configuration follows:
    1 Gbps switched network infrastructure with 10/10 fiber internet access
    WSUS – current environment – 1 physical server also used as a file share server for user files
    Windows Server 2008 Enterprise (x86)
    Dual Intel Xeon 2.8 Ghz
    2 GB Ram
    1 Gbps Nic
    136 GB hard drive for DB and WSUS Content files (currently DB=1.5 GB, Content = 108 GB)
    WSUS Server version: 3.2.7600.226
    Using the Windows Internal Database (I do have a SQL Server 2008 R2 server available now)
    128 Computers in 13 groups manually assigned but computers are directed to this server via GP
    (all Servers and 90% of workstations are current on updates through last month)
    3189 Updates installed/NA
    139 Updates needed
    919 Updates with no status
    Configuration options:
    Update source – Microsoft
    Products – Office 2003, Office 2010, Windows 7, Windows Defender, Windows Server 2003, Windows Server 2008 R2, Windows XP (previously selected but no longer needed: Office 2002/XP, SQL Server 2008 R2, Windows 2000, Windows Server 2008)
    Classifications – critical, definition, security, service packs, update rollups, updates
    Update files and languages – store locally, download only when approved, download express installation files, English
    Automatic approvals – above classifications for test group which includes one computer with each of the following OS’s: Windows 7, Windows Server 2003, Windows Server 2008 R2, Windows XP
    After those machines are tested then I approve and install needed updates for the server group (8 machines total) which include Windows Server 2003, Windows Server 2003 R2, Windows Server 2008 R2, Windows XP
    After those machines are tested then I approve needed updates for all computers and let the users install them

    Hi Lawrence,
    How did you go with creating the FAQ?
    Shortly after this thread was last active, I was acquired by SolarWinds, and shortly after that we created PatchZone.org. I've published a lot of this "FAQ" information as blog posts to that site. If you know of anything that's missing, please let me know.
    It seems that finding definitive information on doing "proper" maintenance on WSUS is still hard to find and conflicting.
    I don't know about "conflicting"; the process is pretty straight forward. But it has been hard to find. Truth is, until a couple of years ago it wasn't even required, but the voluminous number of updates now published in the catalog make it necessary. I posted
    a series of blog articles at patchzone.org addressing this very issue.
    Here in Australia the majority of businesses are on download limits with ISPs, so we have to be very careful about what we do with cleaning up WSUS, as it can lead to expensive excess data charges!
    Cleaning up WSUS will **NEVER** lead to excessive data charges; failing to properly administer and manage the server absolutely will do that!
    If you decline the updates that are no longer needed in your environment, isn't there a risk that, should somebody join or re-join an old computer to the network, the computer will never be identified as needing potentially critical updates? Would it be
    a better option to change approved updates, that are no longer needed, to unapproved?
    Absolutely! A critical observation, in fact. This is why only updates that are
    superseded should ever be declined. Updates that are NOT superseded should not be declined, but merely left in a NotApproved state so that if a computer is introduced to the network that requires one of those updates, you would be able to readily determine
    that fact.
    Surely this would mean the update will still be cleared out after running the clean-up wizard, but, should somebody attach or reattach an old computer to the network it will still be identified and targeted for the correct updates?
    Actually, no. Only if you explicitly decline an update, or if the Server Cleanup Wizard declines an update, will the files associated with that update be physically removed from the filesystem. If you merely remove the approvals, the files previously downloaded
    will remain. This, then, brings attention to the conditions under which the Server Cleanup Wizard will DECLINE an update. In order for the Server Cleanup Wizard to decline an update it must either be expired or superseded. Furthermore, superseded updates must
    be NotApproved, the replacement update must be Approved, and the superseded update must have been 100% Installed/NotApplicable for at least 30 days.
    Lawrence Garvin, M.S., MCSA, MCITP:EA, MCDBA
    SolarWinds Head Geek
    Microsoft MVP - Software Packaging, Deployment & Servicing (2005-2014)
    My MVP Profile: http://mvp.microsoft.com/en-us/mvp/Lawrence%20R%20Garvin-32101
    http://www.solarwinds.com/gotmicrosoft
    The views expressed on this post are mine and do not necessarily reflect the views of SolarWinds.

  • How do I get out of kernel panic?  kernel panic upon boot.  I did that hard drive cleanup and reinstalled Lion.  What about memory?  Anyone think I need to upgrade my memory?  I have 8gig.

    I get kernel paic upon boot.  I did that hard drive cleanup and reinstalled Lion.  What about memory?  Anyone think I need to upgrade my memory?  I have 8 G of upgraded RAM. (20 inch iMac core 2 duo)

    If you're able to boot, launch the Console application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ If you’re running Mac OS X 10.7 or later, open LaunchPad. Click Utilities, then Console in the page that opens.
    Select the most recent panic log under System Diagnostic Reports. Post the contents — the text, please, not a screenshot. For privacy’s sake, I suggest you edit out the “Anonymous UUID,” a long string of letters, numbers, and dashes in the header and body of the report, if it’s present (it may not be.) Please don't post "shutdownStall" or "hang" reports.
    If you can't boot in the usual way, try a safe boot. The instructions provided by Apple are as follows:
    Be sure your Mac is shut down.
    Press the power button.
    Immediately after you hear the startup tone, hold the Shift key. The Shift key should be held as soon as possible after the startup tone, but not before the tone.
    Release the Shift key when you see the gray Apple icon and the progress indicator (looks like a spinning gear).
    During startup, you’ll see a progress bar, and then the login screen, which appears even if you normally log in automatically. You must know your login password in order to log in. If you’ve forgotten the password, you will need to reset it before you begin.
    Safe mode is slower than normal, and some things won’t work at all.
    Note: If FileVault is enabled under Mac OS X 10.7 or later, you can’t boot in safe mode.

  • WSUS Best practice for cleanup order?

    Hi All,
    I have a Win 2012 WSUS install that initially grew large and the Server Cleanup Wizard would fail when running all of the available options together. I believe I have worked out the best order to run the cleanup options from a GUI:
    Expired updates & Superseded updates
    Unused updates and update revisions
    Unneeded update files
    Additionally to this I routinely decline 'superseded updates' and 'superseded updates that also supersede an update'. Note I wasn't running the 'Computers not contacting the server' option as I currently only have 30 machines connected. So now I have a healthy
    running system.
    I'm now looking at having a large influx of connected devices and as such will start using the 'Computers not contacting the server' option. I am looking to leverage Powershell to automate the cleanup action and schedule it to occur before
    the next synchronisation. Powershell offers an extra option (CompressUpdates) to compact the database.
    I'm not sure if this did run or not when using the GUI Server Cleanup Wizard and if so under what guise?
    So I am thinking the logical order would now be:
    Get-WsusServer | Invoke-WsusServerCleanup -CleanupObsoleteComputers
    Get-WsusServer | Invoke-WsusServerCleanup -DeclineSupersededUpdates -DeclineExpiredUpdates
    Get-WsusServer | Invoke-WsusServerCleanup -CleanupObsoleteUpdates
    Get-WsusServer | Invoke-WsusServerCleanup -CleanupUnneededContentFiles
    Get-WsusServer | Invoke-WsusServerCleanup -CompressUpdatese:
    This way it gets rid of any clients it doesn't need to track anymore -> declines updates that it can -> deletes obsolete updates -> removes physical files -> compresses the newly cut down database.
    Would you agree or is there a difference of opinion out there? Please give reasoning.
    FYI - My WSUS is servicing XP/7/8/2012 clients just in case that makes any difference.
    I did search regarding this but nothing answered in regards to using Powershell options. There was a training video link that Lawrence Garvin posted but it no longer works, not sure if that may have contained the answers.
    Kind Regards

    I did search regarding this but nothing answered in regards to using Powershell options.
    PowerShell is a relatively new capability for launching these cleanup tasks, but functionally no different than doing it via the API or using the UI.
    There was a training video link that Lawrence Garvin posted but it no longer works, not sure if that may have contained the answers.
    It might have. If you can provide the link, I'll see what I can do to get some replacement content online somewhere. My guess is that it's a link to an old webcast. I have the videos of those webcasts, and I'm working on getting clearance to re-do the slides
    and repost the revised videos. Also, I'm presenting on WSUS at SpiceWorld Austin next month, and I'll be covering server maintenance in that session.
    Lawrence Garvin, M.S., MCSA, MCITP:EA, MCDBA
    SolarWinds Head Geek
    Microsoft MVP - Software Packaging, Deployment & Servicing (2005-2014)
    My MVP Profile: http://mvp.microsoft.com/en-us/mvp/Lawrence%20R%20Garvin-32101
    http://www.solarwinds.com/gotmicrosoft
    The views expressed on this post are mine and do not necessarily reflect the views of SolarWinds.
    Thanks for the reply.
    I just figured PowerShell running the commands instead of UI would lessen the pocessor usage; my UI is run from another Hyper-v client on the same host server as we are still running XP on our PCs (not happy about it).
    Here is tutorial video by Lawrence which may help you for management:https://www.eminentware.com/cs2008/media/10/default.aspx
    The specific videos of interest in this scenario are at:
    https://www.eminentware.com/cs2008/media/p/216.aspx
    and
    https://www.eminentware.com/cs2008/media/p/784.aspx
    If only I wasn't in Australia I'd come say g'day in Austin ;)
    Cheers.

  • Best Practice for Expired updates cleanup in SCCM 2012 SP1 R2

    Hello,
    I am looking for assistance in finding a best practice method for dealing with expired updates in SCCM SP1 R2. I have read a blog post: http://blogs.technet.com/b/configmgrteam/archive/2012/04/12/software-update-content-cleanup-in-system-center-2012-configuration-manager.aspx
    I have been led to believe there may be a better method, or a more up to date best practice process in dealing with expired updates.
    On one side I was hoping to keep a software update group intact, to have a history of what was deployed, but also wanting to keep things clean and avoid issues down the road as i used to in 2007 with expired updates.
    Any assistance would be greatly appreciated!
    Thanks,
    Sean

    The best idea is still to remove expired updates from software update groups. The process describes in that post is still how it works. That also means that if you don't remove the expired updates from your software update groups the expired updates will
    still show...
    To automatically remove the expired updates from a software update group, have a look at this script:
    http://www.scconfigmgr.com/2014/11/18/remove-expired-and-superseded-updates-from-a-software-update-group-with-powershell/
    My Blog: http://www.petervanderwoude.nl/
    Follow me on twitter: pvanderwoude

Maybe you are looking for