Skip to content

Instantly share code, notes, and snippets.

@Manuel-S
Last active August 29, 2015 14:11
Show Gist options
  • Save Manuel-S/4bc1bc94b4bec554a42a to your computer and use it in GitHub Desktop.
Save Manuel-S/4bc1bc94b4bec554a42a to your computer and use it in GitHub Desktop.
My Developer Machine RC1
# to install, enter this command in WIN+R prompt:
# http://bit.ly/1zIthRQ
# Boxstarter options
$Boxstarter.RebootOk=$True # Allow reboots
$Boxstarter.NoPassword=$False
$Boxstarter.AutoLogin=$True # Save my password securely and auto-login after a reboot
# bigger console window
if ($Host.Name -match "console"){
$MaxHeight = $host.UI.RawUI.MaxPhysicalWindowSize.Height
$MaxWidth = $host.UI.RawUI.MaxPhysicalWindowSize.Width
$MyBuffer = $Host.UI.RawUI.BufferSize
$MyWindow = $Host.UI.RawUI.WindowSize
$MyWindow.Height = ($MaxHeight-5)
$MyWindow.Width = ($Maxwidth-20)
$MyBuffer.Height = (9999)
$MyBuffer.Width = ($Maxwidth-20)
$host.UI.RawUI.set_bufferSize($MyBuffer)
$host.UI.RawUI.set_windowSize($MyWindow)
}
#windows settings
Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowFileExtensions
Enable-RemoteDesktop
Disable-InternetExplorerESC
Set-ExecutionPolicy Bypass -Force
Set-MpPreference -DisableRealtimeMonitoring $True # performance leak, reset at the end
#todo: move library and skydrive folders to D: if applicable
# Visual Studio
cinst visualstudiocommunity2013 -InstallArguments "Blend WebTools" -y
if (Test-PendingReboot) { Invoke-Reboot }
#Browsers
cinst googlechrome -y
cinst firefox -y
cinst adblockplusfirefox -y
# Todo: get IE adblocker to work
# Apps
cinst skype -y
cinst sumatraPDF.install -y
cinst 7zip.install -y
#cinst flashplayerplugin
cinst vlc -y
cinst notepadplusplus.install -y
# Dev Tools
cinst chocolatey -y
cinst git-credential-winstore -y
cinst git.install -y
cinst msysgit -y
cinst poshgit -y
cinst nodejs.install -y
cinst npm -y
cinst wget -y
cinst curl -y
cinst winmerge -y
cinst phantomjs -y
cinst ngrok -y
# NPM apps
npm config set loglevel warn
npm i -g http-server
npm i -g gulp
npm i -g grunt-cli
npm i -g bower
# Visual Studio Extensions
cinst resharper -y
cinst ilspy -y
Install-ChocolateyVsixPackage Viasfora https://visualstudiogallery.msdn.microsoft.com/19609469-380e-4fcf-bcde-e31caeb658b2/file/116820/21/Winterdom.Viasfora.vsix
Install-ChocolateyVsixPackage Web-Essentials https://visualstudiogallery.msdn.microsoft.com/56633663-6799-41d7-9df7-0f2a504ca361/file/105627/43/WebEssentials2013.vsix
Install-ChocolateyVsixPackage EditorConfig https://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328/file/75539/12/EditorConfigPlugin.vsix
Install-ChocolateyVsixPackage Ident-Guides https://visualstudiogallery.msdn.microsoft.com/e792686d-542b-474a-8c55-630980e72c30/file/48932/20/IndentGuide%20v14.vsix
Install-ChocolateyVsixPackage VSCommands https://visualstudiogallery.msdn.microsoft.com/c6d1c265-7007-405c-a68b-5606af238ece/file/106247/18/SquaredInfinity.VSCommands.VS12.vsix
Install-ChocolateyVsixPackage VS-Color-Output https://visualstudiogallery.msdn.microsoft.com/f4d9c2b5-d6d7-4543-a7a5-2d7ebabc2496/file/63103/9/VSColorOutput.vsix
Install-ChocolateyVsixPackage Package-Intellisense https://visualstudiogallery.msdn.microsoft.com/65748cdb-4087-497e-a394-2e3449c8e61e/file/138140/16/JSON%20Intellisense.vsix
Install-ChocolateyVsixPackage Task-Runner-Explorer https://visualstudiogallery.msdn.microsoft.com/8e1b4368-4afb-467a-bc13-9650572db708/file/140636/3/TaskRunnerExplorer.vsix
Install-ChocolateyVsixPackage Grunt-Launcher https://visualstudiogallery.msdn.microsoft.com/dcbc5325-79ef-4b72-960e-0a51ee33a0ff/file/109075/18/GruntLauncher.vsix
Install-ChocolateyVsixPackage Productivity-Power-Tools https://visualstudiogallery.msdn.microsoft.com/dbcb8670-889e-4a54-a226-a48a15e4cace/file/117115/4/ProPowerTools.vsix
# Candidates
# VS Prolog: https://visualstudiogallery.msdn.microsoft.com/0cb77aeb-e4cb-4c92-a1c4-9f7895cd9530?SRC=Home
# F# Tools: https://visualstudiogallery.msdn.microsoft.com/06b5edaf-9557-4987-b64e-f1722b015e86
# Code Contracts: https://visualstudiogallery.msdn.microsoft.com/1ec7db13-3363-46c9-851f-1ce455f66970
# Slow Cheetah: https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5
# Links
function Set-PinnedApplication
{
<#
author: Jan Egil Ring, Crayon
http://gallery.technet.microsoft.com/scriptcenter/b66434f1-4b3f-4a94-8dc3-e406eb30b750
#>
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)][string]$Action,
[Parameter(Mandatory=$true)][string]$FilePath
)
if(-not (test-path $FilePath)) {
throw "FilePath does not exist."
}
function InvokeVerb {
param([string]$FilePath,$verb)
$verb = $verb.Replace("&","")
$path= split-path $FilePath
$shell=new-object -com "Shell.Application"
$folder=$shell.Namespace($path)
$item = $folder.Parsename((split-path $FilePath -leaf))
$itemVerb = $item.Verbs() | ? {$_.Name.Replace("&","") -eq $verb}
if($itemVerb -eq $null){
throw "Verb $verb not found."
} else {
$itemVerb.DoIt()
}
}
function GetVerb {
param([int]$verbId)
try {
$t = [type]"CosmosKey.Util.MuiHelper"
} catch {
$def = [Text.StringBuilder]""
[void]$def.AppendLine('[DllImport("user32.dll")]')
[void]$def.AppendLine('public static extern int LoadString(IntPtr h,uint id, System.Text.StringBuilder sb,int maxBuffer);')
[void]$def.AppendLine('[DllImport("kernel32.dll")]')
[void]$def.AppendLine('public static extern IntPtr LoadLibrary(string s);')
add-type -MemberDefinition $def.ToString() -name MuiHelper -namespace CosmosKey.Util
}
if($global:CosmosKey_Utils_MuiHelper_Shell32 -eq $null){
$global:CosmosKey_Utils_MuiHelper_Shell32 = [CosmosKey.Util.MuiHelper]::LoadLibrary("shell32.dll")
}
$maxVerbLength=255
$verbBuilder = new-object Text.StringBuilder "",$maxVerbLength
[void][CosmosKey.Util.MuiHelper]::LoadString($CosmosKey_Utils_MuiHelper_Shell32,$verbId,$verbBuilder,$maxVerbLength)
return $verbBuilder.ToString()
}
$verbs = @{
"PintoStartMenu"=5381
"UnpinfromStartMenu"=5382
"PintoTaskbar"=5386
"UnpinfromTaskbar"=5387
}
if($verbs.$Action -eq $null){
Throw "Action $action not supported`nSupported actions are:`n`tPintoStartMenu`n`tUnpinfromStartMenu`n`tPintoTaskbar`n`tUnpinfromTaskbar"
}
InvokeVerb -FilePath $FilePath -Verb $(GetVerb -VerbId $verbs.$action)
}
# unpin windows store icon from task bar
# https://4sysops.com/archives/unpin-windows-store-app-from-taskbar-with-powershell-logon-script/
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("$env:USERPROFILE\Store.lnk")
$Shortcut.TargetPath = "C:\Windows\WinStore\WinStore.htm"
$Shortcut.Save()
Set-PinnedApplication -Action PintoTaskbar -FilePath "$env:USERPROFILE\Store.lnk"
Set-PinnedApplication -Action UnPinFromTaskbar -FilePath "$env:USERPROFILE\Store.lnk"
Remove-Item $env:USERPROFILE\Store.lnk
#todo link keepass to start from skydrive
#todo link firefox, chrome, vs to task bar
Install-ChocolateyPinnedTaskBarItem "${env:ProgramFiles(x86)}\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" #VS 2013
#helper reference: https://github.com/chocolatey/chocolatey/wiki/HelpersReference examples:
#Install-ChocolateyDesktopLink
#Install-ChocolateyPowershellCommand
#Install-ChocolateyFileAssociation
# Update Windows late because it takes quite long and reboot if necessary
Install-WindowsUpdate -getUpdatesFromMS -AcceptEula
if (Test-PendingReboot) { Invoke-Reboot }
Set-MpPreference -DisableRealtimeMonitoring $False #reenable realtime protection
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment