小编Ann*_*nne的帖子

查找SQL记录中的并发用户数

我有以下结构表:

UserID   StartedOn          EndedOn
1        2009-7-12T14:01    2009-7-12T15:01 
2        2009-7-12T14:30    2009-7-12T14:45
3        2009-7-12T14:47    2009-7-12T15:30
4        2009-7-12T13:01    2009-7-12T17:01
5        2009-7-12T14:15    2009-7-12T18:01
6        2009-7-12T11:01    2009-7-12T19:01
1        2009-7-12T16:07    2009-7-12T19:01
Run Code Online (Sandbox Code Playgroud)

我需要找到在线的最大并发用户数.在上表中,结果将是5,因为用户set1 = {1,2,4,5,6}和set2 = {1,3,4,5,6}在同一时期在线.

您是否知道如何仅使用T-SQL来计算此值?

t-sql sql-server

12
推荐指数
1
解决办法
7533
查看次数

以编程方式更改Windows服务用户

我需要以编程方式更改Windows服务的Logon用户.我使用以下代码来做到这一点:

string objPath = string.Format("Win32_Service.Name='{0}'", ServiceName);
using (ManagementObject service = new ManagementObject(new ManagementPath(objPath)))
{
object[] wmiParams = new object[11];

if (PredefinedAccount)
    {
        wmiParams[6] = "LocalSystem";
            wmiParams[7] = "";
    }
    else
    {
        wmiParams[6] = ServiceUsername; // provided by user
            wmiParams[7] = ServicePassword; // provided by user
    }

    object invokeResult = service.InvokeMethod("Change", wmiParams);

// handle invokeResult - no error up to this point
}
Run Code Online (Sandbox Code Playgroud)

此代码适用于90%的情况,但在某些情况下,由于登录失败,无法启动服务.InvokeMetod通常没有错误,但是当我们尝试启动服务时,我们收到以下错误:

System.InvalidOperationException:无法在计算机'.'上启动服务X. - > System.ComponentModel.Win32Exception:由于登录失败,服务未启动.

解决方案解决方案很简单,我们只需要通过Windows界面输入相同的凭据,问题就解决了.

所以我的问题是,有没有人遇到过与ManagementObject类似的问题,因为在某些情况下它似乎没有将用户名和密码与windows服务联系起来?

.net c# windows-services

9
推荐指数
2
解决办法
1万
查看次数

检查AD帐户是否在Active Directory中具有"作为服务登录"权限

是否可以以编程方式检查帐户是否具有"以服务登录"权限.我知道如何手动设置和检查,但我想从C#代码检查它.

我需要检查在域级别上是否启用了此权限,而不仅仅是在该特定服务器上.

编辑:我想找出用户"作为服务登录"是否在域组策略级别定义.

.net c# active-directory group-policy

9
推荐指数
1
解决办法
2749
查看次数