Get your script to permanently be loaded into PS? I have to load it every time I open powershell.
Hi Todd. The secret it to create a profile and then load it in the profile. E.g. New-Item $PROFILE.Curren
tUserAllHosts -ItemType File Then open the file: E.g. notepad $PROFILE.Curren tUserAllHosts Then add the dot source in that script to load the function. E.g. . c:\fullpath\Get -LoggedOnUser.p s1 Then save and close the file, the next time you open powershell that script will run and the function will be available for you to call.
On the "create a profile" Suggestion, I get an error: PS C:\scripts> New-Item $PROFILE.Curren
tUserAllHosts -ItemType File New-Item : Could not find a part of the path 'C:\Users\admin istrator\Docume nts\WindowsPowe rShell\profile. ps1'. At line:1 char:9 + New-Item <<<< $PROFILE.Curren tUserAllHosts -ItemType File + CategoryInfo : WriteError: (C:\Users\admin i...ell\profile .ps1:String) [New-Item], DirectoryNotFou ndException + FullyQualifiedE rrorId : NewItemIOError, Microsoft.Power Shell.Commands. NewItemCommand It appears the first step should be "md WindowsPowerShe ll" (make a powershell directory under the folder for the profile you are trying to create).
FOUND IT! Okay, your function needs to be "loaded AS a function, and run as a function." It cannot be run as a standalone script. That was not made very clear. Maybe it should be obvious, but I'm just telling you that it is not clear that that is what is needed (maybe 'powershell [experts]' would already know that, but not 'normal mortal human beings'). That probably should have been THE first thing you mentioned. This is a very nice script offering! Thank you!
Well glad you got it worked out :) Enjoy.
When I run your function, I get no output, not even the error about "no processes running." Also, on your note to another user you gave the wrong syntax, you said to use "Get-LoggedOnUs
er -ComputerName ServerName" - but you don't have a "-ComputerName" qualifier. Should be "Get-LoggedOnUs er ServerName". Either way, from my "domain admin" PS prompt (so you know there's no permission issue), Get-WmiObject -class win32_process -ComputerName "RemoteServer" works perfectly! And yet, when I execute "Get-LoggedOnUs er RemoteServer" - I get no errors, no messages, NO output whatsoever, from the exact same elevated (domain admin) session. What gives? I am on Server 2008 R2, with PS 2.0, full privs. Now, I did NOT "cut and paste" your script - I grabbed it via the "Download" button, in case there's a difference - maybe that's the issue? Maybe something wasn't corrected in the downloadable version? Haven't yet tested the 'cut-n-paste' version that is listed on the page here. Thanks.
I did some stub-testing: I placed a "Write-Host" just above the word 'function,' and that produces output just fine; but then, it's like, no matter what you enter as a parameter, it 'falls through' (bypasses) the entire function, and gives no output. So, what am I doing wrong? Basically, from within PS, I do: .\Get-LoggedOnU
ser.ps1 RemoteServerNam e
Thank you very much for this nice script. Regards
Hi, I tested out your code and it works fine but for some computers, I can't tell who's logged on remotely. Once I execute the "get-loggedonus
er" command it will say "Cannot find any processes running" on a certain remote when I know a user is logged on remotely. I'd appreciate some help in this matter. Thanks
You are querying a WMI NameSpace/Class for this information. You can test the raw cmdlets: Get-wmiobject -namespace root\cimv2 -class win32_process -CN WS123 By default the class requires you to have local admin rights to query. If you want you can use some other credentials: $cred = get-credential domain\user Then add the following to the get-wmiobject query: -credential $cred Let me know how you go. This used DCOM/RPC to query which requires a large range of network ports to connect, if you can use compmgmt.msc and connect to the remote machine, then you should have permission to connect with Get-wmiobject.
I am just now beginning to understand Powershell. So see good examples of reall world usage really helps. I used both the loggedonuser and test-online scripts without issues. I can already see where this will be very helpful. I sure appreciate your sharing and the hellpful answers to other peoples questions were great too. Thanks, Johnny
Thanks for the feedback Johnny, I really appreciate it :) Glad you find the tools useful. Hopefully they can inspire you to also also create tools for tasks that you commonly perform.
Hi first of all, thank you for that nice script! I currently using "query user /server" for those kind of jobs and i am looking for a way to do that via PS. So I found this nice one. Do you mean it is possible to check users, so i can see which of those are in status active or disconnected like in "user query"? Thanks, Mag
I prefer to use this module for those kinds of tasks, this has some very useful cmdlets: http://pstermin
alservices.code plex.com/ You gain the advantage of the results being PowerShell objects which makes customizing the output via the pipeline easier to achieve than .exe commands.
how to output results to csv not screen? something like? where to include in file to output to csv? | Export-CSV C:\output.csv
Yes that will work, exactly. Did you try it?
Hi!! When I running this script on Windows 8 Pro against two remote Windows 2003 servers, there is no aoutput at all from the script...I've followed your recomendation (running powershell as admin, used . . c:\fullpath\Get
-LoggedOnUser.p s1) but it seem that function didn't loaded at all... What do you think?
just use the single dot, then space to wherever you downloaded the script to. . c:\fullpath\Get
-LoggedOnUser.p s1 After that it should be in memory.
Hi I used this script along with TEST-ONLINE script but for most of the machines i see the below error. can you please help. Checking Users . . . VERBOSE: Online : cg000164578 Cannot find any processes running on cg000164578 VERBOSE: Online : fh00024990 Cannot find any processes running on fh00024990\ I checked both the machine and OS was Windows XP Professional-sp
2 Overall its a excellent script!!!
Hi iis4313, It seems like either you do not have permission to run the wmi query against the remote machine OR there is a problem with wmi on the remote machine. The actual query that is failing is: Get-WmiObject -class win32_process -ComputerName "cg000164578" So if you run that you will get your error. In General you need to be a local administrator on a machine to run the query.
I am getting no output from this script at all. I have no clue what I am doing wrong.
Hi Dave, try this. step 1) Download the file and save it to a known location. step 2) Open the powershell console (running as Administrator/e
levated) step 3) dot source the file/function into memory: . c:\fullpath\Get -LoggedOnUsers. ps1 That is dot, then a space, then the full path to the file, then press enter. step 4) see if the function is loaded: Get-item function:\Get-L oggedOnUsers step 5) call the function via: Get-LoggedOnUse rs -computername server123
sorry it should be Get-LoggedOnUse
r not Get-LoggedOnUse rs notice the singular.