Running Teamsite User Admin tool IWUSERADM.exe from ASP.NET
Posted
by Narendra Tiwari
on Geeks with Blogs
See other posts from Geeks with Blogs
or by Narendra Tiwari
Published on Thu, 27 May 2010 04:33:14 GMT
Indexed on
2010/05/27
5:21 UTC
Read the original article
Hit count: 428
It has really been a head scratching task for me. I 've tried many options but nothing worked. Finally I found a workaround on google to achive this by TaskScheduler.
PROBLEM
When we run Teamsite user administration command line tool IWUSERADM.exe though ASP.Net it gives following error:
Application popup: cmd.exe - Application Error : The application failed to initialize properly (0xc0000142). Click on OK to terminate the application.
CAUSE
No specific cause, it seems to be a bug, supposed to be resolved with this Microsoft patch http://support.microsoft.com/kb/960266. and there is nothing related to permission issue, y web application is impersonated with an administrator account. off course running a bat file from dmin account is a potential secury threat but for this scenario lets conifned our discussion to run the command line tool.
RESOLUTION
I have not tried this patch as I have not permitted to run this patch on server. Below are the steps to achive the requirement.
1/ Create a batch file which runs the IWUSERADM.exe. t.SetAccountInformation(yourLogin, yourPassword); t.Save(); t.Run(); Thread.Sleep(2000); //for sync issue //Remove the scheduled task
echo - Add Teamsite User
CD E:\Appli\GN00\iw-home\bin
iwuseradm add-user %1
2/ Temporarily create a schedule task and run the .bat file by scheduled task by ASP.Net code using TaskScheduler http://www.codeproject.com/KB/cs/tsnewlib.aspx.
3/ Here is the function:
private int AddTeamsiteUser(string strBatchFilePath, string strUser)
{
//Get a ScheduledTasks object for the local computer.
ScheduledTasks st = new ScheduledTasks();
// Create a task
Task t;
try{
t = st.CreateTask("~AddTeamsiteUser");
}
catch
{
throw new Exception("Schedule Task ~AddTeamsiteUser already exist.");
}
st.DeleteTask("~AddTeamsiteUser");
return t.ExitCode;
Below are few resources related to the above scenario:-
- Task Scheduler Class Library for .NET
http://www.codeproject.com/KB/cs/tsnewlib.aspx
- Run a .BAT file from ASP.NET
http://codebetter.com/blogs/brendan.tompkins/archive/2004/05/13/13484.aspx
- TaskScheduler Class
http://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.aspx
- Application Hangs whle running iwuseradm.exe through ASP.Net
http://bytes.com/topic/asp-net/answers/733098-system-diagnostics-process-hangs
t.ApplicationName = strBatchFilePath;
t.Parameters = strUser;
t.Comment = "Adding user to Teamsite Application"
© Geeks with Blogs or respective owner