I hereby claim:
- I am tomtorggler on github.
- I am tomt (https://keybase.io/tomt) on keybase.
- I have a public key ASDkspxaIxbg8tpKYocXMOINXISsNHKy95ujOT-fqEAtXwo
To claim this, I am signing this object:
| if(-not(Get-PSSession)) { | |
| . 'D:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1' | |
| Connect-ExchangeServer -auto -ClientApplication:ManagementShell | |
| } | |
| $Mailboxes = Get-Content .\shared.txt | Get-Mailbox | |
| $ExOSuffix = "<tenant>.mail.onmicrosoft.com" |
| # check if a new release of PowerShell Core is available on GitHub | |
| function Test-PSVersionGitHub { | |
| try { | |
| # get latest release from github atom feed | |
| $Release = Invoke-RestMethod https://github.com/PowerShell/PowerShell/releases.atom -ErrorAction Stop | Select-Object -First 1 | |
| } catch { | |
| Write-Warning "Could not check for new version. $_ `n" | |
| break | |
| } | |
| # extract information from atom response |
| --- | |
| # Requires Front Matter | |
| --- | |
| {"items":[{% for post in site.posts %}{ | |
| "title": {{post.title | jsonify}}, | |
| "url": {{ post.url | prepend: site.baseurl | prepend: site.url | jsonify }}, | |
| "date": {{ post.date | date: '%B %-d, %Y' | jsonify }}, | |
| "category": {{ post.category | jsonify }}, | |
| "tags": {{ post.tags | jsonify }}, | |
| "author": {{ post.author | jsonify }}, |
I hereby claim:
To claim this, I am signing this object:
| function Set-VmNestedHVStatus { | |
| param($VM,[bool]$NestedHVStatus) | |
| foreach ($item in $VM) { | |
| try { | |
| $vm = Get-VM $item | |
| $spec = New-Object -TypeName VMware.Vim.VirtualMachineConfigSpec | |
| $spec.ChangeVersion = $vm.ExtensionData.Config.ChangeVersion | |
| $spec.NestedHVEnabled = $NestedHVStatus | |
| $vm.ExtensionData.ReconfigVM($spec) | |
| } catch { |
| function Get-VmNestedHVStatus { | |
| param($VM) | |
| foreach ($item in $VM) { | |
| try { | |
| Get-VM $item -ErrorAction Stop | Select-Object -ExpandProperty extensiondata | Select-Object -ExpandProperty config | Select-Object Name,NestedHVEnabled | |
| } catch { | |
| Write-Warning -Message $_ | |
| } | |
| } | |
| } |
| # Configure virtual Switches on the Hyper-V Hosts | |
| $vmSwitchParams = @{ | |
| CimSession = $cimSessions; | |
| Name = "sw-ext"; | |
| NetAdapterName = "Ethernet"; | |
| AllowManagementOS = $true | |
| } | |
| New-VMSwitch @vmSwitchParams | |
| # Configure paths for VMs and VHDs | |
| $vmHostParams = @{ |
| # Create VMs on a host and add them to the cluster | |
| 1..4 | ForEach-Object { | |
| # create differencing VHD for the VM | |
| $vhdParams = @{ | |
| Differencing = $true; | |
| ParentPath = "c:\clusterstorage\volume1\hyper-v\vhd\win2012r2.vhdx"; | |
| Path = "c:\clusterstorage\volume1\hyper-v\vhd\hcvm0$_.vhdx"; | |
| ComputerName = "n01" | |
| } | |
| New-VHD @vhdParams |
| # Create Volume | |
| Invoke-Command -ComputerName n01.vdi.local -ScriptBlock { | |
| $params = @{ | |
| Size = 50GB; | |
| StoragePoolFriendlyName = "s2d-pool"; | |
| FriendlyName = "mirror-disk"; | |
| FileSystem = "CSVFS_ReFS"; | |
| PhysicalDiskRedundancy = 2 | |
| } | |
| New-Volume @params |
| # Create Storage Pool | |
| Invoke-Command -ComputerName n01.vdi.local -ScriptBlock { | |
| $params = @{ | |
| StorageSubSystemFriendlyName = "Cluste*"; | |
| FriendlyName = "s2d-pool"; | |
| PhysicalDisks = (Get-PhysicalDisk -StorageSubSystem (Get-StorageSubSystem -FriendlyName cluster*) -CanPool $true) | |
| } | |
| New-StoragePool @params | |
| } |