Gostaria de obter a data de criação de uma conta de usuário local (Win 7, se for o caso). Eu olhei para os seguintes objetos WMI (e Google, é claro):
Win32_UserAccount
Win32_NetworkLoginProfile
Os objetos retornados NetworkLoginProfile
têm a última hora de login, mas não a data de criação. A verificação da Date Created
propriedade da pasta de perfil fornece apenas a data em que a pasta foi criada, não necessariamente a própria conta.
windows
powershell
wmi
user-accounts
MDMoore313
fonte
fonte
Respostas:
Os dados estão no SAM, mas não parecem ser documentados publicamente pela Microsoft e não estou encontrando uma API oficial para recuperá-los. Eu posso ver, olhando para o código-fonte do
chntpw
utilitário que o valor está armazenado na chave de registro "F" de cada conta. Quoth o código fonte:O projeto forrense regripper possui um plug-in, samparse , que informará a data de criação da conta.
Uma ferramenta forense provavelmente não é o que você deseja, mas parece que a Microsoft não está facilitando.
Ao pesquisar isso, achei divertido que um MVP da Microsoft não soubesse que os dados de criação da conta estão armazenados no SAM . Para seu benefício, talvez ele não esteja fora do
chntpw
utilitário, e foi aí que iniciei minha pesquisa por informações sobre estruturas SAM não documentadas.fonte
A única maneira de realmente saber seria habilitar a auditoria de gerenciamento de contas no computador quando a conta foi criada. Em seguida, você verá o EventID 4720 no log de eventos na data de criação. (O artigo diz Active Directory, mas o mesmo se aplica a contas locais; verifiquei.)
Sem isso, o mais próximo que você pode chegar é verificando a data de criação na seção de registro do usuário,
ntuser.dat
arquivo, pasta de perfil de usuário etc., mas, como mencionado nos comentários, isso é preciso apenas no primeiro logon do usuário, pois é nessas situações são criados.Infelizmente para você, este é um caso de "se você não o registrou, essas informações não existem".
fonte
Eu estava prestes a fornecer um script do POC PowerShell para extrair e analisar o tempo de criação, mas percebi que
chntpw
a lógica está incorreta. O valor que ele chama de hora da criação é na verdade o último horário definido da senha, embora esses valores sejam os mesmos na criação inicial da conta. Veja aqui uma descrição exaustiva do SAM.O segundo link de Evan, pois
samparse
, pode acertar. Olhando para ele realmente funciona. Se você olhar sua fonte aqui , linha 99:você verá as chamadas
get_timestamp
do Perl'sParse::Win32Registry
. Tenho certeza de que esse é realmente o último tempo de gravação da chave. Como parece que essa tecla específica (HKLM\SAM\SAM\Domains\Account\Users\Names\<USERNAME>
) mantém apenas um ponteiro para a tecla RID correspondente, ela não deve ser alterada após a criação e o último tempo de gravação será igual ao tempo de criação.Se você deseja usar mais ferramentas internas, aqui está uma série de artigos do Scripting Guy explicando como via PowerShell:
Use o PowerShell para acessar o registro de data e hora da última modificação do Registro
Reutilizando o Código de Data e Hora do Registro do PowerShell
Criar uma função de proxy para exibir carimbos de data e hora da chave do Registro
Aproveite os carimbos de hora da chave do Registro via PowerShell
fonte
Este comando no PowerShell deve fazer o truque:
fonte
Navegue por Meu computador para
C: \ Users e você verá todas as contas de usuário listadas na máquina local. Você pode clicar com o botão direito do mouse na conta de usuário apropriada e ir para Propriedades. Ele mostrará uma data criada. Essa deve ser a mesma que a criação da conta de usuário.
Apenas meus 2 centavos
fonte