Saturday, May 28, 2011

Analyse event logs for Service Control Manager activities from windowsservices

Sometime you might want to start and stop kind of activities out of event logs for windows services . here is powershell script for this
$eventL = Get-EventLog -LogName "System" -Source "Service Control Manager" ;
Get-Service | ForEach-Object {
$st1 = "";
$st2 = "";
$st3 = "";
$st1 = $_.Status;
$st2 = $_.DisplayName;
$st3 = $_.Name;

#Write-Host $st1 $st2 $st3 -foregroundcolor cyan;

$eventL | where { $_.Message.Contains($st2) -eq "true" } | Select-Object -First 1 | ForEach-Object {

Write-Host $st1 $st2 $st3 -foregroundcolor cyan;
$st4 = "";
$st5 = "";
$st4 = $_.Message;
$st5 = $_.TimeGenerated;
Write-Host $st4 $st5;

}

}
$eventL = $null;

Now that you have decided the culprit windows service, use this script to get whole available history:

$eventL = Get-EventLog -LogName "System" -Source "Service Control Manager" ;

Get-Service | ForEach-Object {

if($_.Name -eq "AAAAAAAAAAAA"){

$st1 = "";
$st2 = "";
$st3 = "";
$st1 = $_.Status;
$st2 = $_.DisplayName;
$st3 = $_.Name;

#Write-Host $st1 $st2 $st3 -foregroundcolor cyan;

$eventL | where { $_.Message.Contains($st2) -eq "true" } | ForEach-Object {

#Write-Host $st1 $st2 $st3 -foregroundcolor cyan;
$st4 = "";
$st5 = "";
$st4 = $_.Message;
$st5 = $_.TimeGenerated;
Write-Host $st4 $st5;

}

}

}
$eventL = $null;

Might be the case , you only want to list down which service is stopped and which one is active :

Get-Service | ForEach-Object {

$st1 = "";
$st2 = "";
$st3 = "";
$st1 = $_.Status;
$st2 = $_.DisplayName;
$st3 = $_.Name;

Write-Host $st1 "," $st2 "," $st3 -foregroundcolor cyan;

}

You may also like:


get last app pool recycle timings

Wednesday, May 25, 2011

Multiple TargetPath under EcmDocumentRouterRule | EcmDocumentRouter , Content Organizer Rules , SharePoint 2010

In SharePoint 2010 with Content organizer  Feature, we can route a document to the target based on predefined rules.

If multiple rules condition satisfy for current document being put in drop off library, priority of rule decides which rule will run.

 

My requirement is :

Either

1. Run multiple rules for single document so that same document may be routed to multiple targets.

Or

2. Under single rule define multiple targetpath so that single document may be routed to multiple locations base don predefined rules.

 

Reference :

http://msdn.microsoft.com/en-us/library/microsoft.office.recordsmanagement.recordsrepository.ecmdocumentrouterrule_properties.aspx

Reply 1 By http://social.technet.microsoft.com/profile/kefang%20chen/?ws=usercard-mini

Hi,

If you want to implement the requirement you mentioned, it is not necessary to use the Content Organizer feature.

You can create an 'ItemAdded' event receiver for all the document libraries. After you uploaded document to library, you can call the method 'SPListItem.CopyTo()' to copy current document to destination.

For this topic you can see the following document.

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.copyto.aspx

Reply 1.1 By http://social.technet.microsoft.com/profile/mayur%20joshi/?ws=usercard-mini

Chen,

What if I want to avoid customization using Object Model. Can the content organizer then help in this. I have a similar requirement to this. I have location property which is multi value field. Based on the selections need to route the document to the appropriate folders. Can you please highlight how this can be achieved?

Thanks,

Mayur

Reply 1.1.1 By http://social.technet.microsoft.com/profile/hemantrhtk/?ws=usercard-mini

Mayur

In your case it is achivable out of box.

 

Define as much rules as much you have targets.

 

In the condition of each rule you can define, based on meta data field( which is your location ) route the document to desired target.

 Reply 1.1.1.1 by http://social.technet.microsoft.com/profile/mayur%20joshi/?ws=usercard-mini

Hemant,

Wish that was the case, i cant set as much rules because numerous permutation and combination that can happen with the countries (its a multi choice field).

I have raised another thread located here explaining the entire scenario. Any help will be highly appreciated.

Thanks,

Mayur Joshi

 

Monday, May 16, 2011

Two exactly same strings fail while comparison in c# .Net

I had an input field which had a space , some browsers were giving different hex for space in these input fields.

Finally I found , a space may not be a space there are as much as 25 different representations for space in Hex.

.Replace((char)0xA0, ' ') worked but better way is using .Normalize(System.Text.NormalizationForm.FormKC)

Reference : http://msdn.microsoft.com/en-us/library/ebza6ck1(v=vs.80).aspx
and http://msdn.microsoft.com/en-us/library/system.text.normalizationform(v=vs.80).aspx

Sunday, May 15, 2011

"Central Administration>General Application Settings>External Service Connections >Configure Send To Connections" code for this

This is the way we define a connection to a site where we would like to drop our documents.

 

Now in my case there could be hundreds of target sites created by code as and when required.

For each site created I want to write few lines of code which will do exactly what /_admin/OfficialFileAdmin.aspx  page does.

 

 

So i want code for what /_admin/OfficialFileAdmin.aspx ( Central Administration>General Application Settings>External Service Connections >Configure Send To Connections) does.

 

 

just try out like:
SPWebApplication app = SPWebApplication.Lookup(new Uri("http://hemant1236"));
SPOfficialFileHost host = new SPOfficialFileHost(true);
host.OfficialFileUrl = new Uri("http://hemant1236/testsite1/_vti_bin/officialfile.asmx");
host.OfficialFileName = "hemant1236Test1saurabh";
host.ShowOnSendToMenu = true;
host.Action = SPOfficialFileAction.Move;

host.Explanation = "created at Time" + DateTime.Now.ToString() + " by custom utility.";

app.OfficialFileHosts.Add(host);

app.Update();

Friday, May 13, 2011

Name cannot begin with the '\' character, hexadecimal value 0x5C

Hi

 

While extending a claim based web application I get the error :

Name cannot begin with the '\' character, hexadecimal value 0x5C. Line 858, position 42.

Troubleshoot issues with Microsoft SharePoint Foundation.

Correlation ID: b2bdf10b-33d2-4630-8bab-8054c6ce310c

Date and Time: 5/13/2011 3:16:10 AM

 

any idea why it happen so .

 

In the log:

 

 

05/13/2011 04:03:37.57     w3wp.exe (0x0954)                           0x1A00    SharePoint Foundation             Runtime                           tkau    Unexpected    System.Xml.XmlException: Name cannot begin with the '\' character, hexadecimal value 0x5C. Line 858, position 42.    at System.Xml.XmlTextReaderImpl.Throw(Exception e)     at System.Xml.XmlTextReaderImpl.ParseAttributes()     at System.Xml.XmlTextReaderImpl.ParseElement()     at System.Xml.XmlTextReaderImpl.ParseElementContent()     at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)     at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)     at System.Xml.XmlDocument.Load(XmlReader reader)     at System.Xml.XmlDocument.Load(String filename)     at Microsoft.SharePoint.Administration.SPAspConfigurationFile.ApplyZoneSettingsToWebConfig(Uri responseUri, SPIisSettings settings)     at Microsoft.SharePoint.Administration.SPWebApplication.Provision()     at Microsoft.SharePo...    16bc3d6e-05e4-45d0-984c-813ed7e0c515
05/13/2011 04:03:37.57*    w3wp.exe (0x0954)                           0x1A00    SharePoint Foundation             Runtime                           tkau    Unexpected    ...int.ApplicationPages.ExtendWebFarmPage.BtnSubmit_Click(Object sender, EventArgs e)     at System.Web.UI.WebControls.Button.OnClick(EventArgs e)     at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)     at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)     at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)    16bc3d6e-05e4-45d0-984c-813ed7e0c515

Reply 1


In the app keys for main web application which is being extended; there was a key which referred a shared location like : "\\hemant1236\dropOff". The characters \\ in this app keys were the culprit. When I commented out this key , the web application was able to extend successfully.

Tuesday, April 19, 2011

get last app pool recycle timings

c:\Windows\System32\inetsrv\appcmd list wp  gives you all the process IDs

and on powershell  go for :

(Get-Process -Id [processID]).StartTime

You may also like:

Analyse event logs for Service Control Manager activities from windows

Sunday, April 17, 2011

Search History in SharePoint 2010

Did anyone got a chance to work on Search History?

 

We are able to get top Search Queries  , but we need to maintain log of all search keywords entered by all the users.  Is there something out of box for this?

 

Reply 1

here are some default Search Reports, but i do not recall it does keep track ALL the search keywords entered by user, the closest

You may refer http://blogs.msdn.com/b/ecm/archive/2010/05/03/web-analytics-in-sharepoint-2010-insights-into-reports-and-metrics.aspx for more information about the default search report.

 

Reply 1,1 we have tried it dear but we need to track all.Please help.Track all search keywords entered to be very specific .

Reply 1.1.1 You can create a hidden web part, place the hidden web part in the Search Result page, and the web part will retrieve the HTTP GET parameter, q=keyword, store it to a search keyword table, and make a report out of that table.




Kiat Hau, Goh http://kiatsplayground.blogspot.com/

Reply 1.1.1.1 If there is nothing out of box in SharePoint 2010 for this  , we will go for omniture - its just similar to google analytic .