While away on holiday I ran into the problem of having maintenance scripts that downloads a lot of stuff from the internet. This can be a really big problem if you are connected over a metered 4G connection.
So I figured no problems I will just add a check to the start of the script to check for metered internet connections. Turns out this is actually a lot harder than I originally thought because there is no native Powershell way to do this.
I had a play around with Steam to see what information I could easily pull from it and any automation that was possible. I created a PowerShell module which can automate what I have found so far.
Features:
Can start and stop the Steam Client. Can Trigger install and uninstall wizards for games. Can start games. Can list all installed games along with stats on downloaded data, install location ect. Can list all games in steam catalog along with application ID.
Here is a simple Powershell script that will set stop windows from seeing the VMware network virtual network cards as unknown network connections.
This causes problems when you try to enable something that refuses to work on a public network. Powershell remoting is a good example.
$Key = "HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}" foreach($subkey in Get-ChildItem -Path $key -ErrorAction SilentlyContinue) { if($subkey.GetValue("VMNet") -eq ` "\DosDevices\VMnet1" -or ` $subkey.GetValue("VMNet") -eq ` "\DosDevices\VMnet8"){ New-ItemProperty -Path $subkey.PSPath ` -Name *NdisDeviceType ` -Value 1 ` -PropertyType DWord ` -Force } }