Friday, 23 January 2009
WSS3.0: Default Features List
33 Features in WSS v3
* AdminLinks
* AnnouncementsList
* BasicWebParts
* ContactsList
* ContentLightup
* ContentTypeSettings
* ctypes
* CustomList
* DataSourceLibrary
* DiscussionsList
* DocumentLibrary
* EventsList
* fields
* GanttTasksList
* GridList
* IssuesList
* IssueTrackingWorkflow
* LinksList
* MobilityRedirect
* NoCodeWorkflowLibrary
* PictureLibrary
* SiteSettings
* SPSearchFeature
* SurveysList
* TasksList
* TeamCollab
* UpgradeLinks
* WebPageLibrary
* WikiWelcome
* WorkflowHistoryList
* WorkflowProcessList
* XmlFormLibrary
Microsoft Office SharePoint Services 2007 Features:
107 Features Added in MOSS 2007*
* AddDashboard
* Analytics
* AnalyticsLinks
* BaseSite
* BaseSiteStapling
* BaseWeb
* BaseWebApplication
* BDCAdminUILinks
* BDR
* BizAppsCTypes
* BizAppsFields
* BizAppsListTemplates
* BizAppsSiteTemplates
* BulkWorkflow
* BulkWorkflowTimerJob
* DataConnectionLibrary
* DataConnectionLibraryStapling
* DeploymentLinks
* DMContentTypeSettings
* EawfSite
* EawfWeb
* EnhancedHtmlEditing
* ExcelServer
* ExcelServerSite
* ExcelServerWebApplication
* ExpirationWorkflow
* FeaturePushdown
* GlobalWebParts
* GradualUpgrade
* Hold
* ipfsAdminLinks
* IPFSAdminWeb
* IPFSDocumentConversion
* IPFSSiteFeatures
* IPFSWebFeatures
* LegacyDocumentLibrary
* ListTargeting
* LocalSiteDirectoryControl
* LocalSiteDirectoryMetaData
* LocalSiteDirectorySettingsLink
* MasterSiteDirectoryControl
* MigrationLinks
* MySite
* MySiteBlog
* MySiteCleanup
* MySiteHost
* MySiteLayouts
* MySiteNavigation
* MySiteQuickLaunch
* Navigation
* NavigationProperties
* OffWFCommon
* OSearchBasicFeature
* OSearchCentralAdminLinks
* OSearchEnhancedFeature
* OSearchPortalAdminLinks
* OSearchSRPAdminLinks
* OsrvLinks
* OsrvTasks
* OssNavigation
* OSSSearchSearchCenterUrlFeature
* OSSSearchSearchCenterUrlSiteFeature
* PageConverters
* PortalLayouts
* PremiumRootSite
* PremiumRootSiteStapling
* PremiumSite
* PremiumSiteStapling
* PremiumWeb
* PremiumWebApplication
* ProfileSynch
* Publishing
* PublishingLayouts
* PublishingPrerequisites
* PublishingResources
* PublishingSite
* PublishingStapling
* PublishingWeb
* RecordsManagement
* RedirectPageContentTypeBinding
* RelatedLinksScopeSettingsLink
* ReportCenterCreation
* ReportCenterSampleData
* Reporting
* ReportListTemplate
* ReviewWorkflows
* SearchAndProcess
* SearchWebParts
* SharedServices
* SignaturesWorkflow
* SitesList
* SkuUpgradeLinks
* SlideLibrary
* SlideLibraryActivation
* SpellChecking
* SPSDisco
* SpsSsoLinks
* SRPProfileAdmin
* StapledWorkflows
* TranslationWorkflow
* TransMgmtFunc
* TransMgmtLib
* UpgradeOnlyFile
* UserMigrator
* ViewFormPagesLockDown
* WebPartAdderGroups
* Two additional features are installed when you upgrade from MOSS 2007 Beta 2 to MOSS Beta 2 Technical Refresh: PublishingB2TRHop2SiteFilesUpgrade & PublishingB2TRSiteFilesUpgrade. These two Features, as their names imply, are used to upgrade some of the publishing files from Beta 2 to Beta 2 Technical Refresh. This also explains why you may have experienced some problems with your existing Publishing sites created in Beta 2 after upgrading to Beta 2 Technical Refresh, as outlined in this post. Because they are upgrade Features, and not likely to be present in the RTM release of MOSS 2007, I am not including them in the count.
Tuesday, 20 January 2009
WSS3.0: Search Scope not showing up
The scenario you've described is completely possible. It will take a few steps, and I'm happy to walk you through them.
For others reading this thread, when beginning an upgrade from WSS 3.0 to Search Server, your best bet is to follow along with the steps in the document "Upgrade to Search Server 2008 from Windows SharePoint Services 3.0"
In that doc, in the section titled "Activate features for Web applications carried over to Search Server", ensure you've followed these steps:
After you install Search Server over Windows SharePoint Services, you must activate features for the Windows SharePoint Services Web applications that were carried over to Search Server. Use the following procedure to activate features for these Web applications.
To activate features for Web applications carried over to Search Server
- From the Central Administration Web site, click Application Management.
- On the Application Management page, under SharePoint Web Application Management, click Manage Web application features.
- On the Manage Web Application Features page, click a Web application.
- Next to the description for Office Server Enterprise Search, click Activate.
- Next to the description for Office Server Site Search, click Activate.
- Repeat steps 3 through 5 for each Web application listed on the Manage Web Application Features page.
Reading this document again, I've noticed that there's a key step missing in order to make your legacy search boxes take advantage the new Search Center experience. I'll request the document be updated to include the following steps.
For each WSS Site Colleciton that existed prior to the upgrade, complete these steps:
1. As a site collection administrator, click on "Site Actions > Site Settings".
2. There will be some new links in the Site Collection Administration column which have appeared as a result of activating the features. Click on "Search Settings"
3. (Now I admit that this page is not intuitive. Just take my word here for what it does...)
There are two radio buttons. Select the one called "Use Custom Scopes".
In the text box, type in the address of your Search Center. The exmple given on that page might be a little misleading. If your the new Search Server Search Center query page is http://[servername]:[port]/default.aspx and the results page is http://[servername]:[port]/resutls.aspx, you can just type in http://[servername]:[port]
Now, if you navigate to a page in your original WSS Site, you should see the following changes:
1. The Scopes Dropdown now includes "All Sites". (You can add more scopes by using the Search Scopes link which is directly below "Search Settings" in Site Collection Administration)
2. When you type in a query, it should now show the results in the Search Center's results.aspx page.
REF: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=3020163&SiteID=17
Friday, 16 January 2009
Thursday, 8 January 2009
Sysadmin: Free Busy Http Request
Output:
<a:response xmlns:a="WM">
<a:recipients>
<a:item>
<a:displayname>All Attendees</a:displayname>
<a:type>1</a:type>
<a:fbdata>00000000000020010030</a:fbdata>
</a:item>
<a:item>
<a:displayname>Joe Blogs</a:displayname>
<a:email type="SMTP">jb@jb.com.au</a:email>
<a:type>1</a:type>
<a:fbdata>00000000000020010030</a:fbdata>
</a:item>
</a:recipients>
</a:response>
Response results are broken into half hour timeslots from 7 AM to 5 PM.
These half hour slots return a single integer.
0 means Free
1 means Tentative
2 means Busy
3 means Out of Office
4 means Unable to find you in exchange dude!
Sunday, 4 January 2009
Sysadmin: Standby System using command line
%windir%\System32\rundll32.exe powrprof.dll,SetSuspendState
Monday, 1 December 2008
TSQL: How to send e-mail without using SQL Mail in SQL Server
http://support.microsoft.com/kb/312839
Misc: Debugging using Filemon
1) Download Filemon from http://www.sysinternals.com/Utilities/Filemon.html to your server. Unzip and run it.
3) Press Ctrl+L or click the "Filter" button in the menu bar (it looks like a funnel).
4) Uncheck "Log Reads" and "Log Successes" so you don't have hundreds of entries coming up every second. Click OK.
5) Press Ctrl+X or click on the "Clear" button to clear the list.
6) Try your ASP script again and voila, you should have an entry whose result is "ACCESS DENIED" in your list along with the file path and user.
7) Now you can find and right-click on the folder, go to properties->security and grant that user write permission in that directory.
In my case the folder was the "pickup" folder NOT in Intepub (as so many message boards suggest), but in Program Files->Exchsrv directory, and the user was not IUSR_COMPUTERNAME (as so many boards suggest), but NETWORK SERVICE as the exchange application pool on my server is running under the "network service" identity.
Whatever your unusual configuration, you should be able to pinpoint the problem using Filemon.
Friday, 21 November 2008
Javascript: Find query in page
HTML
<form name="form1" onsubmit="search(document.form1, frametosearch); return false">
<input name="findthis" size="15" title="Press 'ALT s' after clicking submit to repeatedly search page" type="text">
<input class="searchbtn" value="Find" accesskey="s" type="submit">
</form>
JavaScript
/******************************************
* Find In Page Script -- Submitted/revised by Alan Koontz
* Visit Dynamic Drive (http://www.dynamicdrive.com/) for full source code
* This notice must stay intact for use
******************************************/
// revised by Alan Koontz -- May 2003
var TRange = null;
var dupeRange = null;
var TestRange = null;
var win = null;
// SELECTED BROWSER SNIFFER COMPONENTS DOCUMENTED AT
// http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var nom = navigator.appName.toLowerCase();
var agt = navigator.userAgent.toLowerCase();
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
var is_ie = (agt.indexOf("msie") != -1);
var is_ie4up = (is_ie && (is_major >= 4));
var is_not_moz = (agt.indexOf('netscape')!=-1)
var is_nav = (nom.indexOf('netscape')!=-1);
var is_nav4 = (is_nav && (is_major == 4));
var is_mac = (agt.indexOf("mac")!=-1);
var is_gecko = (agt.indexOf('gecko') != -1);
var is_opera = (agt.indexOf("opera") != -1);
// GECKO REVISION
var is_rev=0
if (is_gecko) {
temp = agt.split("rv:")
is_rev = parseFloat(temp[1])
}
// USE THE FOLLOWING VARIABLE TO CONFIGURE FRAMES TO SEARCH
// (SELF OR CHILD FRAME)
// If you want to search another frame, change from "self" to
// the name of the target frame:
// e.g., var frametosearch = 'main'
//var frametosearch = 'main';
var frametosearch = self;
function search(whichform, whichframe) {
// TEST FOR IE5 FOR MAC (NO DOCUMENTATION)
if (is_ie4up && is_mac) return;
// TEST FOR NAV 6 (NO DOCUMENTATION)
if (is_gecko && (is_rev <1)) str =" whichform.findthis.value;" win =" whichframe;" frameval="false;" frameval="true;" win =" parent.frames[whichframe];" strfound="win.find(str);" strfound="win.find(str,">= 1)) {
if(frameval!=false) win.focus(); // force search in specified child frame
strFound=win.find(str, false, false, true, false, frameval, false);
// The following statement enables reversion of focus
// back to the search box after each search event
// allowing the user to press the ENTER key instead
// of clicking the search button to continue search.
// Note: tends to be buggy in Mozilla as of 1.3.1
// (see www.mozilla.org) so is excluded from users
// of that browser.
if (is_not_moz) whichform.findthis.focus();
// There are 7 arguments available:
// searchString: type string and it's the item to be searched
// caseSensitive: boolean -- is search case sensitive?
// backwards: boolean --should we also search backwards?
// wrapAround: boolean -- should we wrap the search?
// wholeWord: boolean: should we search only for whole words
// searchInFrames: boolean -- should we search in frames?
// showDialog: boolean -- should we show the Find Dialog?
}
if (is_ie4up) {
// EXPLORER-SPECIFIC CODE revised 5/21/03
if (TRange!=null) {
TestRange=win.document.body.createTextRange();
if (dupeRange.inRange(TestRange)) {
TRange.collapse(false);
strFound=TRange.findText(str);
if (strFound) {
//the following line added by Mike and Susan Keenan, 7 June 2003
win.document.body.scrollTop = win.document.body.scrollTop + TRange.offsetTop;
TRange.select();
}
}
else {
TRange=win.document.body.createTextRange();
TRange.collapse(false);
strFound=TRange.findText(str);
if (strFound) {
//the following line added by Mike and Susan Keenan, 7 June 2003
win.document.body.scrollTop = TRange.offsetTop;
TRange.select();
}
}
}
if (TRange==null || strFound==0) {
TRange=win.document.body.createTextRange();
dupeRange = TRange.duplicate();
strFound=TRange.findText(str);
if (strFound) {
//the following line added by Mike and Susan Keenan, 7 June 2003
win.document.body.scrollTop = TRange.offsetTop;
TRange.select();
}
}
}
if (!strFound) alert ("String '"+str+"' not found!") // string not found
}
Sysadmin: FTP scripts
@echo off
setlocal
::---------------------------------
:: Start Logging
::---------------------------------
set logfile="C:\_Job_Import_Export\EC\FTP Log\ECLicence.Log"
::---------------------------------
:: Setup Variables
::---------------------------------
set f=%temp%\ftpc.txt
::---------------------------------
:: Compose ftp commands file
::---------------------------------
echo open 192.168.0.1>>%f%
echo user username password>>%f%
echo binary>>%f%
echo cd _job_import_export>>%f%
echo cd "EC">>%f%
echo mput "C:\data\location\*.csv">>%f%
echo bye>>%f%
::---------------------------------
:: Execute ftp command
:: Use "-d" key for verbose output
:: Use "-i" key no interactive mode
::---------------------------------
echo ------------------------>>%logfile%
echo %date% %time% : Start FTP job>>%logfile%
echo ------------------------>>%logfile%
ftp -n -d -i -s:%f% >> %logfile%
::---------------------------------
:: Cleanup temp script
::---------------------------------
del /f /q %f%
::---------------------------------
:: %date% %time% : Backup files
::---------------------------------
L:
cd\
cd "data\location"
echo ------------------------>>%logfile%
echo %date% %time% : Backing Up Files>>%logfile%
echo ------------------------>>%logfile%
move *.csv "backups">>%logfile%
echo ------------------------>>%logfile%
echo %date% %time% : Job Completed>>%logfile%
echo ------------------------>>%logfile%
echo =-=-=-=-=-=-=-=-=-=-=-=->>%logfile%
endlocal
Javascript: getElementsByClassName
/*
Written by Jonathan Snook, http://www.snook.ca/jonathan
Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, oClassNames){
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
var arrRegExpClassNames = new Array();
if(typeof oClassNames == "object"){
for(var i=0; i<oClassNames.length; i++){
arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
}
}
else{
arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
}
var oElement;
var bMatchesAll;
for(var j=0; j<arrElements.length; j++){
oElement = arrElements[j];
bMatchesAll = true;
for(var k=0; k<arrRegExpClassNames.length; k++){
if(!arrRegExpClassNames[k].test(oElement.className)){
bMatchesAll = false;
break;
}
}
if(bMatchesAll){
arrReturnElements.push(oElement);
}
}
return (arrReturnElements)
}