StephenTheTech Posted February 27, 2020 Share Posted February 27, 2020 I have been beating my head against this for a while. I can these commands locally and they work fine, but when I use Pulseway they throw errors on the variable for the username. I have tried running all in one script from powershell and I have broke it up in to two scripts the first 2 line being in powershell (which works as intended) and the second line in batch (also tried running manually from terminal). Im sure there is something small I am doing wrong and I would appreciate the help, thanks $user= get-wmiobject-class win32_computersystem | select-object username wmic UserAccount where name=$User set Passwordexpires=true net user $env:USERNAME /logonpasswordchg:yes I dont have a domain for GPO Link to comment Share on other sites More sharing options...
Administrators Paul Posted February 27, 2020 Administrators Share Posted February 27, 2020 Hi Stephen, At a quick glance I do notice a space missing before the -class in the first line. Maybe this is the error you're seeing? -Paul Link to comment Share on other sites More sharing options...
StephenTheTech Posted February 27, 2020 Author Share Posted February 27, 2020 (edited) $user= get-wmiobject -class win32_computersystem | select-object username wmic UserAccount where name=$User set Passwordexpires=true net user $env:USERNAME /logonpasswordchg:yes I typed it wrong that time, this is copy and pasted from Pulseway. My problem isnt with lines 1 and 2....line 3 is broke, more specifically the username variable is broke Edited February 27, 2020 by StephenTheTech Link to comment Share on other sites More sharing options...
Administrators Paul Posted February 27, 2020 Administrators Share Posted February 27, 2020 Well $env:USERNAME relies on the current user and Pulseway runs in the context of the SYSTEM account. Try using this instead: $user= get-wmiobject -class win32_computersystem | select-object username wmic UserAccount where name=$user set Passwordexpires=true $username = $user.username if ($username -like '*\*') { $idx = $username.LastIndexOf('\') $username = $username.Substring($idx + 1) } net user $username /logonpasswordchg:yes It just removes the domain name or computer name from the username you get from WMI. -Paul StephenTheTech 1 Link to comment Share on other sites More sharing options...
StephenTheTech Posted February 27, 2020 Author Share Posted February 27, 2020 Output ERROR: Description = Invalid query The command completed successfully. This is what the script shows after it is completed, but I am not sure why.....because IT WORKS! Thank you for helping I put way too much time in to that 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