规划文档库

 

http://blog.sina.com.cn/s/blog\_65977dde0100s7tm.html

文档库是在MOSS2006上的你与任何站点用户共享的公文集合。MOSS2005的文档管理本性通过文档库完成。作为文档管理规划的一有的,你应有明确最契合您的团伙须求的文档库。


当您规定哪些文档库最佳匹配你的公司的急需时,你也要规定你必要多站点或是站点集。例如,假设您为外部的用户创效用于出版的始末时,你或然须求三个站点(和库)用于创作和查阅内容,以及贰个别离的站点,恐怕在壹个独门的MOSS安装,用于发表你的情节。

以差异用户身份运营程序

(2011-07-09 09:15:25)

一贯想方便的拍卖CCProxy代理的帐号管理,所以指望做一个相比好的管理工具。但壹个最坚苦的标题就是帐号的换代,CCProxy有二个网页管理效率,可以加帐号,但加的帐号就是不得以立刻更新。深夜上网的时候发现CCProxy有一意义就是永葆命令行的操作,如:

  CCProxy
-reboot  重启软件

  CCProxy -reset  
更新配备

  CCProxy
-update  更新帐号

   

  
试着改了AccInfo.ini中帐号消息,在DOS中运作CCProxy
-update的确更新了账号,所以起初用PHP做管理工具,做到调用CCProxy
-update时,用了PHP中的exec(),system()等函数一直尚未效能,后又通过调用批处理文件来调用命令行参数都十三分。 处理得正没耐心的时候,一气之下狂刷新PHP网页,电脑卡死,用经过管理器查看时发现打开了五个CCProxy进度,认真一看,除了三个CCProxy是用户进程外其余CCProxy全是system进程。认真一想有或然是运作用户身份不一致所暴发的结果。

  Apache服务调用的外表程序以system身份运维,本人双击运转的主次以用户地方运营。 倘若CCProxy
-update以用户身份运转是否就足以了吗?本人在网络上找到了runas那几个命令,的确可以钦命以哪个用户运营,可是每回都要输密码,没有密码的帐
号就要增加密码才可以用,“/savecred”这几个参数可以用,只要输入一回密码就可以了,但在PHP中发觉要以system的地位输入一遍才行,根本
没有机会输入。打算用C程序来处理这些题材。但是发现用WinExec(),ShellExecute(),CreateProcess()都糟糕处理那么些难点,辛亏意识了CreateProcessAsUser()这几个函数。把网络上的先后改了几处,编译后一试难题追根究底消除。

   以下为有关代码:

// Update.cpp :
定义控制台应用程序的入口点。

  1. #include “stdafx.h”  
  2. #include <windows.h>  
  3. #include <tlhelp32.h>  
  4.   
  5. BOOL GetTokenByName(HANDLE &hToken,LPSTR lpName)  
  6. {  
  7.     if(!lpName)  
  8.         return FALSE;  
  9.       
  10.     HANDLE         hProcessSnap = NULL;   
  11.     BOOL           bRet      = FALSE;   
  12.     PROCESSENTRY32 pe32      = {0};   
  13.       
  14.     hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);   
  15.     if (hProcessSnap == INVALID_HANDLE_VALUE)   
  16.         return (FALSE);   
  17.       
  18.     pe32.dwSize = sizeof(PROCESSENTRY32);   
  19.       
  20.     if (Process32First(hProcessSnap, &pe32))   
  21.     {    
  22.         do   
  23.         {  
  24.             if(!strcmp(_strupr(pe32.szExeFile),_strupr(lpName)))  
  25.             {  
  26.                 HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION,  
  27.                     FALSE,pe32.th32ProcessID);  
  28.                 bRet = OpenProcessToken(hProcess,TOKEN_ALL_ACCESS,&hToken);  
  29.                 CloseHandle (hProcessSnap);   
  30.                 return (bRet);  
  31.             }  
  32.         }   
  33.         while (Process32Next(hProcessSnap, &pe32));   
  34.         bRet = TRUE;   
  35.     }    
  36.     else   
  37.         bRet = FALSE;  
  38.       
  39.     CloseHandle (hProcessSnap);   
  40.     return (bRet);  
  41. }  
  42.   
  43. BOOL RunProcess(LPCSTR lpImage,LPSTR lpCommandLine)  
  44. {  
  45.     if(!lpImage)  
  46.         return FALSE;  
  47.       
  48.     HANDLE hToken;  
  49.     if(!GetTokenByName(hToken,”EXPLORER.EXE”))  
  50.         return FALSE;  
  51.       
  52.     STARTUPINFO si;  
  53.     PROCESS_INFORMATION pi;  
  54.       
  55.     ZeroMemory(&si, sizeof(STARTUPINFO));  
  56.     si.cb= sizeof(STARTUPINFO);  
  57.     si.lpDesktop = TEXT(“winsta0\\default”);  
  58.       
  59.     BOOL bResult = CreateProcessAsUser(hToken,lpImage, lpCommandLine,NULL,NULL,  
  60.         FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi);  
  61.     CloseHandle(hToken);  
  62.     if(bResult)  
  63.     {  
  64.         OutputDebugString(“CreateProcessAsUser ok!\r\n”);  
  65.         printf(“CreateProcessAsUser ok!\r\n”);  
  66.     }  
  67.     else  
  68.     {  
  69.         OutputDebugString(“CreateProcessAsUse* **lse!\r\n”);  
  70.         printf(“CreateProcessAsUse* **lse!\r\n”);  
  71.     }  
  72.     return bResult;  
  73. }  
  74.   
  75. int _tmain(int argc, _TCHAR* argv[])  
  76. {  
  77.     RunProcess(“CCProxy.exe”,” -update”);  
  78.     return 0;  

当您在多站点上设计文档库时,你也要求规划内容怎么样从1个站点向别的的站点流动——通过人工的进程、工作流大概定制的解决方案。

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注