'Purpose: To add/update/remove the element
'into DOCICON.XML file make the installation/uninstallation of Foxit PDF iFilter complete
blnRevert = false
strAction = ""
'*** Arguments Section ***
If wscript.arguments.count = 1 Then
if lcase(wscript.arguments(0)) = "-update" OR lcase(wscript.arguments(0)) = "/update" Then
strAction = "update"
elseif lcase(wscript.arguments(0)) = "-remove" OR lcase(wscript.arguments(0)) = "/remove" Then
strAction = "remove"
else
call OutPutUsage
wscript.quit
end if
else
call OutPutUsage
wscript.quit
end if
strFileName = "C:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\Template\Xml\DOCICON.XML"
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
blnFileExists = objXMLDoc.load(strFileName)
if blnFileExists = 0 then
OutPut strFileName + " file not found."
OutPut "Script will terminate"
wscript.quit
end if
Dim objCurrNode, objNewNode, objNewText, xmlTmpNode
Set objCurrNode = objxmlDoc.selectSingleNode("/DocIcons/ByExtension")
Dim i, blnElementExist
i = 0
blnElementExist = 0
for each xmlTmpNode in objCurrNode.ChildNodes
' OutPut xmlTmpNode.xml
strAttValue = xmlTmpNode.getAttribute("Key")
if lcase(strAttValue) = "pdf" then
blnElementExist = 1
exit for
else i = i + 1
end if
next
if strAction = "remove" then
if blnElementExist = 0 then
OutPut "Key Not found. No changes will be made."
else
objCurrNode.removeChild objCurrNode.ChildNodes(i)
objXMLDoc.save(strFileName)
OutPut "Key=PDF has been removed."
end if
else
if blnElementExist = 1 then
strAttValue = ""
strAttValue = xmlTmpNode.getAttribute("Value")
if lcase(strAttValue) "icpdf.gif" then
Set objNewNode = objxmlDoc.createNode(1,"Mapping","")
objNewNode.setAttribute "Key","pdf"
objNewNode.setAttribute "Value","icpdf.gif"
objCurrNode.replaceChild objNewNode, objCurrNode.ChildNodes(i)
Set objCurrNode = objCurrNode.lastChild
objXMLDoc.save(strFileName)
OutPut "Value for Key=pdf updated to icpdf.gif"
else OutPut "Key with correct value already exists. No changes will be made"
end if
else
Set objNewNode = objxmlDoc.createNode(1,"Mapping","")
objNewNode.setAttribute "Key","pdf"
objNewNode.setAttribute "Value","icpdf.gif"
objCurrNode.appendChild(objNewNode)
Set objCurrNode = objCurrNode.lastChild
objXMLDoc.save(strFileName)
OutPut "New element created: "
end if
end if
'OutPut objXMLDoc.xml
SUB OutPutUsage
OutPut ""
OutPut " " & wscript.scriptname & " is used to update or remove into DOCICON.XML"
OutPut ""
OutPut " Usage:"
OutPut ""
Output " " & wscript.scriptname & " [-update | -remove]"
OutPut ""
END SUB
SUB OutPut(strStringToOutPut)
wscript.echo strStringToOutPut
END SUB
So, in your bat file you do this:-
cscript.exe //nologo MOSS_DOCICON_Setting.vbs /update
or
cscript.exe //nologo MOSS_DOCICON_Setting.vbs /remove
Tuesday, August 17, 2010
Friday, August 6, 2010
Visual basic script to check the status of a MOSS 2007 solution
A simple VB script that I wrote about 2 years back to automate solution deployment.
dim strSolutions , intReturnValue
strSolutions = "There are no items matching the criteria specified."
intReturnValue = 2 'solution not installed
Set objShell = CreateObject("WScript.Shell")
Set objScriptExec = objShell.Exec("C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\BIN\stsadm -o enumsolutions")
strSolutions = objScriptExec.StdOut.ReadAll
strSolutions = Trim(strSolutions)
pos=InStr(1,strSolutions,"There are no items",1)
if pos = 0 then
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.loadXML(strSolutions)
Dim objCurrNode, strDeployStatus
Set objCurrNode = objxmlDoc.selectSingleNode("/Solutions")
for each xmlTmpNode in objCurrNode.ChildNodes
strAttValue = xmlTmpNode.getAttribute("Name")
if lcase(strAttValue) = "" then
set ElementsList= xmlTmpNode.getElementsByTagName("Deployed")
for each Elem In ElementsList
strDeployStatus = Elem.firstChild.nodeValue
if LCase(Trim(strDeployStatus)) = "true" then
intReturnValue = 4 'solution installed & deployed
else
intReturnValue = 3 'solution installed BUT NOT deployed
end if
next
exit for
end if
next
end if
Wscript.Quit(intReturnValue)
dim strSolutions , intReturnValue
strSolutions = "There are no items matching the criteria specified."
intReturnValue = 2 'solution not installed
Set objShell = CreateObject("WScript.Shell")
Set objScriptExec = objShell.Exec("C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\BIN\stsadm -o enumsolutions")
strSolutions = objScriptExec.StdOut.ReadAll
strSolutions = Trim(strSolutions)
pos=InStr(1,strSolutions,"There are no items",1)
if pos = 0 then
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.loadXML(strSolutions)
Dim objCurrNode, strDeployStatus
Set objCurrNode = objxmlDoc.selectSingleNode("/Solutions")
for each xmlTmpNode in objCurrNode.ChildNodes
strAttValue = xmlTmpNode.getAttribute("Name")
if lcase(strAttValue) = "" then
set ElementsList= xmlTmpNode.getElementsByTagName("Deployed")
for each Elem In ElementsList
strDeployStatus = Elem.firstChild.nodeValue
if LCase(Trim(strDeployStatus)) = "true" then
intReturnValue = 4 'solution installed & deployed
else
intReturnValue = 3 'solution installed BUT NOT deployed
end if
next
exit for
end if
next
end if
Wscript.Quit(intReturnValue)
Wednesday, August 4, 2010
Multilingual Support in SharePoint
I was searching for articles to learn how to enable multilingual support in SharePoint and would recommend these two articles (links below) for anyone else interested to do the same.
Basically there are 2 ways to do it depending on what you want to achieve.
First one is to use a feature called Variation. It looks quite straight forward to implement but there is few limitations to it including that it is limited to publishing site template. Read more here: MOSS_multilingual_variation.
The second way is by a feature called Localization which leverages on the resource files. Read more here: Localization of SharePoint Project
Basically there are 2 ways to do it depending on what you want to achieve.
First one is to use a feature called Variation. It looks quite straight forward to implement but there is few limitations to it including that it is limited to publishing site template. Read more here: MOSS_multilingual_variation.
The second way is by a feature called Localization which leverages on the resource files. Read more here: Localization of SharePoint Project
Subscribe to:
Posts (Atom)