facterdb 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/.gitignore +5 -0
- data/CHANGELOG.md +7 -0
- data/README.md +2 -0
- data/facterdb.gemspec +2 -2
- data/facts/2.4/windows-2012 r2-x64.facts +77 -0
- data/facts/2.4/windows-7-x64.facts +79 -0
- data/facts/3.0/windows-2012 r2-x86_64.facts +101 -0
- data/facts/3.0/windows-7-x86_64.facts +101 -0
- data/facts/3.1/windows-2012 r2-x86_64.facts +130 -0
- data/facts/3.1/windows-7-x86_64.facts +130 -0
- data/facts/Vagrantfile +24 -0
- data/facts/Windows_README.md +11 -0
- data/facts/windows_get_facts.ps1 +60 -0
- data/facts/windows_packer/2012r2core.json +60 -0
- data/facts/windows_packer/answer_files/2012_r2core/Autounattend.xml +146 -0
- data/facts/windows_packer/scripts/PackerShutdown.bat +2 -0
- data/facts/windows_packer/scripts/SetupComplete-2012.cmd +1 -0
- data/facts/windows_packer/scripts/Test-Command.ps1 +11 -0
- data/facts/windows_packer/scripts/boxstarter.ps1 +12 -0
- data/facts/windows_packer/scripts/oracle.cer +0 -0
- data/facts/windows_packer/scripts/package.ps1 +44 -0
- data/facts/windows_packer/scripts/postunattend.xml +49 -0
- data/facts/windows_packer/scripts/provision.ps1 +86 -0
- data/facts/windows_packer/vagrant_templates/vagrantfile-windows.template +16 -0
- data/lib/facterdb/version.rb +1 -1
- metadata +45 -34
@@ -0,0 +1,130 @@
|
|
1
|
+
{
|
2
|
+
"dmi": {
|
3
|
+
"manufacturer": "innotek GmbH",
|
4
|
+
"product": {
|
5
|
+
"name": "VirtualBox",
|
6
|
+
"serial_number": "0"
|
7
|
+
}
|
8
|
+
},
|
9
|
+
"env_windows_installdir": "C:\\Program Files\\Puppet Labs\\Puppet",
|
10
|
+
"facterversion": "3.1.5",
|
11
|
+
"fqdn": "foo.example.com",
|
12
|
+
"identity": {
|
13
|
+
"user": "FOO\\vagrant"
|
14
|
+
},
|
15
|
+
"is_virtual": true,
|
16
|
+
"kernel": "windows",
|
17
|
+
"kernelmajversion": "6.1",
|
18
|
+
"kernelrelease": "6.1.7600",
|
19
|
+
"kernelversion": "6.1.7600",
|
20
|
+
"memory": {
|
21
|
+
"system": {
|
22
|
+
"available": "321.22 MiB",
|
23
|
+
"available_bytes": 336826368,
|
24
|
+
"capacity": "68.62%",
|
25
|
+
"total": "1023.55 MiB",
|
26
|
+
"total_bytes": 1073274880,
|
27
|
+
"used": "702.33 MiB",
|
28
|
+
"used_bytes": 736448512
|
29
|
+
}
|
30
|
+
},
|
31
|
+
"networking": {
|
32
|
+
"fqdn": "foo",
|
33
|
+
"hostname": "foo",
|
34
|
+
"interfaces": {
|
35
|
+
"Local Area Connection": {
|
36
|
+
"bindings": [
|
37
|
+
{
|
38
|
+
"address": "10.0.2.15",
|
39
|
+
"netmask": "255.255.255.0",
|
40
|
+
"network": "10.0.2.0"
|
41
|
+
}
|
42
|
+
],
|
43
|
+
"bindings6": [
|
44
|
+
{
|
45
|
+
"address": "fe80::700d:3fab:1d54:dc0d%11",
|
46
|
+
"netmask": "ffff:ffff:ffff:ffff::",
|
47
|
+
"network": "fe80::%11"
|
48
|
+
}
|
49
|
+
],
|
50
|
+
"dhcp": "10.0.2.2",
|
51
|
+
"ip": "10.0.2.15",
|
52
|
+
"ip6": "fe80::700d:3fab:1d54:dc0d%11",
|
53
|
+
"mac": "08:00:27:67:C8:1B",
|
54
|
+
"mtu": 1500,
|
55
|
+
"netmask": "255.255.255.0",
|
56
|
+
"netmask6": "ffff:ffff:ffff:ffff::",
|
57
|
+
"network": "10.0.2.0",
|
58
|
+
"network6": "fe80::%11"
|
59
|
+
},
|
60
|
+
"Local Area Connection 3": {
|
61
|
+
"bindings": [
|
62
|
+
{
|
63
|
+
"address": "10.20.1.5",
|
64
|
+
"netmask": "255.255.255.0",
|
65
|
+
"network": "10.20.1.0"
|
66
|
+
}
|
67
|
+
],
|
68
|
+
"bindings6": [
|
69
|
+
{
|
70
|
+
"address": "fe80::15ec:2eb0:42ca:d968%13",
|
71
|
+
"netmask": "ffff:ffff:ffff:ffff::",
|
72
|
+
"network": "fe80::%13"
|
73
|
+
}
|
74
|
+
],
|
75
|
+
"ip": "10.20.1.5",
|
76
|
+
"ip6": "fe80::15ec:2eb0:42ca:d968%13",
|
77
|
+
"mac": "08:00:27:81:BB:CB",
|
78
|
+
"mtu": 1500,
|
79
|
+
"netmask": "255.255.255.0",
|
80
|
+
"netmask6": "ffff:ffff:ffff:ffff::",
|
81
|
+
"network": "10.20.1.0",
|
82
|
+
"network6": "fe80::%13"
|
83
|
+
}
|
84
|
+
},
|
85
|
+
"ip": "10.20.1.5",
|
86
|
+
"ip6": "fe80::15ec:2eb0:42ca:d968%13",
|
87
|
+
"mac": "08:00:27:81:BB:CB",
|
88
|
+
"mtu": 1500,
|
89
|
+
"netmask": "255.255.255.0",
|
90
|
+
"netmask6": "ffff:ffff:ffff:ffff::",
|
91
|
+
"network": "10.20.1.0",
|
92
|
+
"network6": "fe80::%13",
|
93
|
+
"primary": "Local Area Connection 3"
|
94
|
+
},
|
95
|
+
"os": {
|
96
|
+
"architecture": "x64",
|
97
|
+
"family": "windows",
|
98
|
+
"hardware": "x86_64",
|
99
|
+
"name": "windows",
|
100
|
+
"release": {
|
101
|
+
"full": "7",
|
102
|
+
"major": "7"
|
103
|
+
},
|
104
|
+
"windows": {
|
105
|
+
"system32": "C:\\Windows\\system32"
|
106
|
+
}
|
107
|
+
},
|
108
|
+
"path": "C:\\Program Files\\Puppet Labs\\Puppet\\puppet\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\facter\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\hiera\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\mcollective\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\sys\\ruby\\bin;C:\\Program Files\\Puppet Labs\\Puppet\\sys\\tools\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\Git\\bin; ",
|
109
|
+
"processors": {
|
110
|
+
"count": 1,
|
111
|
+
"isa": "x64",
|
112
|
+
"models": [
|
113
|
+
"Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz"
|
114
|
+
],
|
115
|
+
"physicalcount": 1
|
116
|
+
},
|
117
|
+
"ruby": {
|
118
|
+
"platform": "x64-mingw32",
|
119
|
+
"sitedir": "C:/Program Files/Puppet Labs/Puppet/sys/ruby/lib/ruby/site_ruby/2.1.0",
|
120
|
+
"version": "2.1.8"
|
121
|
+
},
|
122
|
+
"system_uptime": {
|
123
|
+
"days": 0,
|
124
|
+
"hours": 0,
|
125
|
+
"seconds": 177,
|
126
|
+
"uptime": "0:02 hours"
|
127
|
+
},
|
128
|
+
"timezone": "Coordinated Universal Time",
|
129
|
+
"virtual": "virtualbox"
|
130
|
+
}
|
data/facts/Vagrantfile
CHANGED
@@ -189,4 +189,28 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
|
189
189
|
host.vm.provision "shell", path: "get_facts.sh"
|
190
190
|
host.vm.provision "shell", inline: "/sbin/shutdown -h now"
|
191
191
|
end
|
192
|
+
config.vm.define "windows-7-x86_64" do |host|
|
193
|
+
host.vm.hostname = 'foo'
|
194
|
+
host.vm.box = "ferventcoder/win7pro-x64-nocm-lite"
|
195
|
+
host.vm.communicator = "winrm"
|
196
|
+
host.vm.guest = :windows
|
197
|
+
host.vm.network :private_network, :auto_network => true
|
198
|
+
host.vm.network "forwarded_port", guest: 22, host: 2200, id: "ssh", auto_correct: true
|
199
|
+
host.windows.set_work_network = true
|
200
|
+
host.vm.provision 'shell', path: "windows_get_facts.ps1"
|
201
|
+
#host.vm.provision 'shell', inline: "Stop-Computer -AsJob"
|
202
|
+
host.vm.provision 'shell', inline: "shutdown -s -f -c \"Fact Collection Complete\""
|
203
|
+
#host.vm.post_up_message = 'Note that windows machines do not automatically shutdown. You must run a \'vagrant destroy\' or \'vagrant halt\' to terminate/stop the build vm.'
|
204
|
+
end
|
205
|
+
config.vm.define "windows-2012r2-core-x86_64" do |host|
|
206
|
+
host.vm.hostname = 'foo'
|
207
|
+
host.vm.box = "windows-2012r2-core-x86_64"
|
208
|
+
host.vm.communicator = "winrm"
|
209
|
+
host.vm.guest = :windows
|
210
|
+
host.vm.network :private_network, :auto_network => true
|
211
|
+
host.vm.network "forwarded_port", guest: 22, host: 2200, id: "ssh", auto_correct: true
|
212
|
+
host.windows.set_work_network = true
|
213
|
+
host.vm.provision 'shell', path: "windows_get_facts.ps1"
|
214
|
+
host.vm.provision 'shell', inline: "shutdown -s -f -c \"Fact Collection Complete\""
|
215
|
+
end
|
192
216
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
At the time of writing there are not suitable publicly available windows server
|
2
|
+
vagrant boxes that can be used to generate the facts.
|
3
|
+
|
4
|
+
In order to make fact collection reproducible, I have included packer templates
|
5
|
+
so boxes can be rebuilt.
|
6
|
+
|
7
|
+
run `packer build <file>.json`
|
8
|
+
followed by `vagrant add <boxname> <boxfile>`
|
9
|
+
|
10
|
+
Once the box is added a simple `vagrant up <windows_os_name>` will collect all the facts in the same manner as the unix based hosts.
|
11
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
param(
|
2
|
+
[array]$puppetAgentVersions = ('1.1.1','1.2.2','1.4.0'),
|
3
|
+
[string]$baseUrl = 'https://downloads.puppetlabs.com/windows',
|
4
|
+
[string]$fqdn = 'foo.example.com'
|
5
|
+
)
|
6
|
+
|
7
|
+
$PuppetInstallerPath = 'c:\vagrantshared\resources\installers'
|
8
|
+
|
9
|
+
# Make sure we have enough privs to install the things.
|
10
|
+
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
|
11
|
+
if (! ($currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))) {
|
12
|
+
Write-Host -ForegroundColor Red "You must run this script as an administrator."
|
13
|
+
Exit 1
|
14
|
+
}
|
15
|
+
|
16
|
+
# Create our tmp dir if it's not found
|
17
|
+
if (!(Test-Path $PuppetInstallerPath)) {
|
18
|
+
Write-Host "Creating folder `'$PuppetInstallerPath`'"
|
19
|
+
$null = New-Item -Path "$PuppetInstallerPath" -ItemType Directory
|
20
|
+
}
|
21
|
+
|
22
|
+
# Install each puppet version & collect facts.
|
23
|
+
foreach ($pupAgentVer in $puppetAgentVersions) {
|
24
|
+
$agentUrl = "$baseUrl/puppet-agent-$pupAgentVer-x64.msi"
|
25
|
+
$agentInstaller = Join-Path $PuppetInstallerPath "puppet-agent-$pupAgentVer-x64.msi"
|
26
|
+
|
27
|
+
write-Host "Downloading `'$agentUrl`' to `'$agentInstaller`'"
|
28
|
+
(New-Object Net.WebClient).DownloadFile("$agentUrl", "$agentInstaller")
|
29
|
+
|
30
|
+
#Install the actual agent, and
|
31
|
+
$install_args = @("/qn", "/norestart", "/i", "$agentInstaller", "PUPPET_AGENT_CERTNAME=$fqdn")
|
32
|
+
Write-Host "Installing Puppet. running msiexec.exe $install_args"
|
33
|
+
$agentProcess = Start-Process -FilePath msiexec.exe -ArgumentList $install_args -Wait -PassThru
|
34
|
+
if ($agentProcess.ExitCode -ne 0) {
|
35
|
+
Write-Host "Installer failed."
|
36
|
+
Exit 1
|
37
|
+
}
|
38
|
+
Write-Host "Puppet Agent $pupAgentVer successfully installed."
|
39
|
+
|
40
|
+
# Run facter
|
41
|
+
$facterBin = "C:\Program Files\Puppet Labs\Puppet\bin\facter.bat"
|
42
|
+
$facterVer = (&$facterBin facterversion).Substring(0,3)
|
43
|
+
|
44
|
+
$Os = (&$facterBin operatingsystem).ToLower()
|
45
|
+
$Osmaj = (&$facterBin operatingsystemmajrelease).ToLower()
|
46
|
+
$Hw = (&$facterBin hardwaremodel).ToLower()
|
47
|
+
|
48
|
+
# Supply a fqdn because vagrant windows only sets the short hostname. Without this
|
49
|
+
# the domain name will fallback to the hypervisor's domain.
|
50
|
+
$env:FACTER_fqdn = $fqdn
|
51
|
+
|
52
|
+
$facterArgs = @("-j")
|
53
|
+
$facterProcess = Start-Process -FilePath $facterBin -ArgumentList $facterArgs -Wait -PassThru -RedirectStandardOutput "C:\vagrant\$facterVer\$Os-$Osmaj-$Hw.facts"
|
54
|
+
if ($facterProcess.ExitCode -ne 0) {
|
55
|
+
Write-Host "Facter failed."
|
56
|
+
Exit 1
|
57
|
+
}
|
58
|
+
Write-Host "Facts collected for $Os-$Osmaj-$Hw with facter $facterVer"
|
59
|
+
}
|
60
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
{
|
2
|
+
"builders": [
|
3
|
+
{
|
4
|
+
"type": "virtualbox-iso",
|
5
|
+
"vboxmanage": [
|
6
|
+
[ "modifyvm", "{{.Name}}", "--natpf1", "guest_winrm,tcp,,55985,,5985" ],
|
7
|
+
[ "modifyvm", "{{.Name}}", "--memory", "4096" ],
|
8
|
+
[ "modifyvm", "{{.Name}}", "--vram", "48" ],
|
9
|
+
[ "modifyvm", "{{.Name}}", "--cpus", "2" ],
|
10
|
+
[ "modifyvm", "{{.Name}}", "--ioapic", "on" ]
|
11
|
+
],
|
12
|
+
"guest_additions_mode": "{{ user `guest_additions_mode` }}",
|
13
|
+
"guest_additions_path": "C:/users/vagrant/VBoxGuestAdditions.iso",
|
14
|
+
"guest_os_type": "Windows2012_64",
|
15
|
+
"headless": "{{ user `headless` }}",
|
16
|
+
"iso_url": "{{ user `iso_url` }}",
|
17
|
+
"iso_checksum": "{{ user `iso_checksum` }}",
|
18
|
+
"iso_checksum_type": "{{ user `iso_checksum_type` }}",
|
19
|
+
"communicator": "winrm",
|
20
|
+
"winrm_username": "vagrant",
|
21
|
+
"winrm_password": "vagrant",
|
22
|
+
"winrm_timeout": "8h",
|
23
|
+
"shutdown_command": "a:/PackerShutdown.bat",
|
24
|
+
"shutdown_timeout": "30m",
|
25
|
+
"floppy_files": [
|
26
|
+
"answer_files/2012_r2{{user `core`}}/Autounattend.xml",
|
27
|
+
"scripts/oracle.cer",
|
28
|
+
"scripts/postunattend.xml",
|
29
|
+
"scripts/boxstarter.ps1",
|
30
|
+
"scripts/PackerShutdown.bat",
|
31
|
+
"scripts/package.ps1",
|
32
|
+
"scripts/SetupComplete-2012.cmd",
|
33
|
+
"scripts/Test-Command.ps1"
|
34
|
+
]
|
35
|
+
}
|
36
|
+
],
|
37
|
+
|
38
|
+
"provisioners": [
|
39
|
+
{
|
40
|
+
"type": "powershell",
|
41
|
+
"script": "scripts/provision.ps1"
|
42
|
+
}
|
43
|
+
],
|
44
|
+
"post-processors": [
|
45
|
+
{
|
46
|
+
"type": "vagrant",
|
47
|
+
"keep_input_artifact": false,
|
48
|
+
"output": "windows2012r2core-{{.Provider}}.box",
|
49
|
+
"vagrantfile_template": "vagrant_templates/vagrantfile-windows.template"
|
50
|
+
}
|
51
|
+
],
|
52
|
+
"variables": {
|
53
|
+
"core": "core",
|
54
|
+
"guest_additions_mode": "upload",
|
55
|
+
"headless": "false",
|
56
|
+
"iso_checksum": "849734f37346385dac2c101e4aacba4626bb141c",
|
57
|
+
"iso_checksum_type": "sha1",
|
58
|
+
"iso_url": "http://care.dlservice.microsoft.com/dl/download/6/2/A/62A76ABB-9990-4EFC-A4FE-C7D698DAEB96/9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_SERVER_EVAL_EN-US-IR3_SSS_X64FREE_EN-US_DV9.ISO"
|
59
|
+
}
|
60
|
+
}
|
@@ -0,0 +1,146 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<unattend xmlns="urn:schemas-microsoft-com:unattend">
|
3
|
+
<settings pass="windowsPE">
|
4
|
+
<component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
5
|
+
<SetupUILanguage>
|
6
|
+
<UILanguage>en-US</UILanguage>
|
7
|
+
</SetupUILanguage>
|
8
|
+
<InputLocale>en-US</InputLocale>
|
9
|
+
<SystemLocale>en-US</SystemLocale>
|
10
|
+
<UILanguage>en-US</UILanguage>
|
11
|
+
<UILanguageFallback>en-US</UILanguageFallback>
|
12
|
+
<UserLocale>en-US</UserLocale>
|
13
|
+
</component>
|
14
|
+
<component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
15
|
+
<DiskConfiguration>
|
16
|
+
<Disk wcm:action="add">
|
17
|
+
<CreatePartitions>
|
18
|
+
<CreatePartition wcm:action="add">
|
19
|
+
<Type>Primary</Type>
|
20
|
+
<Order>1</Order>
|
21
|
+
<Size>350</Size>
|
22
|
+
</CreatePartition>
|
23
|
+
<CreatePartition wcm:action="add">
|
24
|
+
<Order>2</Order>
|
25
|
+
<Type>Primary</Type>
|
26
|
+
<Extend>true</Extend>
|
27
|
+
</CreatePartition>
|
28
|
+
</CreatePartitions>
|
29
|
+
<ModifyPartitions>
|
30
|
+
<ModifyPartition wcm:action="add">
|
31
|
+
<Active>true</Active>
|
32
|
+
<Format>NTFS</Format>
|
33
|
+
<Label>boot</Label>
|
34
|
+
<Order>1</Order>
|
35
|
+
<PartitionID>1</PartitionID>
|
36
|
+
</ModifyPartition>
|
37
|
+
<ModifyPartition wcm:action="add">
|
38
|
+
<Format>NTFS</Format>
|
39
|
+
<Label>Windows 2012 R2</Label>
|
40
|
+
<Letter>C</Letter>
|
41
|
+
<Order>2</Order>
|
42
|
+
<PartitionID>2</PartitionID>
|
43
|
+
</ModifyPartition>
|
44
|
+
</ModifyPartitions>
|
45
|
+
<DiskID>0</DiskID>
|
46
|
+
<WillWipeDisk>true</WillWipeDisk>
|
47
|
+
</Disk>
|
48
|
+
</DiskConfiguration>
|
49
|
+
<ImageInstall>
|
50
|
+
<OSImage>
|
51
|
+
<InstallFrom>
|
52
|
+
<MetaData wcm:action="add">
|
53
|
+
<Key>/IMAGE/NAME </Key>
|
54
|
+
<Value>Windows Server 2012 R2 SERVERSTANDARDCORE</Value>
|
55
|
+
</MetaData>
|
56
|
+
</InstallFrom>
|
57
|
+
<InstallTo>
|
58
|
+
<DiskID>0</DiskID>
|
59
|
+
<PartitionID>2</PartitionID>
|
60
|
+
</InstallTo>
|
61
|
+
</OSImage>
|
62
|
+
</ImageInstall>
|
63
|
+
<UserData>
|
64
|
+
<ProductKey>
|
65
|
+
<WillShowUI>OnError</WillShowUI>
|
66
|
+
</ProductKey>
|
67
|
+
<AcceptEula>true</AcceptEula>
|
68
|
+
<FullName>Vagrant</FullName>
|
69
|
+
<Organization>Vagrant</Organization>
|
70
|
+
</UserData>
|
71
|
+
</component>
|
72
|
+
</settings>
|
73
|
+
<settings pass="generalize">
|
74
|
+
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
75
|
+
<SkipRearm>1</SkipRearm>
|
76
|
+
</component>
|
77
|
+
<component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
78
|
+
<PersistAllDeviceInstalls>false</PersistAllDeviceInstalls>
|
79
|
+
<DoNotCleanUpNonPresentDevices>false</DoNotCleanUpNonPresentDevices>
|
80
|
+
</component>
|
81
|
+
</settings>
|
82
|
+
<settings pass="oobeSystem">
|
83
|
+
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
84
|
+
<InputLocale>en-US</InputLocale>
|
85
|
+
<SystemLocale>en-US</SystemLocale>
|
86
|
+
<UILanguage>en-US</UILanguage>
|
87
|
+
<UserLocale>en-US</UserLocale>
|
88
|
+
</component>
|
89
|
+
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
90
|
+
<OOBE>
|
91
|
+
<HideEULAPage>true</HideEULAPage>
|
92
|
+
<HideLocalAccountScreen>true</HideLocalAccountScreen>
|
93
|
+
<HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
|
94
|
+
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>
|
95
|
+
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
96
|
+
<NetworkLocation>Home</NetworkLocation>
|
97
|
+
<ProtectYourPC>1</ProtectYourPC>
|
98
|
+
</OOBE>
|
99
|
+
<TimeZone>UTC</TimeZone>
|
100
|
+
<UserAccounts>
|
101
|
+
<AdministratorPassword>
|
102
|
+
<Value>vagrant</Value>
|
103
|
+
<PlainText>true</PlainText>
|
104
|
+
</AdministratorPassword>
|
105
|
+
<LocalAccounts>
|
106
|
+
<LocalAccount wcm:action="add">
|
107
|
+
<Password>
|
108
|
+
<Value>vagrant</Value>
|
109
|
+
<PlainText>true</PlainText>
|
110
|
+
</Password>
|
111
|
+
<Group>administrators</Group>
|
112
|
+
<DisplayName>Vagrant</DisplayName>
|
113
|
+
<Name>vagrant</Name>
|
114
|
+
<Description>Vagrant User</Description>
|
115
|
+
</LocalAccount>
|
116
|
+
</LocalAccounts>
|
117
|
+
</UserAccounts>
|
118
|
+
<AutoLogon>
|
119
|
+
<Password>
|
120
|
+
<Value>vagrant</Value>
|
121
|
+
<PlainText>true</PlainText>
|
122
|
+
</Password>
|
123
|
+
<Enabled>true</Enabled>
|
124
|
+
<Username>vagrant</Username>
|
125
|
+
</AutoLogon>
|
126
|
+
<FirstLogonCommands>
|
127
|
+
<SynchronousCommand wcm:action="add">
|
128
|
+
<CommandLine>cmd.exe /c C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File a:\boxstarter.ps1</CommandLine>
|
129
|
+
<Order>1</Order>
|
130
|
+
</SynchronousCommand>
|
131
|
+
</FirstLogonCommands>
|
132
|
+
</component>
|
133
|
+
</settings>
|
134
|
+
<settings pass="specialize">
|
135
|
+
<component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-ServerManager-SvrMgrNc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
136
|
+
<DoNotOpenServerManagerAtLogon>true</DoNotOpenServerManagerAtLogon>
|
137
|
+
</component>
|
138
|
+
<component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-IE-ESC" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
139
|
+
<IEHardenAdmin>false</IEHardenAdmin>
|
140
|
+
<IEHardenUser>false</IEHardenUser>
|
141
|
+
</component>
|
142
|
+
<component xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Microsoft-Windows-OutOfBoxExperience" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
|
143
|
+
<DoNotOpenInitialConfigurationTasksAtLogon>true</DoNotOpenInitialConfigurationTasksAtLogon>
|
144
|
+
</component>
|
145
|
+
</settings>
|
146
|
+
</unattend>
|
@@ -0,0 +1 @@
|
|
1
|
+
netsh advfirewall firewall set rule name="WinRM-HTTP" new action=allow
|
@@ -0,0 +1,12 @@
|
|
1
|
+
$WinlogonPath = "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon"
|
2
|
+
Remove-ItemProperty -Path $WinlogonPath -Name AutoAdminLogon
|
3
|
+
Remove-ItemProperty -Path $WinlogonPath -Name DefaultUserName
|
4
|
+
|
5
|
+
iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/mwrock/boxstarter/master/BuildScripts/bootstrapper.ps1'))
|
6
|
+
Get-Boxstarter -Force
|
7
|
+
|
8
|
+
$secpasswd = ConvertTo-SecureString "vagrant" -AsPlainText -Force
|
9
|
+
$cred = New-Object System.Management.Automation.PSCredential ("vagrant", $secpasswd)
|
10
|
+
|
11
|
+
Import-Module $env:appdata\boxstarter\boxstarter.chocolatey\boxstarter.chocolatey.psd1
|
12
|
+
Install-BoxstarterPackage -PackageName a:\package.ps1 -Credential $cred
|
Binary file
|
@@ -0,0 +1,44 @@
|
|
1
|
+
$ErrorActionPreference = "Stop"
|
2
|
+
|
3
|
+
. a:\Test-Command.ps1
|
4
|
+
|
5
|
+
Enable-RemoteDesktop
|
6
|
+
netsh advfirewall firewall add rule name="Remote Desktop" dir=in localport=3389 protocol=TCP action=allow
|
7
|
+
|
8
|
+
Update-ExecutionPolicy -Policy Unrestricted
|
9
|
+
|
10
|
+
if (Test-Command -cmdname 'Uninstall-WindowsFeature') {
|
11
|
+
Write-BoxstarterMessage "Removing unused features..."
|
12
|
+
Remove-WindowsFeature -Name 'Powershell-ISE'
|
13
|
+
Get-WindowsFeature |
|
14
|
+
? { $_.InstallState -eq 'Available' } |
|
15
|
+
Uninstall-WindowsFeature -Remove
|
16
|
+
}
|
17
|
+
|
18
|
+
#Install-WindowsUpdate -AcceptEula
|
19
|
+
|
20
|
+
Write-BoxstarterMessage "Removing page file"
|
21
|
+
$pageFileMemoryKey = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"
|
22
|
+
Set-ItemProperty -Path $pageFileMemoryKey -Name PagingFiles -Value ""
|
23
|
+
|
24
|
+
if(Test-PendingReboot){ Invoke-Reboot }
|
25
|
+
|
26
|
+
Write-BoxstarterMessage "Setting up winrm"
|
27
|
+
netsh advfirewall firewall add rule name="WinRM-HTTP" dir=in localport=5985 protocol=TCP action=allow
|
28
|
+
|
29
|
+
$enableArgs=@{Force=$true}
|
30
|
+
try {
|
31
|
+
$command=Get-Command Enable-PSRemoting
|
32
|
+
if($command.Parameters.Keys -contains "skipnetworkprofilecheck"){
|
33
|
+
$enableArgs.skipnetworkprofilecheck=$true
|
34
|
+
}
|
35
|
+
}
|
36
|
+
catch {
|
37
|
+
$global:error.RemoveAt(0)
|
38
|
+
}
|
39
|
+
Enable-PSRemoting @enableArgs
|
40
|
+
Enable-WSManCredSSP -Force -Role Server
|
41
|
+
winrm set winrm/config/client/auth '@{Basic="true"}'
|
42
|
+
winrm set winrm/config/service/auth '@{Basic="true"}'
|
43
|
+
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
|
44
|
+
Write-BoxstarterMessage "winrm setup complete"
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<unattend xmlns="urn:schemas-microsoft-com:unattend">
|
3
|
+
<settings pass="generalize">
|
4
|
+
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
5
|
+
<SkipRearm>1</SkipRearm>
|
6
|
+
</component>
|
7
|
+
<component name="Microsoft-Windows-PnpSysprep" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
8
|
+
<PersistAllDeviceInstalls>false</PersistAllDeviceInstalls>
|
9
|
+
<DoNotCleanUpNonPresentDevices>false</DoNotCleanUpNonPresentDevices>
|
10
|
+
</component>
|
11
|
+
</settings>
|
12
|
+
<settings pass="oobeSystem">
|
13
|
+
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
14
|
+
<InputLocale>en-US</InputLocale>
|
15
|
+
<SystemLocale>en-US</SystemLocale>
|
16
|
+
<UILanguage>en-US</UILanguage>
|
17
|
+
<UserLocale>en-US</UserLocale>
|
18
|
+
</component>
|
19
|
+
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
20
|
+
<OOBE>
|
21
|
+
<HideEULAPage>true</HideEULAPage>
|
22
|
+
<ProtectYourPC>1</ProtectYourPC>
|
23
|
+
<NetworkLocation>Home</NetworkLocation>
|
24
|
+
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
|
25
|
+
</OOBE>
|
26
|
+
<TimeZone>UTC</TimeZone>
|
27
|
+
<UserAccounts>
|
28
|
+
<AdministratorPassword>
|
29
|
+
<Value>vagrant</Value>
|
30
|
+
<PlainText>true</PlainText>
|
31
|
+
</AdministratorPassword>
|
32
|
+
<LocalAccounts>
|
33
|
+
<LocalAccount wcm:action="add">
|
34
|
+
<Password>
|
35
|
+
<Value>vagrant</Value>
|
36
|
+
<PlainText>true</PlainText>
|
37
|
+
</Password>
|
38
|
+
<Group>administrators</Group>
|
39
|
+
<DisplayName>Vagrant</DisplayName>
|
40
|
+
<Name>vagrant</Name>
|
41
|
+
<Description>Vagrant User</Description>
|
42
|
+
</LocalAccount>
|
43
|
+
</LocalAccounts>
|
44
|
+
</UserAccounts>
|
45
|
+
</component>
|
46
|
+
</settings>
|
47
|
+
<settings pass="specialize">
|
48
|
+
</settings>
|
49
|
+
</unattend>
|
@@ -0,0 +1,86 @@
|
|
1
|
+
$ErrorActionPreference = "Stop"
|
2
|
+
. a:\Test-Command.ps1
|
3
|
+
|
4
|
+
Write-Host "Enabling file sharing firewale rules"
|
5
|
+
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes
|
6
|
+
|
7
|
+
if(Test-Path "C:\Users\vagrant\VBoxGuestAdditions.iso") {
|
8
|
+
Write-Host "Installing Guest Additions"
|
9
|
+
certutil -addstore -f "TrustedPublisher" A:\oracle.cer
|
10
|
+
cinst 7zip.commandline -y
|
11
|
+
Move-Item C:\Users\vagrant\VBoxGuestAdditions.iso C:\Windows\Temp
|
12
|
+
7z x C:\Windows\Temp\VBoxGuestAdditions.iso -oC:\Windows\Temp\virtualbox
|
13
|
+
|
14
|
+
Start-Process -FilePath "C:\Windows\Temp\virtualbox\VBoxWindowsAdditions.exe" -ArgumentList "/S" -WorkingDirectory "C:\Windows\Temp\virtualbox" -Wait
|
15
|
+
|
16
|
+
Remove-Item C:\Windows\Temp\virtualbox -Recurse -Force
|
17
|
+
Remove-Item C:\Windows\Temp\VBoxGuestAdditions.iso -Force
|
18
|
+
}
|
19
|
+
|
20
|
+
Write-Host "Cleaning SxS..."
|
21
|
+
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
|
22
|
+
|
23
|
+
@(
|
24
|
+
"$env:localappdata\Nuget",
|
25
|
+
"$env:localappdata\temp\*",
|
26
|
+
"$env:windir\logs",
|
27
|
+
"$env:windir\panther",
|
28
|
+
"$env:windir\temp\*",
|
29
|
+
"$env:windir\winsxs\manifestcache"
|
30
|
+
) | % {
|
31
|
+
if(Test-Path $_) {
|
32
|
+
Write-Host "Removing $_"
|
33
|
+
try {
|
34
|
+
Takeown /d Y /R /f $_
|
35
|
+
Icacls $_ /GRANT:r administrators:F /T /c /q 2>&1 | Out-Null
|
36
|
+
Remove-Item $_ -Recurse -Force | Out-Null
|
37
|
+
} catch { $global:error.RemoveAt(0) }
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
Write-Host "defragging..."
|
42
|
+
if (Test-Command -cmdname 'Optimize-Volume') {
|
43
|
+
Optimize-Volume -DriveLetter C
|
44
|
+
} else {
|
45
|
+
Defrag.exe c: /H
|
46
|
+
}
|
47
|
+
|
48
|
+
Write-Host "0ing out empty space..."
|
49
|
+
$FilePath="c:\zero.tmp"
|
50
|
+
$Volume = Get-WmiObject win32_logicaldisk -filter "DeviceID='C:'"
|
51
|
+
$ArraySize= 64kb
|
52
|
+
$SpaceToLeave= $Volume.Size * 0.05
|
53
|
+
$FileSize= $Volume.FreeSpace - $SpacetoLeave
|
54
|
+
$ZeroArray= new-object byte[]($ArraySize)
|
55
|
+
|
56
|
+
$Stream= [io.File]::OpenWrite($FilePath)
|
57
|
+
try {
|
58
|
+
$CurFileSize = 0
|
59
|
+
while($CurFileSize -lt $FileSize) {
|
60
|
+
$Stream.Write($ZeroArray,0, $ZeroArray.Length)
|
61
|
+
$CurFileSize +=$ZeroArray.Length
|
62
|
+
}
|
63
|
+
}
|
64
|
+
finally {
|
65
|
+
if($Stream) {
|
66
|
+
$Stream.Close()
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
Del $FilePath
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
Write-Host "copying auto unattend file"
|
75
|
+
mkdir C:\Windows\setup\scripts
|
76
|
+
copy-item a:\SetupComplete-2012.cmd C:\Windows\setup\scripts\SetupComplete.cmd -Force
|
77
|
+
|
78
|
+
mkdir C:\Windows\Panther\Unattend
|
79
|
+
copy-item a:\postunattend.xml C:\Windows\Panther\Unattend\unattend.xml
|
80
|
+
|
81
|
+
Write-Host "Recreate pagefile after sysprep"
|
82
|
+
$System = GWMI Win32_ComputerSystem -EnableAllPrivileges
|
83
|
+
if ($system -ne $null) {
|
84
|
+
$System.AutomaticManagedPagefile = $true
|
85
|
+
$System.Put()
|
86
|
+
}
|