Quenten Grasso Posted August 10, 2018 Share Posted August 10, 2018 (edited) Hey Fellow PW users, I've created a script which allows the system to change its name to %computername%-Current logged on username, which makes life a little easier when trying to remote to their computers on the remote control tool/Webapp. To get started, create your script in the script editor, in my example, Name: Update Computer Name with Logged on Username Windows/Powershell Code: $pwqusers = quser | Select-Object -skip 1 $pwquserfmt = $pwqusers.substring(1,22).Trim() -join "," Set-ItemProperty -Path "HKLM:\Software\MMSOFT Design\PC Monitor\" -Name ComputerName -Value "$env:computername-$pwquserfmt" Click Save. Next we create at new task, Name: Update Computer Name with Logged on Username Current Scope -> Windows Workstations Enable Scheduling -> (I've set it to run once a day) Every weekday (Monday to Friday), starting on 12 August 2018 at 09:00 (Australia/Brisbane) Scripts tab, Select/add your new script you just created and once that's done click save. You can now run the task on demand as well which will update all of the PC's in your windows workstations scope to Computer Name-Logged on usernames This works for RDSH hosts as well however it could get a bit of out hand if you have 5-10+ users logged in so I probably wouldn't recommend it to be used on servers. I Hope this helps you somehow, these scripts/suggestions come with no warranty and I bear no responsibility if this breaks anything, use at your own risk etc..etc.. Cheers, Quenten Edited August 10, 2018 by Quenten Grasso rit-chris and cmiller 2 Link to comment Share on other sites More sharing options...
rit-chris Posted August 12, 2018 Share Posted August 12, 2018 Quenten, this is great. Thank you! Link to comment Share on other sites More sharing options...
brucesmith Posted January 9, 2020 Share Posted January 9, 2020 So I wanted the full display name so I have updated your script. $dom = $env:userdomain $getusr = quser | Select-Object -skip 1 $usr = $getusr.substring(1,22).Trim() -join "," $display = ([adsi]"WinNT://$dom/$usr,user").fullname Set-ItemProperty -Path "HKLM:\Software\MMSOFT Design\PC Monitor\" -Name ComputerName -Value "$env:computername - $display" Link to comment Share on other sites More sharing options...
Misha Posted June 25, 2020 Share Posted June 25, 2020 (edited) Im tard, never mind Edited June 25, 2020 by Misha Link to comment Share on other sites More sharing options...
eDecisions Posted July 15, 2020 Share Posted July 15, 2020 I had written something similar resently and posted, I tested yours and I don't think your pulling in the last logged in user just machine name as I could not get to run, when you run this as a script in session 0 it does not get the current logged in user, it seems to be pulling in session 0 which is blank Also, If I may, I suggest you run at at each logon event, this way its always current for the current user on the machine 100% of the time. Link to comment Share on other sites More sharing options...
JiffJiff Posted May 19, 2021 Share Posted May 19, 2021 This worked very well. VERY Helpful. Thank you very much Quenten & Bruce for your update to full display name. Link to comment Share on other sites More sharing options...
JanSnow Posted March 21, 2022 Share Posted March 21, 2022 Is there a tweak to exempt certain machines (servers and VMs) on this script? Link to comment Share on other sites More sharing options...
Mark G38 Posted March 24, 2022 Share Posted March 24, 2022 On 3/21/2022 at 7:00 PM, JanSnow said: Is there a tweak to exempt certain machines (servers and VMs) on this script? Don't run it against those machines. Create a scope in Pulseway and apply the job / script to that scope and don't include those machines. If you don't want to do that, then modify the script and using this. Change the PCNames to the ones you don't want it to run on, and then yea, it will just exit with a success if it sees those names. If you are on machines that are all PowerShell 3.0 and above, then you can also use $env:computername -in $Exclusions as well. -contains is PowerShell 2 compatible. $Exclusions = @("PCName1", "PCName2", "PCName3") if ($Exclusions -contains $env:COMPUTERNAME) { Exit 0 } else { PLACE REST OF CODE HERE } JanSnow 1 Link to comment Share on other sites More sharing options...
JanSnow Posted March 30, 2022 Share Posted March 30, 2022 I did create a scope to exempt the machines but I'll keep this script for future reference. Thanks mate! Mark G38 1 Link to comment Share on other sites More sharing options...
Rasmus Tved Posted April 26, 2022 Share Posted April 26, 2022 Hi, I have expanded a bit on this small script, both to do some error handeling and do some logging of changes made. I have this running on my instace multiple times a day. Hope this can help someone. #Check if eventlog source is already created, if not then create if (![System.Diagnostics.EventLog]::SourceExists("Pulseway Scripting")){ New-EventLog -LogName Application -Source "Pulseway Scripting" } #Set username to blank $username = '' #Set username to actual username $username = $(Get-WMIObject -class Win32_ComputerSystem | select username).username $usernamev2 = (((query user)[1]).TrimStart()).SubString(0,21) #Combine username and text $usertext = "| $username" #Fall back to alternative user information if first is empty if($usertext -eq "| ") { $usertext = "| $usernamev2" } #Collect current value $curvalue = $(Get-ItemProperty "HKLM:\SOFTWARE\MMSOFT Design\PC Monitor\" -Name ComputerName).Computername #Check that there is a username If ($usertext -ne "| ") { #Collect computername $computername = $env:COMPUTERNAME #Combine username and text $pulsewayname = "$computername $usertext" #Check that current value is not the same as the new one if ($curvalue -ne $pulsewayname) { #Set the new value Set-ItemProperty "HKLM:\SOFTWARE\MMSOFT Design\PC Monitor\" -Name ComputerName -Value $pulsewayname #Write the changes to event log Write-EventLog -LogName Application -Source "Pulseway Scripting" -EventId 1000 -EntryType Information -Message ` "Event: Pulseway Computername Updated Current user: $username Computername: $computername Changed from: $curvalue Changed to: $pulsewayname " } } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now