Page 1 of 2

query Active directory display name

Posted: 15 Feb 2014 19:58
by confuseis
Hi

Im looking to create a logon script that will query the output the user and the computer they are using.

The %username% is not enough as I cant tell from this who the user is without having to look it up.

I need the friendly name, Displayname of the user so I can output it to the 3rd colum of my csv file.

I have tried solutions I found online but none worked. Im thinking dsquery

Is their a simple way to do this??

Thanks for reading

Re: query Active directory display name

Posted: 15 Feb 2014 22:04
by booga73
Hi,

At the command prompt of your computer, you can try this for starters:

Code: Select all

for /f "skip=1 tokens=2 delims=\" %a in ('wmic /node:xxx.xxx.xxx.xxx ComputerSystem Get UserName') do @echo %a


the xxx.xxx.xxx.xxx is the ip address of the remote computer.

this, I beleive will help with finding who's logged in remotely.

hope that helps to start off with what you're asking.

v/r Booga73

Re: query Active directory display name

Posted: 16 Feb 2014 06:05
by confuseis
Ive tried that and manually replaced the xxx.xxx.xxx.xxx with the ip address of the machine. I get the error 192.168.1.10 was unexpected at this time. I begs the question how do I get the Ip address into that line? I have looked to see if there is an enviornmental variable for ip address but couldnt find one.

This command Im using would become a batch file and then copied to all network users start up folders so it would start at boot and output the "friendly" name of the user back to a csv file on a network share

e.g. dummy command below

dsquery %username% -displayname >> \\server\share\Usernamelist.txt

Any inkling?

Thanks

Re: query Active directory display name

Posted: 16 Feb 2014 09:32
by Ed Dyreen
confuseis wrote:Ive tried that and manually replaced the xxx.xxx.xxx.xxx with the ip address of the machine. I get the error 192.168.1.10 was unexpected at this time. I begs the question how do I get the Ip address into that line? I have looked to see if there is an enviornmental variable for ip address but couldnt find one.
even if I don't replace xxx.xxx.xxx.xxx it works here.

Code: Select all

Microsoft Windows XP [versie 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

>for /f "skip=1 tokens=2 delims=\" %a in ('wmic /node:xxx.xxx.xxx.xxx ComputerSystem Get UserName') do @echo %a
Knooppunt - xxx.xxx.xxx.xxx
Fout:
Code = 0x800706ba
Beschrijving = De RPC-server is niet beschikbaar.
Faciliteit = Win32

>
try this

Code: Select all

wmic /node:xxx.xxx.xxx.xxx ComputerSystem Get UserName
confuseis wrote:Im looking to create a logon script that will query the output the user and the computer they are using.
this script must be run from client side

Code: Select all

@echo off &setlocal enableDelayedExpansion

set "$computerName=%computerName%"
echo.$computerName=%$computerName%_

set "$name=%userName%"
echo.$name=%$name%_

set "$=" &for /f "skip=1 delims=" %%? in (

   'net.EXE user !$name!'

) do    if not defined $ set "$=%%~?"
::
set "$fullName=" &set "$fullName=!$:~41!" ||set "$fullName=!$name!"
echo.$fullName=%$fullName%_

pause
exit

Re: query Active directory display name

Posted: 16 Feb 2014 11:08
by Squashman
look at the NET USER command. That is what I use in all my scripts to get the person's real name.

Re: query Active directory display name

Posted: 17 Feb 2014 11:18
by confuseis
Regarding the net user command I have found

net user %username% /domain | find "display name"

I get no error so I gather that it worked however I need to output the display name that it grabs I think perhaps a third pipe?

Ill test the other suggestion's and report back

Thanks

Re: query Active directory display name

Posted: 17 Feb 2014 12:25
by Squashman

Code: Select all

For /f "tokens=2* delims= " %%G in ('net user %username% ^/domain ^|find "Full Name"') do set fullname=%%G

Re: query Active directory display name

Posted: 17 Feb 2014 17:47
by foxidrive
I think the forward slash is fine without escaping, but mainly the %username% may contain spaces or & so it would have to be quoted.

Code: Select all

For /f "tokens=2* delims= " %%G in ('net user "%username%" /domain ^|find "Full Name"') do set "fullname=%%G"

Re: query Active directory display name

Posted: 18 Feb 2014 16:40
by confuseis
So far I have net user /domain | find "display name"

this runs but gives no output

Running on its own it gives useful but to much output.

I need to grab just the full user name name / display name only & export this to a text file

Thanks

Re: query Active directory display name

Posted: 18 Feb 2014 17:11
by Squashman
confuseis wrote:So far I have net user /domain | find "display name"

That is not the Example I provided.

Re: query Active directory display name

Posted: 19 Feb 2014 18:30
by confuseis
Ah I see the net user is enclosed. Doh

I have tried all suggestions I'm get "%%G was unexpected at this time."

Im trying to interpret the command in english

Im seeing
for the variable %%G perfrom the operation in brackets and then have %%G contain the answer/output of that operation.

I dont understand the tokens & delim but ill look it up on the weekend.

Thanks

Re: query Active directory display name

Posted: 20 Feb 2014 09:41
by Squashman
confuseis wrote:I have tried all suggestions I'm get "%%G was unexpected at this time."

Because I assume you tried running that code from the cmd prompt.
If you read the help for the FOR command you will see this.
To use the FOR command in a batch program, specify %%variable instead
of %variable. Variable names are case sensitive, so %i is different
from %I.


Which basically means you use TWO percent symbols in a batch file and only one percent symbol at the cmd prompt.

Re: query Active directory display name

Posted: 20 Feb 2014 10:08
by booga73
here's another option to identify who's logged in:

Code: Select all

for /f "tokens=1-2 delims=\" %g in ('whoami') do @echo %h


I've tried that here on my end at the command prompt, and returned the user name.

v/r Booga73

Re: query Active directory display name

Posted: 20 Feb 2014 10:46
by Squashman
booga73 wrote:here's another option to identify who's logged in:

Code: Select all

for /f "tokens=1-2 delims=\" %g in ('whoami') do @echo %h


I've tried that here on my end at the command prompt, and returned the user name.

v/r Booga73


The OP wants the person's full name. Not the Active Directory user name.

Just realized I was using the wrong token in my code.
This is from the cmd prompt.

Code: Select all

H:\>For /f "tokens=2* delims= " %G in ('net user "%username%" /domain ^|find "Full Name"') do echo %H

H:\>echo John Smith
John Smith

Re: query Active directory display name

Posted: 21 Feb 2014 06:31
by booga73
agh, yes, that's correct, ty; Great job on the scripting.

v/r Booga73