Skip to content

Instantly share code, notes, and snippets.

View mgreenegit's full-sized avatar

Michael Greene mgreenegit

  • Microsoft
View GitHub Profile
@mgreenegit
mgreenegit / hvcfg.ps1
Last active August 29, 2015 14:27
Hyper-V Configuration
# This script is intended to configure Hyper-V on a Windows 10 machine where virtual disks are already present.
Configuration testbox
{
Import-DscResource -module xHyper-V, xDismFeature
Node localhost
{
xDismFeature HyperV
{
Ensure = 'Present'
@mgreenegit
mgreenegit / dscticker.ps1
Created July 7, 2015 13:27
Stashing a quick prototype of a counter to display when DSC will next evaluate a node. PDT has a much better timer output.
$LastStatus = (Get-DscConfigurationStatus).StartDate
$Frequency = (Get-DscLocalConfigurationManager).ConfigurationModeFrequencyMins
while ( (Get-Date) -lt ($LastStatus.AddMinutes($Frequency)) )
{
Write-Host ((Get-Date) - ($LastStatus.AddMinutes($Frequency)))
}
@mgreenegit
mgreenegit / CWI_Fix.ps1
Created May 11, 2015 13:42
Fix: Convert-WindowsImage run on Windows 10
# https://gallery.technet.microsoft.com/scriptcenter/Convert-WindowsImageps1-0fe23a8f
# Update line 3044
# In version 6.3, the evaluator was comparing strings to integers.
# Replacing this line will use version objects to check the version of Windows and integers for the build number.
$isWin8 = (((new-object Version $os.Version) -ge (new-object Version 6.2)) -and ([uint32]$os.BuildNumber -ge $lowestSupportedBuild))
@mgreenegit
mgreenegit / TestDSCPullServer.ps1
Created April 17, 2015 15:58
Validate DSC Pull Server Functionality
# This function is meant to simplify a check against a DSC Pull Server. If you do not use the default service URL, you will need to adjust accordingly.
function Verify-DSCPullServer ($fqdn) {
([xml](invoke-webrequest "https://$($fqdn):8080/psdscpullserver.svc" | % Content)).service.workspace.collection.href
}
Verify-DSCPullServer 'INSERT SERVER FQDN'
@mgreenegit
mgreenegit / FixCursor.psm1
Created April 10, 2015 12:53
If the cursor is not visible in the PowerShell console, this will correct it
function fixcursor
{
[console]::CursorSize = 25
}
@mgreenegit
mgreenegit / Run.psm1
Created April 9, 2015 12:34
Kick off an Azure Automation Runbook
Function Run {
param (
[parameter (mandatory = $true, valuefrompipeline = $true)]
[system.string]$Runbook,
[system.string]$AutomationAccount
)
if (!(Get-Module Azure)) {ipmo 'C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Azure.psd1'}
if (!$AutomationAccount) {$AutomationAccount = Get-AzureAutomationAccount | % AutomationAccountName}
Start-AzureAutomationRunbook -Name $Runbook -AutomationAccountName $AutomationAccount
}
@mgreenegit
mgreenegit / newDscModule.ps1
Last active August 29, 2015 14:18
Script to stub-in a new DSC module
$modules = 'C:\Program Files\WindowsPowerShell\Modules\'
$modulename = 'xName'
$Description = 'Some Text'
if (!(test-path (join-path $modules $modulename))) {
$modulefolder = mkdir (join-path $modules $modulename)
New-ModuleManifest -Path (join-path $modulefolder "$modulename.psd1") -Guid $([system.guid]::newguid().guid) -Author 'Author' -CompanyName 'Company Name' -Copyright '2015' -ModuleVersion '0.1.0.0' -Description $Description -PowerShellVersion '4.0'
$standard = @{ModuleName = $modulename
@mgreenegit
mgreenegit / DCCA.ps1
Last active August 29, 2015 14:18
Configuration to build a DC/CA
Configuration CA
{
param (
[Parameter(Mandatory=$true)]
[ValidateNotNullorEmpty()]
[PsCredential] $credential
)
Import-DSCResource -module xAdcsDeployment
Node 'localhost'
{
@mgreenegit
mgreenegit / AdvancedPullServerConfiguration.ps1
Last active August 29, 2015 14:18
Advanced DSC Pull Server Configuration Script
# This is an advanced Configuration example for Pull Server production deployments on Windows Server 2012 R2.
# Many of the features demonstrated are optional and provided to demonstrate how to adapt the Configuration for multiple scenarios
# Select the needed resources based on the requirements for each environment.
# Optional scenarios include:
# * Reduce footprint to Server Core
# * Rename server and join domain
# * Switch from SSL to TLS for HTTPS
# * Automatically load certificate from Certificate Authority
# * Locate Modules and Configuration data on remote SMB share
# * Manage state of default websites in IIS
@mgreenegit
mgreenegit / Connect.psm1
Last active August 29, 2015 14:18
Connect to Azure VM using WinRM
function Connect {
param (
[parameter (mandatory = $true)]
[system.string]$vm,
[parameter (mandatory = $true)]
[system.string]$service,
[parameter (mandatory = $true, valuefrompipeline = $true)]
[pscredential]$cred
)
$Services = Get-AzureService | % ServiceName