Páginas

domingo, 21 de fevereiro de 2010

Dicas para manter a vida útil de uma bateria de notebook

Obs. As dicas se referem à uma bateria de lítio!

  1. A pior situação possível para a bateria é usá-la com o notebook na tomada: sempre remova a bateria nestas situações, pois senão a bateria ficará sempre em um estado de carregar e descarregar. Neste caso, mantenha a bateria fora do notebook com uns 40% da sua carga (lembre-se de usar o notebook ligado em um estabilizador ou no-break). Não as deixe fora do notebook totalmente descarregadas.
  2. Reduza o calor que cerca a bateria. Calor aumenta a taxa na qual a bateria envelhece, resultando em perda do tempo de vida. Em casa, isso significa manter o notebook longe de carpete ou qualquer outro isolante que faça com que a temperatura do laptop aumente.
  3. Não fique descarregando totalmente e carregando totalmente a bateria, isso diminui seu tempo de vida.
  4. Às vezes a bateria precisa ser descarregada e recarregada por completo. Enquanto isto é mau quando feito constantemente, fazê-lo a cada 3 ou 4 semanas mantém a precisão do medidor da bateria. O medidor digital utilizado pelos notebooks para rastrear quanto tempo resta de uma bateria se torna menos e menos preciso quando a bateria é parcialmente carregada ou descarregada.
  5. Mantenha a bateria em um lugar fresco. No entanto, nunca deixe uma bateria de lítio em um freezer.


Sites de onde eu compilei (ou copiei, rs) estas dicas:

[]’s

segunda-feira, 8 de fevereiro de 2010

Obtendo usuários de grupo AD

Abaixo está um simples código para se obter os usuários que pertencem a determinado grupo de AD. Este snippet percorre recursivamente o AD, preenchendo um arraylist com os usuários nele presentes.

É uma Console Application, e recebe como parâmetros o nome do grupo (ex.: Grp-Desenvolvedores) e o LDAP (ex.: LDAP://DC=dominio,DC=com,DC=br)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections;
using System.DirectoryServices;
using System.IO;


namespace ADUsersFromGroup
{
class Program
{
static ArrayList _userNames = new ArrayList();
static ArrayList _groupNames = new ArrayList();

static void Main(string[] args)
{
Console.WriteLine("Informe o nome do grupo AD e pressione ENTER: ");
string group = Console.ReadLine();
string ldap = Console.ReadLine();
ArrayList list = GetADGroupUsers(group, ldap);
using (StreamWriter sr = new StreamWriter("c:\\usuarios.txt", false))
{
foreach (var item in list)
sr.WriteLine("{0}", item);
}
Console.WriteLine("********** FIM **********");
}

static ArrayList GetADGroupUsers(string groupName, string ldap)
{
SearchResultCollection results;
DirectorySearcher search = new DirectorySearcher(ldap);
search.Filter = String.Format("(cn={0})", groupName);
results = search.FindAll();
foreach (SearchResult result in results)
{
ResultPropertyCollection resultPropColl = result.Properties;
foreach (Object memberColl in resultPropColl["member"])
{
DirectoryEntry gpMemberEntry = new DirectoryEntry("LDAP://" + memberColl);
System.DirectoryServices.PropertyCollection userProps = gpMemberEntry.Properties;
object objetoAD = userProps["sAMAccountName"].Value;
if ((userProps["objectClass"].Value as object[]).Contains<object>("group"))
{
// valida se já percorremos este grupo
if (!_groupNames.Contains(objetoAD))
{
_groupNames.Add(objetoAD.ToString());
Console.WriteLine("Explodindo membros do grupo {0} ...", objetoAD);
GetADGroupUsers(objetoAD.ToString());
}
}
else
{
if (!_userNames.Contains(objetoAD))
{
_userNames.Add(objetoAD.ToString());
Console.WriteLine(" Incluindo {0} ...", objetoAD);
}
}
}
}
return _userNames;
}
}
}


UPDATE 2011-08-07 : colocando o SyntaxHighlighter no código.