A few days ago I was in with my boss and he asked me to perform a particular bit of maintenance during off-hours. ‘Just come into the office tonight after Taekwondo and do it… it shouldn’t take you very long.’ He was right, and I almost did… and then I remembered that in 2014 there is seldom a reason to have to do anything on-site. So after Taekwondo I went home, showered, then sat down at my computer in my pajamas for a couple of hours and did what I had to do. No sweat.
Then one morning this week he asked me to make a particular change to all of the servers in a particular group, and report back that it was done. No problem, I thought… I can do that from my desk using PowerShell.
The change was simple… set the Regional Settings to Canada (the default is, of course, United States). No problem, the PowerShell cmdlet is Set-Culture… so against the local computer I ran:
Set-Culture en-CA.
Success. I then started to run it against other servers using:
Set-Culture en-CA –ComputerName <ServerName>
Uhh… who woulda thunk it? The Set-Culture cmdlet does not support the –ComputerName parameter. Crap. Does that mean I have to actually log on to every one of my servers manually to do it?
No. Fortunately the guys who wrote PowerShell knew that some of us would want to run legacy commands across systems, and gave us a way to do it anyways.
Invoke-Command –ComputerName Oak-FS-03 –ScriptBlock {Set-Culture en-ca}
While I suspect the original intent was to use it to run old DOS commands, but it works for PowerShell cmdlets too.
So here you go… Invoke-Command allows you to run the –ScriptBlock against a remote server, whether that is PowerShell or not.
It should be noted, by the way, that Windows Server does not by default allow scripts to be run against it remotely… you have to go into Server Manager and enable Remote management.
Of course, you could also do it in PowerShell… simply run the cmdlet:
Enable-PSRemoting –Force
Of course, you cannot run that one remotely… that would defeat the point of the security
So go forth and be lazier than you were… no more logging onto every machine individually for you!
Leave a Reply