windows server2008r2 管理员身份

    一、问题

    最近,发现有一台windows2008R2t服务器,运行DataSnap编程的SERVER服务程序,出现不能远程传递上传、下载文件问题,造成不能及时升级软件问题。

    那么从服务器端、客户端、VPN专线连接、服务器代码、客户端代码,逐个找原因,终于找到。是服务器上的SERVER程序末以管理员身份运行。

    二、问题分析

    默认情况下在windows2008中默认打开程序是以普通身份执行的,即使你登陆系统时用的是管理员帐号,系统自行启动和程序,默认是以普通身份执行的

    非管理员权限运行的程序带来的问题:

    1、非管理员权限运行的程序,不能使用OLE(Object Linking and Embedding对象连接与嵌入),至少支持度不高。

    OLE 不仅是桌面应用程序集成,而且还定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制,这种连接机制和协议称为组件对象模型(COM)。OLE可以用来创建复合文档,复合文档包含了创建于不同源应用程序,有着不同类型的数据,因此它可以把文字、声音、图像、表格、应用程序等组合在一起。
    2、在windows系统中,管理员权限和非管理员权限运行的程序之间,不能使用windows提供的通讯机制进行通讯。

    3、非管理员权限运行的程序,对于磁盘的读写(特别是写),比如是管理员权限建立的文件夹和文件,使用受到限制。

    三、解决办法

    1、进入服务器,直接为SERVER程序设置“管理员身份”执行

    (1)计算机打开指定SERVER文件,点击“属性”

windows server2008r2 管理员身份_第1张图片

     (2)由兼容性页面,设置特级等级对话框,选择“以管理呗身份运行此文件”

windows server2008r2 管理员身份_第2张图片

    (3)点击“应用”、“确定”。

     注意:上述操作,就是对注册表HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\AppCompatFlags\Layers添加该程序,并设置REG_SZ的数值:RUNASADMIN

windows server2008r2 管理员身份_第3张图片

2、修改windows server操作系统默认打开文件的权限

(1)菜单-运行,打开secpol.msc。

windows server2008r2 管理员身份_第4张图片

(2)打开本地安全策略”,找到安全设置--本地策略--安全选项
3用户账户控制:以管理员批准模式运行所有管理员---改为禁用
4重启电脑

   3、建立批处理文件,使用管理员身份执行程序

@echo off
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
echo 无管理员权限
exit /B
:UACAdmin
echo 获取管理员权限
taskkill /F /IM OldHomeServer.exe
start OldHomeServer.exe

   注意:在SERVER程序中,设置一个运程调用bat方法。这样,运程客户端使用时,发现不能上传文件时,调用此BAT文件,关闭Server程序,重新以管理员身份启动,解决问题。  

你可能感兴趣的:(DataSnap,编程技巧,数据库,windows,开发语言,delphi)