我試圖使用本地(遠程)數據庫與服務器上的集中統一數據庫(使用Sybase數據庫)進行同步。同步必須在預定的時間發生,我正在使用「CreateProcessByUser」。要啓動同步過程,我正在使用由sybase提供的dbremote.exe。來自服務的CreateProcessAsUser存在訪問遠程計算機的安全問題
所構造的命令行參數是:
COMMANDLINE =則Dbremote.exe -l 512K -x -k -c「DSN = HOME * * ; UID = DBA; PWD = *** ; CS =無; DBKEY = ***」 -OS千萬-o 「C:\數據\測試\ dbremote.log」 「C:\數據\測試」
BOOL startA_Process(HANDLE hToken, _TCHAR *commandLine, PROCESS_INFORMATION *pi, BOOL wait, _TCHAR *errBuf){
STARTUPINFO sStartupInfo;
DWORD dwExitCode;
DWORD dwStatus = 0;
DWORD dwCreationFlags = CREATE_NEW_CONSOLE;
int iResult;
BOOL bInheritHandles = FALSE;
LPCTSTR pszApplicationName = NULL;
LPCTSTR pszCurrentDirectory = NULL;
LPVOID pvEnvironment = NULL;
LPSECURITY_ATTRIBUTES psProcessAttributes = NULL;
LPSECURITY_ATTRIBUTES psThreadAttributes = NULL;
//
// Initilize STARTUPINFO structure
//
ZeroMemory(&sStartupInfo, sizeof(sStartupInfo));
sStartupInfo.cb = sizeof(sStartupInfo);
sStartupInfo.lpTitle = _T("AutoSychDBRemote");
sStartupInfo.lpDesktop = _T("winsta0\\default");
//
// Initilize PROCESS_INFORMATION structure
//
ZeroMemory(pi, sizeof(PROCESS_INFORMATION));
iResult = ::CreateProcessAsUser(
hToken, // handle to a token representing the logged-on user
pszApplicationName, // name of executable module
(LPTSTR)commandLine, // command line string
psProcessAttributes, // process security attributes
psThreadAttributes, // thread security attributes
bInheritHandles, // whether new process inherits handles
dwCreationFlags, // creation flags
pvEnvironment, // pointer to new environment block
pszCurrentDirectory, // pointer to current directory name
&sStartupInfo, // pointer to STARTUPINFO
pi // pointer to PROCESS_INFORMATION
);
該過程在遠程計算機上執行,並當發生同步時,應在遠程數據庫和統一數據庫之間交換消息。
如果我從Windows命令提示符執行上述命令行,同步工作成功。但是,當通過CreateProcessAsUser在預定的時間觸發我在日誌文件中看到以下錯誤信息:
日誌文件:
一2013-04-11 11點17分十一秒。發送信息到「BTI」
I. 2013-04-11 11:17:11。 sopen「\\ IP地址\數據庫\生產\消息\合併\ Rem00005.g」 失敗1326:無效的參數
I. 2013-04-11 11:17:11。 sopen「\\ IP地址\數據庫\生產\消息\合併\ Rem00005.h」 失敗1326:無效的參數
I. 2013-04-11 11:17:13。 sopen「\\ IP地址\數據庫\生產\消息\合併\ Rem00005.i」 失敗1326:無效參數
I. 2013-04-11 11:17:13。 sopen「\\ IP地址\數據庫\生產\消息\合併\ Rem00005.j」 失敗1326:無效參數
I. 2013-04-11 11:17:13。 sopen「\\ IP地址\數據庫\生產\消息\合併\ Rem00005.k」 失敗1326:無效參數
E. 2013-04-11 11:17:13。發送消息時出錯
I. 2013-04-11 11:17:13。重新發送請求正在排隊
I. 2013-04-11 11:17:14。執行完畢
其中「\\ IP地址\數據庫\生產\郵件\抗疏力」是我請求您對此的幫助,其中來自遠程計算機的消息會被複制
服務器上的文件夾中。爲什麼我能夠從命令提示符與爲什麼不從'CreateProcessAsUser'進行同步?爲什麼該進程無法將消息發送到服務器上的上述路徑。
,我已經試過幾件事情:
我現在用的是:: LogonUser的記錄,在使用我的Windows域名和憑據的應用程序,並在()的代碼。我有雙重檢查,我發送有效的憑據。
使用資源管理器,我可以成功導航到服務器上的上述路徑,並可以添加/刪除文件。
我已將我的用戶標識添加到管理工具>>本地安全策略下的「本地安全設置」。
任何建議表示讚賞。