Background
Wyse thin clients use ini files to grab their settings upon startup. By default the thin clients will look in \\WDM-Server\c$\inetpub\ftproot\Wyse\wlx\ for the WYSE.ini file. This is a base file that should only contain generic settings for all thin clients, like the WDM server or the VMware View server. For individual settings, like screen resolution, a $MAC.ini file is needed. This is simply a copy of the Wyse.ini file that includes any settings that are unique to a particular thin client. The name of this file should be the MAC address of the thin client.
This post assumes you have the following:
The script
<#
Usage: WyseINI.ps1 -s <HQ or RW, wherever the thin client will connect to> -m <MAC address of the thin client> -r <screen resolution you want to set (input width setting only)>
#>
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline,Mandatory=$true, HelpMessage="Enter HQ or RW to create the INI file on Server1 or Server2")]
[Alias("s")]
[ValidateScript({If ($_ -match '^HQ' -OR '^RW') {
$True
} Else {
Throw "$_ is not a valid WYSE server! Try 'HQ' or 'RW'"
}})]
[string] $Server,
[Parameter(Mandatory=$true, HelpMessage = "Please enter a valid MAC address with no semicolons. Example: 008064AAB712 (12 hex digits)")]
[Alias("m")]
[ValidatePattern("^[a-f0-9]{12}$")]
[string] $mac,
[Parameter(ValueFromPipeline,Mandatory=$true, HelpMessage="Enter '1024' or '1280' or '1440' or '1920' to set the resolution of the thin client")]
[Alias("r")]
[ValidateScript({If ($_ -match '^1024' -OR '^1152' -OR '^1280' -OR '^1440' -OR '^1680' -OR '^1920') {
$True
} Else {
Throw "$_ is not a valid screen resolution! Try '1024' or '1152' or '1280' or '1440' or '1680' or '1920'"
}})]
[string] $Resolution
)
$Rev = "v2.1 10 Feb 2014"
#$ErrorActionPreference="continue"
Write-Host @'
_ ____ _______ ______ _____ ______
| | / /\ \/ / ___// ____/ / _/ | / / _/
| | /| / / \ /\__ \/ __/ / // |/ // /
| |/ |/ / / /___/ / /___ _/ // /| // /
|__/|__/ /_//____/_____/ /___/_/ |_/___/
'@
Write-Host $('*' * 44) -Fo Green
Write-Host "$($MyInvocation.MyCommand.Name): Generates a unique config file for a WYSE device" -Fo Green
Write-Host "Written By: Tyler Applebaum" -Fo Green
Write-Host "$Rev" -Fo Green
Write-Host $('*' * 44) -Fo Green `n
#Server selection
If ($Server -like 'HQ'){
$server = "#Your Server Here"
}
Elseif ($Server -like 'RW'){
$Server = "#Server number 2 here"
}
#Set mac to uppercase for filename
$MAC = $MAC.ToUpper()
#Resolution Selection
If ($Resolution -like '1024'){
Write-Host "1024x768 INI file generated on $Server." -fore green`n
Copy-Item "\\$Server\c$\inetpub\ftproot\Wyse\wlx\1024x768.ini" "\\$Server\c$\inetpub\ftproot\Wyse\wlx\$MAC.ini"
}
Elseif ($Resolution -like '1152'){
Write-Host "1152x864 INI file generated on $Server." -fore green`n
Copy-Item "\\$Server\c$\inetpub\ftproot\Wyse\wlx\1152x864.ini" "\\$Server\c$\inetpub\ftproot\Wyse\wlx\$MAC.ini"
}
Elseif ($Resolution -like '1280'){
Write-Host "1280x1024 INI file generated on $Server." -fore green`n
Copy-Item "\\$Server\c$\inetpub\ftproot\Wyse\wlx\1280x1024.ini" "\\$Server\c$\inetpub\ftproot\Wyse\wlx\$MAC.ini"
}
Elseif ($Resolution -like '1440'){
Write-Host "1440x900 INI file generated on $Server." -fore green`n
Copy-Item "\\$Server\c$\inetpub\ftproot\Wyse\wlx\1440x900.ini" "\\$Server\c$\inetpub\ftproot\Wyse\wlx\$MAC.ini"
}
Elseif ($Resolution -like '1680'){
Write-Host "1680x1050 INI file generated on $Server." -fore green`n
Copy-Item "\\$Server\c$\inetpub\ftproot\Wyse\wlx\1680x1050.ini" "\\$Server\c$\inetpub\ftproot\Wyse\wlx\$MAC.ini"
}
Elseif ($Resolution -like '1920'){
Write-Host "1920x1080 INI file generated on $Server." -fore green`n
Copy-Item "\\$Server\c$\inetpub\ftproot\Wyse\wlx\1920x1080.ini" "\\$Server\c$\inetpub\ftproot\Wyse\wlx\$MAC.ini"
}
