Powershell
Get Powershell version
PS C:\> $PSVersionTable.PSVersion
which will display something like the table below, which means we're running v4:
Major Minor Build Revision
----- ----- ----- --------
4 0 -1 -1
Get Machine's IP Address
Complex way of getting the current machines IP address, when the get-netadapter or Get-NetIPAddress it's working for you.
funcion Get-CurrentMachinesInternalIpAddres{
Write-Host "Getting this machines IP address"
return ((ipconfig | findstr [0-9].\.)[0]).Split()[-1]
}
Cheers for this.
Get your public IP
function Get-MyPublicIPAddress
{
Write-Host "Getting public IP address"
$downloader = new-object System.Net.WebClient
$ip = $downloader.DownloadString("http://ifconfig.me/ip")
return $ip
}
Cheers for this
Change Execution Policies
In order to run our scripts, we must change the policy from "Restricted” to "Unrestricted”. For security reasons, we need to change to back to "Restricted” afterwards. To run our scripts, perform the following:
- Open PowerShell Command Prompt
Type "Get-ExecutionPolicy"
This should display: "Restricted"
Type "Set- ExecutionPolicy Unrestricted"
Run your .ps1 script
- To revert back
Type "Set- ExecutionPolicy Restricted"
Type "Get-ExecutionPolicy", to verify that the policy has been changed back to Restricted"
Stop Transactiption if it's running
try{
stop-transcript|out-null
}
catch [System.InvalidOperationException]{}
Details on Stack Overflow
Replace Character within a string
$someString = $someString -replace('[*]','')
this replaces the * in the string with nothing
IIS PowerShell Commands
All of the IIS PowerShell Commands
Pester (BDD) Powershell Testing
choco install pester
{Import-Module "C:\ProgramData\chocolatey\lib\pester.3.3.1\tools\Pester.psm1"} | New-Item -path $profile -type file -force;. $profile
New-Fixture
Invoke-Pester