Local Logged In User


This topic contains 3 replies, has 3 voices, and was last updated by Profile photo of Rob Simmers Rob Simmers 1 year, 3 months ago.

  • Author
  • #27811
    Profile photo of Tim Fox
    Tim Fox

    I'm trying to come up with a way to get a display or friendly name for a local user logged into their PC. This is part of a larger project, and I need to be able to write some basic information to a database.

    Here's what I have so far. I cannot for the life of me figure out what I am doing wrong. I am assuming it is a syntax error, as it works when I feed it information rather than a variable.

    $user = whoami /upn
    #Get-ADUser -Filter 'EmailAddress -eq "$user"' | Select Name | ft -HideTableHeaders
    Get-ADUser -Filter 'EmailAddress -eq "tfox@test.com"' | Select Name | ft -HideTableHeaders

    #Test Output
    Write-host $user
    write-host $name

  • #27812
    Profile photo of Don Jones
    Don Jones

    The outermost set of quotation marks determine whether PowerShell replaces variables or not. In your example, they're single quotes, so $user is being passed literally rather than being replaced.

  • #27813
    Profile photo of Tim Fox
    Tim Fox

    Thanks, that gets me further along.

  • #27814
    Profile photo of Rob Simmers
    Rob Simmers

    In VBScript, there was a COM object called ADSystemInfo that was an easy way to get AD information for the logged on user. Check this out as a Powershell way:


    Keep in mind that if this is running on the client, that Windows RSAT tools need to be installed in order to use Get-ADUser as you will need the ActiveDirectory module. So, typically, ADSI is leveraged to find user information in those instances which is provided I the above link. The ADSI there can be shortened a bit, but validate it is working as expected first.

You must be logged in to reply to this topic.