Powershell Set Wallpaper
Jump to navigation
Jump to search
Get all info from azure, and put it as screensaver :-)
function getAllVMOptionsasync()
{
#PSComputerName, RunspaceId, PSShowComputerName, DeploymentName, Name, Label, VM, InstanceStatus, IpAddress, InstanceStateDetails, PowerState, InstanceErrorCode, InstanceFaultDomain, InstanceName, InstanceUpgradeDomain, InstanceSize, AvailabilitySetName, DNSName, ServiceName, OperationDescription, OperationId, OperationStatus
#$running=$false
#$templist=@()
$templist=$null
$scriptblock={
param($subscriptionName,$proxycreds)
[System.Net.WebRequest]::DefaultWebProxy.Credentials = $proxycreds
#select-azuresubscription -SubscriptionName $subscriptionName
(Get-AzureService).servicename | foreach {Get-AzureVM -ServiceName $_ }
}
$id = Start-Job –Name getAllVMOptions –Scriptblock $scriptblock -ArgumentList @($subscriptionName, $global:proxycreds) | select id
$time=0
while((Get-Job -id $id.id).State -ne "completed" )
{
$time++
if($time -ge 100)
{$time=0}
#write-host "running"
Write-Progress -activity "Waiting..." -status "Time: $time" -PercentComplete ($time)
Start-Sleep 1
}
$templist = Receive-Job -Id $id.id
$finallist = $templist
# $list | ft
#Get-Job -id $id.id
Remove-Job -id $id.id
return $finallist
}
Function Set-WallPaper($Value)
{
write-host "setting wall to $Value"
Set-ItemProperty 'HKCU:\Control Panel\Desktop' -Name "WallpaperStyle" -Value 6
Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name wallpaper -value $value
rundll32.exe user32.dll, UpdatePerUserSystemParameters
}
$array=getAllVMOptionsasync
Add-Type -AssemblyName System.Drawing
$bmp = new-object System.Drawing.Bitmap 800,600
$font = new-object System.Drawing.Font Consolas,12
$brushBg = [System.Drawing.Brushes]::LightSkyBlue
$brushFg = [System.Drawing.Brushes]::Black
$graphics = [System.Drawing.Graphics]::FromImage($bmp)
$graphics.FillRectangle($brushBg,0,0,$bmp.Width,$bmp.Height)
$hight=10
foreach($var in $array)
{
$string=$var.Name +" - "+ $var.PowerState +" - "+ $var.InstanceSize
write-host $string - $hight
$graphics.DrawString($string,$font,$brushFg,300,$hight)
$hight += 20
}
$graphics.Dispose()
$bmp.Save(".\foo.png" )
$wall="$home\foo.png"
Set-WallPaper $wall