Skip to content

Instantly share code, notes, and snippets.

View mgreenegit's full-sized avatar

Michael Greene mgreenegit

  • Microsoft
View GitHub Profile
@mgreenegit
mgreenegit / HydrateAllPublicResKitodulesOnPOCPullServer.ps1
Last active August 29, 2015 14:15
This is a quick script for POC labs, to grab the DSC Resource Kit (All Modules) file and populate them in to a DSC Pull Server
$AllModules = 'https://gallery.technet.microsoft.com/scriptcenter/DSC-Resource-Kit-All-c449312d/file/131371/1/DSC%20Resource%20Kit%20Wave%209%2012172014.zip'
$Folder = 'C:\AllModules'
$PullServerModules = 'C:\Program Files\WindowsPowerShell\DscService\Modules\'
if (!(Test-Path "$Folder\Archives")) {mkdir "$Folder\Archives" | out-null}
Invoke-WebRequest -Uri $AllModules -OutFile "$Folder\AllModules.zip"
Expand-Archive -Path "$Folder\AllModules.zip" -DestinationPath "$Folder\Extract" -Force
foreach ($ResourceFolder in (Get-ChildItem "$Folder\Extract\All Resources")) {
$ModuleData = Test-ModuleManifest "$($ResourceFolder.FullName)\$($ResourceFolder.Name).PSD1"
$File = "$($ModuleData.Name)_$($ModuleData.Version).zip"
Compress-Archive -Path $($ResourceFolder.FullName) -DestinationPath "$Folder\Archives\$File" -Force
@mgreenegit
mgreenegit / Basic2012PullServerScript.ps1
Last active August 29, 2015 14:17
Very short script to initialize a Pull Server on WIndows Server 2012
# This is a very basic Configuration to deploy a pull server instance in a lab environment on Windows Server 2012.
Configuration PullServer {
Import-DscResource -ModuleName xPSDesiredStateConfiguration
# Load the Windows Server DSC Service feature
WindowsFeature DSCServiceFeature
{
Ensure = 'Present'
Name = 'DSC-Service'
@mgreenegit
mgreenegit / greenenugetRepo.ps1
Last active August 29, 2015 14:17
Register MyGet Repo greenenuget
# Command to register MyGet Repo
Register-PSRepository -Name GreeneNuGet -SourceLocation https://www.myget.org/F/greenenuget/api/v2/ -PublishLocation https://www.myget.org/F/greenenuget/api/v2/package
@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
@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 / 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 / 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 / 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 / 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 / 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'