Showing posts with label Sharepoint. Show all posts
Showing posts with label Sharepoint. Show all posts

Monday, January 28, 2019

Powershell to replace string in infopath in SharePoint Document library

So here is a simple/dirty script to update the files in your document library.  this particular script is for infopath documents with the template pointing to the wrong url after a migration

Add-PSSnapin *sharepoint* -EA SilentlyContinue

$web = Get-SpWeb https://url

#find your list (your call on what method to use
$list = $web.Lists[0] 

$oldstring = "https://url/libraryname/Forms/template.xsn"

$newstring = "https://url/Newlibraryname/Forms/template.xsn"

foreach($i in $list.Items)
{
  if($i.Title.Contains('.xml'))
  {
     $data = [System.Text.Encoding]::ASCII.GetString($i.File.OpenBinary())
     if($data.Contains($oldstring)
     {
         $data = $data.Replace($oldstring, $newstring)
       
          $i.File.SaveBinary([System.Text.Encoding]::ASCII.GetBytes($data))
      }
  }

}

Calling SharePoint from Adobe Experience manager workflow issues and lessons learned

AEM or Adobe Experience Manager (on jboss) has an out of the box activities to connect to SharePoint and upload files and update properties.

There are a few configuration issues in the documentation and a bug (verson 6.4).

NTLM authenticate does not work.   Only Basic or kerberos works. 

if you are having issues with the SSL call to sharepoint from AEM activity in the Process Design tool:

  1. user name always needs to have the domain name\username 
    1. yes, the domain name field still needs to be filled in. 
  2. the admin UI for the Trust Store Management/Certificates for root certs, this does not put the root cert chain to the certificate chain store. 
    1. it needs to be in the aemformses.keystore
    2. you will need the password that you used when you configured the AEM server for the certificate if you chose use SSL for the jboss.
    3. you will need to run the command: keytool -import -trustcacerts -keystore "AEM install location\jboss\standalone\configuration\aemformses.keystore" -file "location of root cert\Name of cert.cer"
      1. type in you keypass or you can add the -keypass to above command with the password (from line above)
errors you will see if this is not configured correctly:

  • sun.security.validator.ValidatorException PKIX path building failure
  • unable to find valid certificate path to requested target

Tuesday, April 5, 2016

Powershell script to generate powershell script to toggle publish feature

Add-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$url = {your url here}
$site = get-spsite $url
$feature = $site.features.Item('f6924d36-2fa8-4f0b-b16d-06b7250180fa')
        
    if($feature -ne $null)
       {
            $ConfirmPreference = 'None'
       #     $feature
       #     Write-Host Disable-SPFeature -Identity $feature.DefinitionId -Url $site.Url -Force  -WarningAction SilentlyContinue
            Write-Host enable-SPFeature  -Identity $feature.DefinitionId -Url $site.Url  -Force   -WarningAction SilentlyContinue
      
       }
foreach($w in $site.AllWebs)
{
  #  Write-Host '#--------------------------------------------------------------------------------------'
  #  $w.Url
    $feature = $w.features.Item('94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb')
        
    if($feature -ne $null)
       {
       $ConfirmPreference = 'None'
         #   $feature
         #  Write-Host  Disable-SPFeature -Identity $feature.DefinitionId -Url $w.Url -Force  -WarningAction SilentlyContinue
            Write-Host enable-SPFeature  -Identity $feature.DefinitionId -Url $w.Url  -Force   -WarningAction SilentlyContinue
      
       }

}

Tuesday, March 3, 2015

Sharepoint how to accept a blank choice after the user inputs a choice column value

So a user had encountered an issue of creating a choice column but they want to set it to blank but the system does not allow them to save the blank value.

The column is A choice type with Yes/No.

  • Require that this column contains a value:  No
  • Choices
    • Yes
    • No
  • Display choices using:
    • Drop-Down Menu
  • Allow 'Fill-in' Choices:  Yes
  • Default value:  can be left blank

The user is allowed to save Yes/No or blank since the field is not required but when a user saves a value then the user is not allow to clear the selection.

so to resolve this the key is to allow the 'Fill-in' choices option to YES.

then in the validation formula:
=IF([column name]="", TRUE, IF([column name]="Yes", TRUE, IF([column name]="No", TRUE, FALSE)))

so for example:  if a field is called Have Driver License then the formula would look like the following:
=IF([Have Driver License]="", TRUE, IF([Have Driver License]="Yes", TRUE, IF([Have Driver License]="No", TRUE, FALSE)))

Wednesday, September 17, 2014

SharePoint Configuration wizard error after an Cummulative Update (CU) or service pack (SP) install: Solution Dismount database then run wizard then remount DB



When you have large content databases on your web application, the Configuration Wizard can error out or just never seem to finish.




If that is the case, you can un-mount the content databases then run the wizard, then re-mount the databases with the script that is produced by the script below.  don't forget to replace the <<DatabaseServer>>   with your database server name.  ex.  mySQLServer.mydomain.com
and


















Add-PSSnapin Microsoft.SharePoint.Powershell


$data = Get-SPContentDatabase


foreach($d in $data)
{
    write-host 'Dismount-SPContentDatabase -Identity' $d.Id ' -WarningAction SilentlyContinue'
}

foreach($d in $data)
{
    write-host 'Mount-SPContentDatabase -Name '$d.Name '-WebApplication '$d.WebApplication.Url' -DatabaseServer <<DatabaseServer>> -WarningAction SilentlyContinue'
}


Thursday, December 5, 2013

Fix a Secure Store service or any SharePoint service stuck on starting or stopping

change the "Server Name" in the script.  To stop change Provision() to UnProvision()

one thing to note is that if the status is provisioning, then you'll most likely need to Provision() then UnProvision().

Also all you need to do is get the service instance for other services by the type or name. 

--------------------------------------------------------------
add-pssnapin MIcrosoft.SharePoint.Powershell

Function MatchComputerName($computersList, $computerName)
{
                If ($computersList -like "*$computerName*") { Return $true; }
    foreach ($v in $computersList) {
      If ($v.Contains("*") -or $v.Contains("#")) {
            # wildcard processing
            foreach ($item in -split $v) {
                $item = $item -replace "#", "[\d]"
                $item = $item -replace "\*", "[\S]*"
                if ($computerName -match $item) {return $true;}
            }
        }
    }
}

           $secureStoreServiceInstances = Get-SPServiceInstance | ? {$_.GetType().Equals([Microsoft.Office.SecureStoreService.Server.SecureStoreServiceInstance])}
            $secureStoreServiceInstance = $secureStoreServiceInstances | ? {MatchComputerName $_.Server.Address "Server Name"}
           
            Write-HOst $secureStoreServiceInstance.Status

            $secureStoreServiceInstance.Provision()

Thursday, October 31, 2013

Powershell to list all webs with UI version 3 for sharepoint 2013 upgrade purpose


Add-Pssnapin Microsoft.SharePoint.Powershell
 
$s | Get-SPSite -limit all | ForEach-Object {$site =$_;

$site | Get-SPWeb -limit all | ForEach-Object {

if($_.UIVersion -eq 3)

{

write-host "UI version : " $_.UIVersion  $_.Url

}

}}

SharePoint 2010 and Project Web app error provisioning

Had a strange error the other day with provisioning a Project Web Application (PWA).  

The errors didn't really say much except these three event log items.  Errors below. 

To resolve I have to create the PWA site on another environment and then do a back up and restore to a site collection in the environment that was breaking.   then run the provisioning on central admin.  Everything works great after. 


- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

- <System>

<Provider Name="Microsoft-SharePoint Products-Project Server" Guid="{B2178104-...}" />

<EventID>7381</EventID>

<Version>14</Version>

<Level>2</Level>

<Task>20</Task>

<Opcode>0</Opcode>

<Keywords>0x4000000000000000</Keywords>

<TimeCreated SystemTime="2013-10-23T21:08:38.396865600Z" />

<EventRecordID>251151</EventRecordID>

<Correlation ActivityID="{DE39B42B...}" />

<Execution ProcessID="7972" ThreadID="4988" />

<Channel>Application</Channel>

<Computer>xxx.domain.com</Computer>

<Security UserID="S-1-5..." />

</System>

<EventData />

</Event>
-----------------------------------------------------------------
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

- <System>

<Provider Name="Microsoft-SharePoint Products-Project Server" Guid="{B2178104..}" />

<EventID>6966</EventID>

<Version>14</Version>

<Level>2</Level>

<Task>20</Task>

<Opcode>0</Opcode>

<Keywords>0x4000000000000000</Keywords>

<TimeCreated SystemTime="2013-10-23T21:08:39.100031100Z" />

<EventRecordID>251152</EventRecordID>

<Correlation ActivityID="{DE39B42B...}" />

<Execution ProcessID="7972" ThreadID="4988" />

<Channel>Application</Channel>

<Computer>xxx.domain.com</Computer>

<Security UserID="S-1-5..." />

</System>

- <EventData>

<Data Name="string0">PW</Data>

<Data Name="string1">Microsoft.Office.Project.Server.Administration.ProvisionException: Post provisioning setup failed. at Microsoft.Office.Project.Server.Administration.PsiServiceApplication.CreateSite(ProjectProvisionSettings provset)</Data>

</EventData>

</Event>
-------------------------------------------------------------------------------------------------
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">

- <System>

<Provider Name="Microsoft-SharePoint Products-Project Server" Guid="{B2178104...}" />

<EventID>6971</EventID>

<Version>14</Version>

<Level>2</Level>

<Task>20</Task>

<Opcode>0</Opcode>

<Keywords>0x4000000000000000</Keywords>

<TimeCreated SystemTime="2013-10-25T18:11:34.919153600Z" />

<EventRecordID>252921</EventRecordID>

<Correlation ActivityID="{27BA856F...}" />

<Execution ProcessID="9040" ThreadID="2700" />

<Channel>Application</Channel>

<Computer>xxx.domain.com</Computer>

<Security UserID="S-1-5..." />

</System>

- <EventData>

<Data Name="string0">/PWA</Data>

<Data Name="string1">Microsoft.Office.Project.Server.Administration.ProvisionException: Post provisioning setup failed. at Microsoft.Office.Project.Server.Administration.PsiServiceApplication.CreateSite(ProjectProvisionSettings provset)</Data>

</EventData>

</Event>

Thursday, October 17, 2013

Simple powershell to set key/value pair in the web application properties

-Don't forget to add the snap in if not using the sharepoint ps console.

function SetPropertyBag ($webAppUrl, $key, $value) {

    $spwebApp=Get-SPWebApplication -Identity $webAppUrl
    Write $spwebApp

    if($spwebApp.AllProperties.ContainsKey($key) -eq $False)
    {
        $spwebApp.AllProperties.Add($key,$value);      
    }
    else
    {$spwebApp.AllProperties[$key]=$value; }

    Write-Host -foregroundcolor Green "value set in "  $key  " = "  $spwebApp.AllProperties[$key]  

    }

$webAppUrl= Read-Host 'Enter the web application url';

$keystring= Read-Host 'Enter the key string';
$valuestring= Read-Host 'Enter the value string';
SetPropertyBag $webAppUrl $keystring $valuestring;

Friday, August 16, 2013

SharePoint CAML query to get Todays events in calendar list

<Query>
    <OrderBy>
<FieldRef Name="EventDate"/>
</OrderBy>
<Where>
<And>
<DateRangesOverlap>
<FieldRef Name="EventDate"/>
<FieldRef Name="EndDate"/>
<FieldRef Name="RecurrenceID"/>
<Value Type="DateTime" IncludeTimeValue="False">
       <Today/>
                </Value>
            </DateRangesOverlap>
            <Lt>
                <FieldRef Name="EventDate"/>
                <Value Type="DateTime">
                   <Today/>
                </Value>
            </Lt>
        </And>
    </Where>
    <QueryOptions>
        <IncludeMandatoryColumns>false</IncludeMandatoryColumns>
        <ViewAttributes Scope="Recursive"/>
        <RecurrencePatternXMLVersion>v3</RecurrencePatternXMLVersion>
        <ExpandRecurrence>true</ExpandRecurrence>
        <RecurrenceOrderBy>true</RecurrenceOrderBy>
        <ViewAttributes Scope="RecursiveAll"/>
        <CalendarDate>
        <Today/>
        </CalendarDate>
    </QueryOptions>
</Query>

Thursday, June 27, 2013

Powershell to export all farm solutions

Add-PSSnapin Microsoft.SharePoint.PowerShell –erroraction SilentlyContinue

## setup our output directory
$dirName = "d:\Exported Solutions"

Write-Host Exporting solutions to $dirName
foreach ($solution in Get-SPSolution)
{
    $id = $Solution.SolutionID
    $title = $Solution.Name
    $filename = $Solution.SolutionFile.Name

    Write-Host "Exporting ‘$title’ to …\$filename" -nonewline
    try {
        $solution.SolutionFile.SaveAs("$dirName\$filename")
        Write-Host " – done" -foreground green
    }
    catch
    {
        Write-Host " – error : $_" -foreground red
    }

}

Thursday, May 24, 2012

SSIS sharepoint Codeplex error: The HTTP request is unauthorized with client authentication scheme 'Ntlm'

SSIS sharepoint Codeplex error with having multiple authentication methods in one authentication provider.   ie.  NTLM and FBA

The error below:

[SharePoint List Source [1]] Error: System.ServiceModel.Security.MessageSecurityException: The HTTP request is unauthorized with client authentication scheme 'Ntlm'. The authentication header received from the server was 'NTLM'. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
at System.Net.HttpWebRequest.GetResponse()
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
--- End of inner exception stack trace ---

Server stack trace: 
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest request, HttpWebResponse response, WebException responseException, HttpChannelFactory factory)
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException)
at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.ListsService.ListsSoap.GetListAndView(GetListAndViewRequest request)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.ListsService.ListsSoapClient.ListsService_ListsSoap_GetListAndView(GetListAndViewRequest request)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.ListsService.ListsSoapClient.GetListAndView(String listName, String viewName)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.Adapter.ListsAdapter.GetSharePointList(String listName, String viewId)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.Adapter.ListsAdapter.GetSharePointFields(String listName, String viewId)
at Microsoft.Samples.SqlServer.SSIS.SharePointUtility.ListServiceUtility.GetFields(Uri sharepointUri, NetworkCredential credentials, String listName, String viewName)
at Microsoft.Samples.SqlServer.SSIS.SharePointListAdapters.SharePointListSource.GetAccessibleSharePointColumns(String sharepointUrl, String listName, String viewName)
at Microsoft.Samples.SqlServer.SSIS.SharePointListAdapters.SharePointListSource.ValidateSharePointColumns()
at Microsoft.Samples.SqlServer.SSIS.SharePointListAdapters.SharePointListSource.Validate()
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostValidate(IDTSManagedComponentWrapper100 wrapper)


To fix:
Need to change the code in the ListsAdapter.vb and ViewsAdapter.vb in the SharePointUtility project.  
add the following function:


 Private Sub AddCustomHeader(ByVal scope As System.ServiceModel.OperationContextScope)
            Dim reqprop As System.ServiceModel.Channels.HttpRequestMessageProperty = New System.ServiceModel.Channels.HttpRequestMessageProperty()

            reqprop.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f")
            System.ServiceModel.OperationContext.Current.OutgoingMessageProperties(System.ServiceModel.Channels.HttpRequestMessageProperty.Name) = reqprop

        End Sub

To the end of the method ResetConnection():
for example:


Private Sub ResetConnection()
            ' Setup the binding with some enlarged buffers for SharePoint
            Dim binding = New BasicHttpBinding()


            ' Change the security mode if we're using http vs https
            If (_sharepointUri.Scheme.ToLower() = "http") Then
                binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly
            ElseIf (_sharepointUri.Scheme.ToLower() = "https") Then
                binding.Security.Mode = BasicHttpSecurityMode.Transport
            Else
                Throw New ArgumentException("Sharpeoint URL Scheme is not recognized: " + _sharepointUri.Scheme)
            End If


            ' Send credentials and adjust the buffer sizes (SharePoint can send big packets of data)
            binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm
            binding.MaxReceivedMessageSize = Int32.MaxValue
            binding.ReaderQuotas.MaxBytesPerRead = Int32.MaxValue
            binding.ReaderQuotas.MaxArrayLength = Int32.MaxValue
            binding.ReaderQuotas.MaxDepth = Int32.MaxValue
            binding.ReaderQuotas.MaxNameTableCharCount = Int32.MaxValue
            binding.ReaderQuotas.MaxStringContentLength = Int32.MaxValue


            binding.OpenTimeout = New TimeSpan(24, 0, 0)
            binding.CloseTimeout = New TimeSpan(24, 0, 0)
            binding.ReceiveTimeout = New TimeSpan(24, 0, 0)
            binding.SendTimeout = New TimeSpan(24, 0, 0)


            ' Create the client with the given settings
            Dim ep = New EndpointAddress(_sharepointUri)


            ' Create the client object
            If (Not _sharepointClient Is Nothing) Then
                Dim dispose As IDisposable = _sharepointClient
                dispose.Dispose()
                _sharepointClient = Nothing
            End If
            _sharepointClient = New ViewsService.ViewsSoapClient(binding, ep)


            ' Only need to add this once, the endpoint will be shared for future instances
            Dim clientCredentials As Description.ClientCredentials = _
                (From e In _sharepointClient.Endpoint.Behaviors _
                 Where TypeOf (e) Is Description.ClientCredentials).Single()
            clientCredentials.Windows.AllowedImpersonationLevel = _
                TokenImpersonationLevel.Impersonation


            clientCredentials.Windows.ClientCredential = _credential


            AddCustomHeader(New System.ServiceModel.OperationContextScope(_sharepointClient.InnerChannel))


        End Sub

Monday, February 27, 2012

Shrink database transaction logs script:

SharePoint tranaction logs can get out of control so if needed run this to truncate all user database logs or just tweek it to select the @sql and run the sql for a particular database.    Very simple.    This will only truncate the none active portion of the transaction log so if you are running this while there is no activity then I recommend setting the initial size to be bigger than the default 1 MB after running the script or uncomment the alter database script below to change the size of the log file.  

Hope this helps. 

-----------------------------------------------------------------------------------------------------------

SET NOCOUNT ON

CREATE TABLE #TransactionLogFiles (
DBName VARCHAR(150),
LogFileName VARCHAR(150)
)

DECLARE DBList CURSOR FOR
SELECT name FROM master..sysdatabases
WHERE name NOT IN ('master','tempdb','model','msdb','distribution')
AND status & 512 = 0

DECLARE @DB VARCHAR(100)
DECLARE @SQL VARCHAR(8000)

OPEN DBList
FETCH NEXT FROM DBList INTO @DB WHILE @@FETCH_STATUS <> -1
BEGIN
SET @SQL = 'USE [' + @DB + '] INSERT INTO #TransactionLogFiles(DBName, LogFileName) SELECT '''+ @DB + ''', RTRIM(Name) FROM sysfiles WHERE FileID=2'
EXEC(@SQL)
FETCH NEXT FROM DBList INTO @DB
END

DEALLOCATE DBList

DECLARE TranLogList CURSOR FOR
SELECT DBName, LogFileName FROM #TransactionLogFiles
DECLARE @LogFile VARCHAR(100)

OPEN TranLogList
FETCH NEXT FROM TranLogList INTO @DB, @LogFile WHILE @@FETCH_STATUS <> -1
BEGIN
SELECT @SQL = 'EXEC sp_dbOption [' + @DB + '], ''trunc. log on chkpt.'', ''True'''
EXEC (@SQL)
SELECT @SQL = 'USE [' + @DB + '] DBCC SHRINKFILE(''' + @LogFile + ''',''truncateonly'') WITH NO_INFOMSGS'
EXEC (@SQL)
SELECT @SQL = 'EXEC sp_dbOption [' + @DB + '], ''trunc. log on chkpt.'', ''False'''
EXEC(@SQL)

/*

if( exists (select [name] from master..sysdatabases where @DB in ('AnalyticsReporting',  'Farm_Config')))
begin
 SELECT @SQL = 'ALTER DATABASE[' + @DB + '] MODIFY FILE ( NAME = ' + @LogFile + ', SIZE = 8000MB ) '
 EXEC(@SQL)
end

*/

FETCH NEXT FROM TranLogList INTO @DB, @LogFile
END

DEALLOCATE TranLogList
DROP TABLE #TransactionLogFiles
_thank you for the script to =JR=.  

Friday, December 23, 2011

Sharepoint and PDF ifilter

Simple to set up.

1.Install PDF iFilter 9.0 (64 bit) from http://www.adobe.com/support/downloads/detail.jsp?ftpID=4025 (http://www.adobe.com/support/downloads/detail.jsp?ftpID=4025)
2.Download PDF icon picture from Adobe web site http://www.adobe.com/misc/linking.html (http://www.adobe.com/misc/linking.html)  and copy to C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES\
3.Add the following entry in docIcon.xml file, which can be found at: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML
<Mapping Key="pdf" Value="pdf16.gif" />
4.Add pdf file type on the File Type page under Search Service Application
5.Open regedit
6. Copy the following to a file and save with a reg extension.  ex.  sharepoint.reg. 
-------------------
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\14.0\Search\Setup\ContentIndexCommon\Filters\Extension\.pdf]
@="{E8978DA6-047F-4E3D-9C78-CDBE46041603}"
--------------------

•Restart the SharePoint Server Search 14
•Reboot the SharePoint servers in Farm
•Create a Test site (with any out-of-box site template) and create a document library upload any sample PDF document(s).
•Perform FULL Crawl to get search result.

Performance issues with Infopath and Sharepoint Lists

In a data connection, if you check "Automatically retrieve data when the form is opened",  make sure that it is not a large list.  The underlying query pulls all the items from that list.  Also this option is checked by default. 

Even if this connection might be used to insert an item in a list, it will still pull the data and can cause performance issues of taking a bit of time to load the form.

Thursday, December 22, 2011

Symantec Backup Exec and Sharepoint 2010

The backup exec did not recognize the sharepoint farms due to the remote agents referencing the Microsoft.sharepoint.dll version 12.  

To Fix this, just change the machine config to redirect the dll from version 12 to 14. 


 <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    
         <dependentAssembly>
           <assemblyIdentity name="Microsoft.SharePoint" publicKeyToken="71e9bce111e9429c" culture="neutral" />
           <bindingRedirect oldVersion="12.0.0.0" newVersion="14.0.0.0" />
         </dependentAssembly>
         </assemblyBinding>
 </runtime>