Sometimes while a powershell script is running you want to show a MessageBox with a information or warning to the user. In Windows Powershell no Commandlet exists to show a Message Box.
Nevertheless it is possible by using the .NET Windows.Forms.MessageBox class:-).
Sometimes the Windows 7 functionality to automatically arrange or resize a window while dragging is a pain. This feature is called Aero Snap. Here are good news, you can disable the behaviour :-).
Open the Control Panel, go to “Ease of Access center”. If you are there, click “Make the mouse easier to use” and enable “Prevent Windows from being automatically arranged when moved to the edge of the screen”.
if you use some image based technology to deploy your Windows installation, for example SCCM, MDT, Acronis and/or sysprep based, and OpenVPM is already included, the MAC Address of the TAP LAN interface isn’t changed by that way. But a unique MAC Address is requiered if the clients conntects to the same OpenVPN server. If multiple clients have the same MAC Address ping from VPN Clients sometimes fails with error “TTL expired in transit” and the VPN connection is unstable.
This powershellscript sets a MAC Address for each OpenVPN TAP adapter. In detail:
Creating a Eventlog TAPsetMAC
Get all instances for TAP Adapters by reading HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\MatchingDeviceID == “tap0901”
Generate a random MAC Address. Starting with Prefix defined in $sMACPrefix.
Writing the MAC to each Adapter
Log the result to the EventLog
########################################################
# Generate a random MAC for all OpenVPN tap LAN interfaces
# Michael Albert
# 05.04.2013
# License: GPLv2
########################################################
# HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
# MatchingDeviceID tap0901
# REG_SZ MAC=00-FF-8F-E3-A1-AE
$oRandom=New-Object System.random
function fGetRandomMAC([string]$sMACStart){
if($sMACStart.length -ge 0 -and $sMACStart.length -le 11){
for($iLoop=$sMACStart.length; $iLoop -le 11; $iLoop++){
$iChar=$oRandom.Next(16)
$sMACStart+=[String]::Format("{0:x}", $iChar).ToUpper()
}
return($sMACStart)
}
else{
return $false
}
}
function fConvert2MAC16([string]$sMAC12){
[string]$sMAC16=""
if($sMAC12.length -eq 12){
for($iLoop=0;$iLoop -le 11;$iLoop++){
$sMAC16+=$sMAC12.SubString($iLoop,1)
if((($iLoop+1) % 2) -eq 0 -and ($iLoop+1) -lt 12){
$sMAC16+="-"
}
}
return $sMAC16
}
else{
return $false
}
}
###############################################################################
# Currently not used but defined :-)
function fValidMAC([system.string]$sMAC){
$RegExIP=new-object System.Text.RegularExpressions.Regex("^([0-9a-fA-F]{2}\-){5}([0-9a-fA-F]{2})$")
return($RegExIP.IsMatch($sMAC))
}
###############################################################################
## MAIN
###############################################################################
$sMACPrefix="00FF8F"
if(! [System.Diagnostics.EventLog]::SourceExists("TAPsetMAC")){
New-EventLog -Source TAPsetMAC -Log Application
}
$aTAPAdapter=Get-ChildItem "registry::HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}" -ErrorAction SilentlyContinue |where-object{$_.GetValue("MatchingDeviceID") -eq "tap0901"}
foreach($rTAPAdapter in $aTAPAdapter){
# Get-ItemProperty -Path "registry::HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}"
if(! ($rTAPAdapter.GetValue("MAC"))){
#$rTAPAdapter
#$rTAPAdapter.Name
# Get-ItemProperty -Path ("registry::"+$rTAPAdapter.Name)
$sMAC=fGetRandomMAC $sMACPrefix
if($sMAC16=fConvert2MAC16 $sMAC){
Write-Host -NoNewline "Set MAC of TAP Adaper to" $sMAC16 "..."
$Error.Clear()
New-ItemProperty -Path ("registry::"+$rTAPAdapter.Name) -Force -Name MAC -PropertyType String -Value $sMAC16|Out-Null
if(! $Error){
Write-Host "ok"
Write-EventLog -LogName Application -Source TAPsetMAC -EntryType Information -EventID 666 -Message ("TAP LAN Adapter: Altered MAC Address to "+$sMAC16)
}
else{
Write-EventLog -LogName Application -Source TAPsetMAC -EntryType Warning -EventID 666 -Message ("TAP LAN Adapter: Failed to altered MAC Address to "+$sMAC16)
}
}
}
}
Michael
My Knowledgebase for things about Linux, Windows, VMware, Electronic and so on…
This website uses cookies to improve your experience and to serv personalized advertising by google adsense. By using this website, you consent to the use of cookies for personalized content and advertising. For more information about cookies, please see our Privacy Policy, but you can opt-out if you wish. AcceptRejectRead More
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.