public static NetrServerStatisticsGetResponse NetrServerStatisticsGet(ISMBClient client, string serverName, string service, uint level, uint options, out NTStatus status) { using (RPCCallHelper rpc = new RPCCallHelper(client, ServerService.ServicePipeName, ServerService.ServiceInterfaceGuid, ServerService.ServiceVersion)) { status = rpc.BindPipe(); if (status != NTStatus.STATUS_SUCCESS) { return(null); } NetrServerStatisticsGetRequest netrServerStatisticsGetRequest = new NetrServerStatisticsGetRequest(); netrServerStatisticsGetRequest.ServerName = serverName; netrServerStatisticsGetRequest.Service = service; netrServerStatisticsGetRequest.Level = level; netrServerStatisticsGetRequest.Options = options; NetrServerStatisticsGetResponse netrServerStatisticsGetResponse; status = rpc.ExecuteCall((ushort)ServerServiceOpName.NetrServerStatisticsGet, netrServerStatisticsGetRequest, out netrServerStatisticsGetResponse); if (status != NTStatus.STATUS_SUCCESS) { return(null); } return(netrServerStatisticsGetResponse); } }
public static DomainControllerInfo DsGetDCNames(ISMBClient client, string ServerName, string DomainName, string SiteName, uint Flags, out NTStatus status) { using (RPCCallHelper rpc = new RPCCallHelper(client, NetlogonService.ServicePipeName, NetlogonService.ServiceInterfaceGuid, NetlogonService.ServiceVersion)) { status = rpc.BindPipe(); if (status != NTStatus.STATUS_SUCCESS) { return(null); } DsrGetDcNameRequest getDcNameRequest = new DsrGetDcNameRequest(); getDcNameRequest.ServerName = ServerName; getDcNameRequest.DomainName = DomainName; getDcNameRequest.SiteName = SiteName; getDcNameRequest.Flags = Flags; DsrGetDcNameResponse getDcNameResponse; status = rpc.ExecuteCall((ushort)NetlogonServiceOpName.DsrGetDcName, getDcNameRequest, out getDcNameResponse); if (status != NTStatus.STATUS_SUCCESS) { return(null); } return(new DomainControllerInfo(getDcNameResponse.DCInfo)); } }
public static List <SID> ResolveNames(ISMBClient client, List <string> names, out NTStatus status) { List <SID> output = null; using (RPCCallHelper rpc = new RPCCallHelper(client, LsaRemoteService.ServicePipeName, LsaRemoteService.ServiceInterfaceGuid, LsaRemoteService.ServiceVersion)) { status = rpc.BindPipe(); if (status != NTStatus.STATUS_SUCCESS) { return(null); } LsaHandle handle = LsaOpenPolicy(rpc, (AccessMask)0x801, out status); if (handle != null) { output = LsaLookupNames(rpc, handle, names, out status); LsaClose(rpc, handle, out status); } } return(output); }
public static DateTime NetrRemoteTOD(ISMBClient client, string ServerName, out NTStatus status) { using (RPCCallHelper rpc = new RPCCallHelper(client, ServerService.ServicePipeName, ServerService.ServiceInterfaceGuid, ServerService.ServiceVersion)) { status = rpc.BindPipe(); if (status != NTStatus.STATUS_SUCCESS) { return(DateTime.MinValue); } NetrRemoteTODRequest netrRemoteTODRequest = new NetrRemoteTODRequest(); netrRemoteTODRequest.ServerName = ServerName; NetrRemoteTODResponse netrRemoteTODResponse; status = rpc.ExecuteCall((ushort)ServerServiceOpName.NetrRemoteTOD, netrRemoteTODRequest, out netrRemoteTODResponse); if (status != NTStatus.STATUS_SUCCESS) { return(DateTime.MinValue); } return(netrRemoteTODResponse.TimeOfDayInfo.ToDateTime()); } }