├── Source ├── Hydration │ ├── Scripts │ │ ├── Pause.vbs │ │ └── DataPartition.txt │ ├── Applications │ │ ├── Install - WSUS │ │ │ ├── HYDWSUSConfig.ps1 │ │ │ └── Install-HYDWSUS.ps1 │ │ ├── Install - ConfigMgr Reporting Services Point │ │ │ ├── HYDCMRSPConfig.ps1 │ │ │ └── Install-HYDCMRSP.ps1 │ │ ├── Configure - Final Cleanup │ │ │ ├── Thumbs.db │ │ │ ├── Servers.png │ │ │ ├── FinalConfig.hta │ │ │ └── Configure-FinalCleanup.wsf │ │ ├── Install - BGInfo │ │ │ ├── Source │ │ │ │ ├── Bginfo.lnk │ │ │ │ └── Custom.bgi │ │ │ └── Install-BGInfo.wsf │ │ ├── Install - ConfigMgr │ │ │ ├── ConfigMgrUnattend.ini │ │ │ ├── ConfigMgrUnattendWithoutDP.ini │ │ │ └── Install-ConfigMgr.wsf │ │ ├── Install - SQL Server 2019 Standard │ │ │ ├── ConfigurationFile.ini │ │ │ └── Install-HYDSQLServer2019.ps1 │ │ ├── Configure - Create AD Structure │ │ │ ├── ADOUList.csv │ │ │ ├── ADUserList.csv │ │ │ └── Create-ADStructure.ps1 │ │ ├── Configure - Enterprise CA │ │ │ └── Configure-EnterpriseCA.ps1 │ │ ├── Configure - Create AD Subnets │ │ │ └── Configure-CreateADSubnets.ps1 │ │ ├── Configure - Create NO_SMS_ON_DRIVE │ │ │ └── New-NOSMSONDRIVEFile.ps1 │ │ ├── Install - Windows ADK 11 WinPE Addon │ │ │ └── Install-HYDWindowsADK11WinPEAddon.ps1 │ │ ├── Install - Windows ADK 11 │ │ │ └── Install-HYDWindowsADK11.ps1 │ │ ├── Configure - Authorize DHCP in AD │ │ │ └── Authorize-DHCP.ps1 │ │ ├── Configure - Set Administrator Autologon in Domain │ │ │ └── Configure-SetAdministratorAutologoninDomain.wsf │ │ ├── Configure - MDT Integration with ConfigMgr │ │ │ └── Configure-MDTIntegration.ps1 │ │ ├── Configure - Open Firewall for MDT Database │ │ │ └── Configure-OpenFirewallforMDTDatabase.wsf │ │ ├── Configure - Open Firewall for SQL Server Communication │ │ │ └── Configure-OpenFirewallforSQLCommunication.wsf │ │ ├── Install - ConfigMgr Software Update Point │ │ │ └── Install-HYDCMSUP.ps1 │ │ ├── Configure - WDS │ │ │ └── Configure-WDS.wsf │ │ ├── Configure - WSUS Settings │ │ │ └── Invoke-WSUSConfiguration.ps1 │ │ ├── Configure - Extend AD for ConfigMgr │ │ │ └── Configure-ExtendADforConfigMgr.wsf │ │ ├── Configure - Set SQL Server Memory Usage │ │ │ └── Configure-SQLServerMemory.wsf │ │ ├── Configure - Set AD permissions for ConfigMgr │ │ │ └── Configure-SetADPermissionsForConfigMgr.wsf │ │ ├── Install - SQL Server 2019 Reporting Services │ │ │ └── Install-HYDSSRS.ps1 │ │ └── Install - SQL Server 2019 Express │ │ │ └── Invoke-VIAInstallSQLServerExpress.ps1 │ ├── Control │ │ ├── OperatingSystemGroups.xml │ │ ├── TaskSequenceGroups.xml │ │ ├── ApplicationGroups.xml │ │ ├── OperatingSystems.xml │ │ ├── TaskSequences.xml │ │ ├── PC0001 │ │ │ └── Unattend.xml │ │ ├── PC0002 │ │ │ └── Unattend.xml │ │ ├── PC0003 │ │ │ └── Unattend.xml │ │ ├── PC0004 │ │ │ └── Unattend.xml │ │ ├── CM01 │ │ │ └── Unattend.xml │ │ ├── DC01 │ │ │ └── Unattend.xml │ │ ├── DP01 │ │ │ └── Unattend.xml │ │ ├── FS01 │ │ │ └── Unattend.xml │ │ └── MDT01 │ │ │ └── Unattend.xml │ └── Tools │ │ └── Modules │ │ └── HydrationLogging │ │ └── HydrationLogging.psm1 └── Media │ └── Control │ ├── Bootstrap.ini │ ├── CustomSettings_PC0002.ini │ ├── CustomSettings_PC0001.ini │ ├── CustomSettings_PC0003.ini │ ├── CustomSettings_PC0004.ini │ ├── CustomSettings_FS01.ini │ ├── CustomSettings_MDT01.ini │ ├── CustomSettings_CM01.ini │ ├── CustomSettings_DP01.ini │ ├── CustomSettings.ini │ └── CustomSettings_DC01.ini ├── docs ├── BGInfo.png ├── ADk11-1.png ├── CMCopied.png ├── MDTSetup.png ├── image-28.png ├── image-3.png ├── ADK11Copied.png ├── MDTCopied.png ├── SSMSCopied.png ├── HyperVconsole.png ├── ADK11WinPECopied.png ├── ADk11WinPEAddon.png ├── CMPreReqsCopied.png ├── Deploying-DC01.png ├── ISOControlFolder.png ├── W10-WIM-Copied.png ├── W11-WIM-Copied.png ├── CM01OptionalRoles.png ├── ODBC-Driver-Copied.png ├── WS2022-WIM-Copied.png ├── ADk11WinPEAddonSetup.png ├── Windows-ADK-11-Setup.png ├── Hydration-Kit-ISO-file.png ├── WorkbenchUpdatingMedia.png ├── Apps-in-Hydration-Kit-DS-1.png ├── SnapshotFromTraining-w700.jpg ├── WS2022-Sources-Sxs-Copied.png ├── Hydration-Kit-Source-Folder.png ├── SQL-Server-2019-CU-14-Copied.png ├── SQL-Server-2019-Express-Copied.png ├── SQL-Server-2019-Standard-Copied.png ├── SQL-Server-Reporting-Services-Copied.png ├── Running-the-Hydration-Kit-Setup-Scripts.png ├── Running-the-Hydration-Kit-VM-Creation-Script-1024x180.png ├── Downloading-SQL-Server-2019-Express-from-web-installer.png └── Downloading-SQL-Server-2019-Express-from-web-installer-002-Download-Page.png ├── Update-MDTMediaCopyToHost.ps1 ├── LICENSE ├── New-LabVMsForHyperV.ps1 └── New-HydrationKitSetup.ps1 /Source/Hydration/Scripts/Pause.vbs: -------------------------------------------------------------------------------- 1 | msgbox "Click OK to continue." -------------------------------------------------------------------------------- /docs/BGInfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/BGInfo.png -------------------------------------------------------------------------------- /Source/Media/Control/Bootstrap.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | 4 | [Default] 5 | SkipBDDWelcome=YES -------------------------------------------------------------------------------- /docs/ADk11-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/ADk11-1.png -------------------------------------------------------------------------------- /docs/CMCopied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/CMCopied.png -------------------------------------------------------------------------------- /docs/MDTSetup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/MDTSetup.png -------------------------------------------------------------------------------- /docs/image-28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/image-28.png -------------------------------------------------------------------------------- /docs/image-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/image-3.png -------------------------------------------------------------------------------- /docs/ADK11Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/ADK11Copied.png -------------------------------------------------------------------------------- /docs/MDTCopied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/MDTCopied.png -------------------------------------------------------------------------------- /docs/SSMSCopied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/SSMSCopied.png -------------------------------------------------------------------------------- /docs/HyperVconsole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/HyperVconsole.png -------------------------------------------------------------------------------- /docs/ADK11WinPECopied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/ADK11WinPECopied.png -------------------------------------------------------------------------------- /docs/ADk11WinPEAddon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/ADk11WinPEAddon.png -------------------------------------------------------------------------------- /docs/CMPreReqsCopied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/CMPreReqsCopied.png -------------------------------------------------------------------------------- /docs/Deploying-DC01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/Deploying-DC01.png -------------------------------------------------------------------------------- /docs/ISOControlFolder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/ISOControlFolder.png -------------------------------------------------------------------------------- /docs/W10-WIM-Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/W10-WIM-Copied.png -------------------------------------------------------------------------------- /docs/W11-WIM-Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/W11-WIM-Copied.png -------------------------------------------------------------------------------- /docs/CM01OptionalRoles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/CM01OptionalRoles.png -------------------------------------------------------------------------------- /docs/ODBC-Driver-Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/ODBC-Driver-Copied.png -------------------------------------------------------------------------------- /docs/WS2022-WIM-Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/WS2022-WIM-Copied.png -------------------------------------------------------------------------------- /docs/ADk11WinPEAddonSetup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/ADk11WinPEAddonSetup.png -------------------------------------------------------------------------------- /docs/Windows-ADK-11-Setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/Windows-ADK-11-Setup.png -------------------------------------------------------------------------------- /docs/Hydration-Kit-ISO-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/Hydration-Kit-ISO-file.png -------------------------------------------------------------------------------- /docs/WorkbenchUpdatingMedia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/WorkbenchUpdatingMedia.png -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - WSUS/HYDWSUSConfig.ps1: -------------------------------------------------------------------------------- 1 | $wsusContentPath = 'E:\WsusContent' 2 | $sqlInstanceName = "$env:COMPUTERNAME" -------------------------------------------------------------------------------- /docs/Apps-in-Hydration-Kit-DS-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/Apps-in-Hydration-Kit-DS-1.png -------------------------------------------------------------------------------- /docs/SnapshotFromTraining-w700.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/SnapshotFromTraining-w700.jpg -------------------------------------------------------------------------------- /docs/WS2022-Sources-Sxs-Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/WS2022-Sources-Sxs-Copied.png -------------------------------------------------------------------------------- /Source/Hydration/Scripts/DataPartition.txt: -------------------------------------------------------------------------------- 1 | sel disk 0 2 | cre par pri 3 | format fs=ntfs quick 4 | assign letter = E: 5 | exit 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/Hydration-Kit-Source-Folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/Hydration-Kit-Source-Folder.png -------------------------------------------------------------------------------- /docs/SQL-Server-2019-CU-14-Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/SQL-Server-2019-CU-14-Copied.png -------------------------------------------------------------------------------- /docs/SQL-Server-2019-Express-Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/SQL-Server-2019-Express-Copied.png -------------------------------------------------------------------------------- /docs/SQL-Server-2019-Standard-Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/SQL-Server-2019-Standard-Copied.png -------------------------------------------------------------------------------- /docs/SQL-Server-Reporting-Services-Copied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/SQL-Server-Reporting-Services-Copied.png -------------------------------------------------------------------------------- /docs/Running-the-Hydration-Kit-Setup-Scripts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/Running-the-Hydration-Kit-Setup-Scripts.png -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - ConfigMgr Reporting Services Point/HYDCMRSPConfig.ps1: -------------------------------------------------------------------------------- 1 | $SSRSUsername = "VIAMONSTRA\CM_SR" 2 | $SSRSPassword = "P@ssw0rd" 3 | $SSRSInstanceName = "SSRS" -------------------------------------------------------------------------------- /docs/Running-the-Hydration-Kit-VM-Creation-Script-1024x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/Running-the-Hydration-Kit-VM-Creation-Script-1024x180.png -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Final Cleanup/Thumbs.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/Source/Hydration/Applications/Configure - Final Cleanup/Thumbs.db -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - BGInfo/Source/Bginfo.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/Source/Hydration/Applications/Install - BGInfo/Source/Bginfo.lnk -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - BGInfo/Source/Custom.bgi: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/Source/Hydration/Applications/Install - BGInfo/Source/Custom.bgi -------------------------------------------------------------------------------- /docs/Downloading-SQL-Server-2019-Express-from-web-installer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/Downloading-SQL-Server-2019-Express-from-web-installer.png -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Final Cleanup/Servers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/Source/Hydration/Applications/Configure - Final Cleanup/Servers.png -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - ConfigMgr/ConfigMgrUnattend.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/Source/Hydration/Applications/Install - ConfigMgr/ConfigMgrUnattend.ini -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - ConfigMgr/ConfigMgrUnattendWithoutDP.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/Source/Hydration/Applications/Install - ConfigMgr/ConfigMgrUnattendWithoutDP.ini -------------------------------------------------------------------------------- /docs/Downloading-SQL-Server-2019-Express-from-web-installer-002-Download-Page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/docs/Downloading-SQL-Server-2019-Express-from-web-installer-002-Download-Page.png -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - SQL Server 2019 Standard/ConfigurationFile.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DeploymentResearch/HydrationKitWS2022/HEAD/Source/Hydration/Applications/Install - SQL Server 2019 Standard/ConfigurationFile.ini -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Create AD Structure/ADOUList.csv: -------------------------------------------------------------------------------- 1 | Name,Path 2 | ViaMonstra,"dc=corp,dc=viamonstra,dc=com" 3 | Servers,"OU=ViaMonstra,dc=corp,dc=viamonstra,dc=com" 4 | Workstations,"OU=ViaMonstra,dc=corp,dc=viamonstra,dc=com" 5 | Service Accounts,"OU=ViaMonstra,dc=corp,dc=viamonstra,dc=com" 6 | Security Groups,"OU=ViaMonstra,dc=corp,dc=viamonstra,dc=com" 7 | Users,"OU=ViaMonstra,dc=corp,dc=viamonstra,dc=com" -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings_PC0002.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | Properties=HydrationOSDComputerName 4 | 5 | [Default] 6 | HydrationOSDComputerName=PC0002 7 | JoinDomain=corp.viamonstra.com 8 | DomainAdmin=VIAMONSTRA\Administrator 9 | DomainAdminPassword=P@ssw0rd 10 | MachineObjectOU=ou=Workstations,ou=ViaMonstra,dc=corp,dc=viamonstra,dc=com 11 | OSDAdapterCount=1 12 | OSDAdapter0DNSServerList=192.168.25.200 13 | OSDAdapter0Gateways=192.168.25.1 14 | OSDAdapter0IPAddressList=192.168.25.12 15 | OSDAdapter0SubnetMask=255.255.255.0 16 | OSDAdapter0TCPIPNetBiosOptions=1 -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings_PC0001.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | Properties=HydrationOSDComputerName 4 | 5 | [Default] 6 | HydrationOSDComputerName=PC0001 7 | JoinDomain=corp.viamonstra.com 8 | DomainAdmin=Administrator 9 | DomainAdminDomain=VIAMONSTRA 10 | DomainAdminPassword=P@ssw0rd 11 | MachineObjectOU=ou=Workstations,ou=ViaMonstra,dc=corp,dc=viamonstra,dc=com 12 | OSDAdapterCount=1 13 | OSDAdapter0DNSServerList=192.168.25.200 14 | OSDAdapter0Gateways=192.168.25.1 15 | OSDAdapter0IPAddressList=192.168.25.11 16 | OSDAdapter0SubnetMask=255.255.255.0 17 | OSDAdapter0TCPIPNetBiosOptions=1 -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings_PC0003.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | Properties=HydrationOSDComputerName 4 | 5 | [Default] 6 | HydrationOSDComputerName=PC0003 7 | JoinDomain=corp.viamonstra.com 8 | DomainAdmin=Administrator 9 | DomainAdminDomain=VIAMONSTRA 10 | DomainAdminPassword=P@ssw0rd 11 | MachineObjectOU=ou=Workstations,ou=ViaMonstra,dc=corp,dc=viamonstra,dc=com 12 | OSDAdapterCount=1 13 | OSDAdapter0DNSServerList=192.168.25.200 14 | OSDAdapter0Gateways=192.168.25.1 15 | OSDAdapter0IPAddressList=192.168.25.13 16 | OSDAdapter0SubnetMask=255.255.255.0 17 | OSDAdapter0TCPIPNetBiosOptions=1 -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings_PC0004.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | Properties=HydrationOSDComputerName 4 | 5 | [Default] 6 | HydrationOSDComputerName=PC0004 7 | JoinDomain=corp.viamonstra.com 8 | DomainAdmin=Administrator 9 | DomainAdminDomain=VIAMONSTRA 10 | DomainAdminPassword=P@ssw0rd 11 | MachineObjectOU=ou=Workstations,ou=ViaMonstra,dc=corp,dc=viamonstra,dc=com 12 | OSDAdapterCount=1 13 | OSDAdapter0DNSServerList=192.168.25.200 14 | OSDAdapter0Gateways=192.168.25.1 15 | OSDAdapter0IPAddressList=192.168.25.14 16 | OSDAdapter0SubnetMask=255.255.255.0 17 | OSDAdapter0TCPIPNetBiosOptions=1 -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings_FS01.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | Properties=HydrationOSDComputerName 4 | 5 | [Default] 6 | HydrationOSDComputerName=FS01 7 | JoinDomain=corp.viamonstra.com 8 | DomainAdmin=Administrator 9 | DomainAdminDomain=VIAMONSTRA 10 | DomainAdminPassword=P@ssw0rd 11 | MachineObjectOU=ou=Servers,ou=ViaMonstra,dc=corp,dc=viamonstra,dc=com 12 | OSDAdapterCount=1 13 | OSDAdapter0DNSServerList=192.168.25.200 14 | OSDAdapter0Gateways=192.168.25.1 15 | OSDAdapter0IPAddressList=192.168.25.213 16 | OSDAdapter0SubnetMask=255.255.255.0 17 | OSDAdapter0TCPIPNetBiosOptions=1 18 | HideShell=YES 19 | -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings_MDT01.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | Properties=HydrationOSDComputerName 4 | 5 | [Default] 6 | HydrationOSDComputerName=MDT01 7 | JoinDomain=corp.viamonstra.com 8 | DomainAdmin=Administrator 9 | DomainAdminDomain=VIAMONSTRA 10 | DomainAdminPassword=P@ssw0rd 11 | MachineObjectOU=ou=Servers,ou=ViaMonstra,dc=corp,dc=viamonstra,dc=com 12 | OSDAdapterCount=1 13 | OSDAdapter0DNSServerList=192.168.25.200 14 | OSDAdapter0Gateways=192.168.25.1 15 | OSDAdapter0IPAddressList=192.168.25.210 16 | OSDAdapter0SubnetMask=255.255.255.0 17 | OSDAdapter0TCPIPNetBiosOptions=1 18 | HideShell=YES 19 | -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings_CM01.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default, SQLServer 3 | Properties=HydrationOSDComputerName 4 | 5 | [Default] 6 | HydrationOSDComputerName=CM01 7 | JoinDomain=corp.viamonstra.com 8 | DomainAdmin=Administrator 9 | DomainAdminDomain=VIAMONSTRA 10 | DomainAdminPassword=P@ssw0rd 11 | MachineObjectOU=ou=Servers,ou=ViaMonstra,dc=corp,dc=viamonstra,dc=com 12 | OSDAdapterCount=1 13 | OSDAdapter0DNSServerList=192.168.25.200 14 | OSDAdapter0Gateways=192.168.25.1 15 | OSDAdapter0IPAddressList=192.168.25.214 16 | OSDAdapter0SubnetMask=255.255.255.0 17 | OSDAdapter0TCPIPNetBiosOptions=1 18 | 19 | [SQLServer] 20 | SQLSYSADMINACCOUNTS=VIAMONSTRA\Administrator 21 | 22 | -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings_DP01.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | Properties=HydrationOSDComputerName 4 | 5 | [Default] 6 | HydrationOSDComputerName=DP01 7 | JoinDomain=corp.viamonstra.com 8 | DomainAdmin=Administrator 9 | DomainAdminDomain=VIAMONSTRA 10 | DomainAdminPassword=P@ssw0rd 11 | MachineObjectOU=ou=Servers,ou=ViaMonstra,dc=corp,dc=viamonstra,dc=com 12 | OSDAdapterCount=1 13 | OSDAdapter0DNSServerList=192.168.25.200 14 | OSDAdapter0Gateways=192.168.25.1 15 | OSDAdapter0IPAddressList=192.168.25.245 16 | OSDAdapter0SubnetMask=255.255.255.0 17 | OSDAdapter0TCPIPNetBiosOptions=1 18 | ;HideShell=YES 19 | 20 | ; KMS public key for Windows Server 2016 Standard 21 | ProductKey=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY 22 | -------------------------------------------------------------------------------- /Update-MDTMediaCopyToHost.ps1: -------------------------------------------------------------------------------- 1 | #If you need to copy the media from your Deployment Share, run this optional script locally on the Deployment Share server to update MDT Media and copy it to another host 2 | $DeploymentShareName = "CMLab" 3 | $DSRootPath = "D:\CMLab" 4 | $HostPath = "\\HyperV01\c$\ISO" 5 | $MediaFilename = "CMLab.iso" 6 | 7 | Import-Module "C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1" 8 | if (!(Get-PSDrive | Where-Object name -eq $DeploymentShareName)) { 9 | New-PSDrive -name $DeploymentShareName -PSProvider MDTProvider -root "$DSRootPath\DS" 10 | } 11 | Update-MDTMedia -Path "$($DeploymentShareName):\MEDIA\MEDIA001" 12 | robocopy "$DSRootPath\ISO" $HostPath $MediaFilename /MT:32 /v /J /NOOFFLOAD -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | 4 | [Default] 5 | _SMSTSORGNAME=%TaskSequenceID% soon to be in service... 6 | OrgName=ViaMonstra 7 | OSInstall=Y 8 | TimeZoneName=Pacific Standard Time 9 | UserDataLocation=NONE 10 | DoCapture=NO 11 | ApplyGPOPack=NO 12 | AdminPassword=P@ssw0rd 13 | 14 | ; KMS public key for Windows Server 2022 Standard 15 | ProductKey=VDYBN-27WPP-V4HQT-9VMD4-VMK7H 16 | 17 | SkipAdminPassword=YES 18 | SkipApplications=YES 19 | SkipBitLocker=YES 20 | SkipCapture=YES 21 | SkipComputerName=YES 22 | SkipDomainMembership=YES 23 | SkipFinalSummary=YES 24 | SkipLocaleSelection=YES 25 | SkipProductKey=YES 26 | SkipSummary=YES 27 | SkipTaskSequence=NO 28 | SkipTimeZone=YES 29 | SkipUserData=YES 30 | SkipRoles=YES -------------------------------------------------------------------------------- /Source/Hydration/Control/OperatingSystemGroups.xml: -------------------------------------------------------------------------------- 1 | defaultdefault folder (root)4/16/2023 9:32:30 PMADMLabs\administrator{11289f4d-6867-40b0-aba1-882044730e05}{20fab3bf-deba-4de0-9d8d-f0a73cf036e0}{e48b03db-5d22-467c-afdb-f4f13baead29}hiddenThis folder contains shared source items that have not been made explicitly visible in this deployment share.10/28/2021 2:33:30 AMROGUE-512\Administrator -------------------------------------------------------------------------------- /Source/Hydration/Control/TaskSequenceGroups.xml: -------------------------------------------------------------------------------- 1 | defaultdefault folder (root)4/16/2023 9:31:05 PMCANARY\andrew{1f2460ea-e142-426e-9a39-abf455d4edef}{8b361932-e14e-4d4d-a925-9580548735be}{334799d0-b15f-40a1-b304-3e2d5d3ea60c}{2c63401f-10b0-4877-b8c4-5c2e0a45fbf5}{997eb638-4dc6-4a7f-b55a-9281cce346f4}{28b2f10c-6fdd-4692-9963-b05e6a081bf0}{3e8ef47e-026c-44a5-b840-c74c14ac9191}{8fb487c4-ebba-49ff-8715-3fc7a604adeb}{294fe169-bbf1-4494-88a0-32d81b45346f}hiddenThis folder contains shared source items that have not been made explicitly visible in this deployment share. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 DeploymentResearch 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Enterprise CA/Configure-EnterpriseCA.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | Solution: Hydration 3 | Purpose: Used to create the ViaMonstra Root CA 4 | Version: 1.2 - January 10, 2013 5 | 6 | This script is provided "AS IS" with no warranties, confers no rights and 7 | is not supported by the authors or Deployment Artist. 8 | 9 | Author - Johan Arwidmark 10 | Twitter: @jarwidmark 11 | Blog : http://deploymentresearch.com 12 | #> 13 | 14 | 15 | # Determine where to do the logging 16 | $tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment 17 | $logPath = $tsenv.Value("LogPath") 18 | $logFile = "$logPath\$($myInvocation.MyCommand).log" 19 | 20 | # Start the logging 21 | Start-Transcript $logFile 22 | Write-Host "Logging to $logFile" 23 | 24 | # Configure Enterprise CA 25 | Install-AdcsCertificationAuthority ` 26 | -CAType EnterpriseRootCA ` 27 | -CACommonName "ViaMonstraRootCA" ` 28 | -KeyLength 2048 ` 29 | -HashAlgorithm SHA256 ` 30 | -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" ` 31 | -ValidityPeriod Years ` 32 | -ValidityPeriodUnits 5 ` 33 | -Force 34 | 35 | # Stop logging 36 | Stop-Transcript 37 | 38 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Create AD Subnets/Configure-CreateADSubnets.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | Solution: Hydration 3 | Purpose: Used to create AD Sites and Subnets 4 | Version: 1.2 - January 10, 2013 5 | 6 | This script is provided "AS IS" with no warranties, confers no rights and 7 | is not supported by the authors or Deployment Artist. 8 | 9 | Author - Johan Arwidmark 10 | Twitter: @jarwidmark 11 | Blog : http://deploymentresearch.com 12 | #> 13 | 14 | 15 | # Determine where to do the logging 16 | $tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment 17 | $logPath = $tsenv.Value("LogPath") 18 | $logFile = "$logPath\$($myInvocation.MyCommand).log" 19 | 20 | # Start the logging 21 | Start-Transcript $logFile 22 | Write-Host "Logging to $logFile" 23 | 24 | # Create Empty AD Sites (sites with no domain controllers, for lab purpose only) 25 | New-ADReplicationSite -Name Stockholm 26 | New-ADReplicationSite -Name Liverpool 27 | 28 | # Create AD Subnets 29 | New-ADReplicationSubnet -Name "192.168.25.0/24" -Site NewYork 30 | New-ADReplicationSubnet -Name "192.168.26.0/24" -Site Stockholm 31 | New-ADReplicationSubnet -Name "192.168.27.0/24" -Site Liverpool 32 | 33 | # Stop logging 34 | Stop-Transcript 35 | 36 | -------------------------------------------------------------------------------- /Source/Media/Control/CustomSettings_DC01.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | Priority=Default 3 | Properties=HydrationOSDComputerName 4 | 5 | [Default] 6 | HydrationOSDComputerName=DC01 7 | JoinWorkgroup=WORKGROUP 8 | OSDAdapterCount=1 9 | OSDAdapter0DNSServerList=127.0.0.1 10 | OSDAdapter0Gateways=192.168.25.1 11 | OSDAdapter0IPAddressList=192.168.25.200 12 | OSDAdapter0SubnetMask=255.255.255.0 13 | OSDAdapter0TCPIPNetBiosOptions=1 14 | 15 | ; Active Directory Configuration 16 | ReplicaOrNewDomain=Domain 17 | NewDomain=Forest 18 | NewDomainDNSName=corp.viamonstra.com 19 | DomainNetBiosName=VIAMONSTRA 20 | ForestLevel=4 21 | DomainLevel=4 22 | AutoConfigDNS=Yes 23 | ConfirmGC=Yes 24 | CriticalReplicationOnly=No 25 | ;DatabasePath=D:\NTDS 26 | ;ADDSLogPath=D:\NTDS 27 | ;SysVolPath=D:\SYSVOL 28 | SafeModeAdminPassword=P@ssw0rd 29 | SiteName=NewYork 30 | 31 | ; DHCP Configuration 32 | DHCPServerOptionRouter=192.168.25.1 33 | DHCPServerOptionDNSServer=192.168.25.200 34 | DHCPServerOptionDNSDomainName=corp.viamonstra.com 35 | DHCPScopes0SubnetMask=255.255.255.0 36 | DHCPScopes0IP=192.168.25.0 37 | DHCPScopes0Name=192.168.25.0/24 38 | DHCPScopes0StartIP=192.168.25.100 39 | DHCPScopes0EndIP=192.168.25.199 40 | DHCPScopes0OptionLease=691200 41 | DHCPScopes=1 42 | 43 | 44 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Create NO_SMS_ON_DRIVE/New-NOSMSONDRIVEFile.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2021-12-28 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | Author - Andrew Johnson 16 | Twitter: @andrewjnet 17 | Blog : http://andrewj.net 18 | 19 | ************************************************************************************************************************ 20 | 21 | #> 22 | 23 | 24 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 25 | $Deployroot = $tsenv.Value("DeployRoot") 26 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 27 | 28 | Import-Module -Name HydrationLogging 29 | 30 | 31 | Set-HYDLogPath 32 | 33 | Write-HYDLog -Message "Creating NO_SMS_ON_DRIVE.SMS" 34 | 35 | New-Item C:\NO_SMS_ON_DRIVE.SMS -ItemType file -Force 36 | 37 | if (!(Test-Path -Path C:\NO_SMS_ON_DRIVE.SMS)) { 38 | Write-HYDLog -Message "Failed to create C:\NO_SMS_ON_DRIVE.SMS. aborting..." -LogLevel 2; Break 39 | } 40 | else{ 41 | Write-HYDLog -Message "C:\NO_SMS_ON_DRIVE.SMS created successfully." 42 | } -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - Windows ADK 11 WinPE Addon/Install-HYDWindowsADK11WinPEAddon.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2021-10-07 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | 16 | ************************************************************************************************************************ 17 | 18 | #> 19 | 20 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 21 | $Deployroot = $tsenv.Value("DeployRoot") 22 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 23 | 24 | Import-Module -Name HydrationLogging 25 | 26 | Set-HYDLogPath 27 | write-HYDLog -Message "Starting setup... " 28 | 29 | $SetupFile = "$PSScriptRoot\Source\adkwinpesetup.exe" 30 | $Arguments = "/Features OptionId.WindowsPreinstallationEnvironment /norestart /quiet /ceip off" 31 | 32 | # Validation 33 | if (!(Test-Path -path $SetupFile)) {Write-HYDLog "Could not find Windows ADK 10 WinPE Addon Setup files, aborting..." -LogLevel 2;Break} 34 | 35 | # Install Windows ADK 10 WinPE Addon 36 | Write-HYDLog "About to run the following command: $SetupFile $Arguments" 37 | Start-Process -FilePath $SetupFile -ArgumentList $Arguments -NoNewWindow -Wait -Passthru 38 | 39 | Write-HYDLog "Setup completed..." 40 | 41 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Create AD Structure/ADUserList.csv: -------------------------------------------------------------------------------- 1 | SAMAccountName,Description,Password,Password Expires,Path 2 | MDT_BA,MDT Build Account,P@ssw0rd,False,"OU=Service Accounts,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 3 | MDT_JD,MDT Join Domain Account,P@ssw0rd,False,"OU=Service Accounts,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 4 | CM_CP,ConfigMgr Client Push Account,P@ssw0rd,False,"OU=Service Accounts,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 5 | CM_SR,ConfigMgr Reporting Services Account,P@ssw0rd,False,"OU=Service Accounts,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 6 | CM_JD,ConfigMgr Join Domain Account,P@ssw0rd,False,"OU=Service Accounts,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 7 | Mike,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 8 | Johan,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 9 | Frank,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 10 | Bob,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 11 | Michael,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 12 | Pete,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 13 | Doris,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 14 | Ami,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 15 | Mathilda,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" 16 | Markus,Standard User,P@ssw0rd,False,"OU=Users,OU=ViaMonstra,DC=corp,DC=viamonstra,DC=com" -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - Windows ADK 11/Install-HYDWindowsADK11.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2021-10-07 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | 16 | ************************************************************************************************************************ 17 | 18 | #> 19 | 20 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 21 | $Deployroot = $tsenv.Value("DeployRoot") 22 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 23 | 24 | Import-Module -Name HydrationLogging 25 | 26 | Set-HYDLogPath 27 | write-HYDLog -Message "Starting setup... " 28 | 29 | $SetupFile = "$PSScriptRoot\Source\adksetup.exe" 30 | $Arguments = "/Features OptionId.DeploymentTools OptionId.ImagingAndConfigurationDesigner OptionId.ICDConfigurationDesigner OptionId.UserStateMigrationTool /norestart /quiet /ceip off" 31 | 32 | # Validation 33 | if (!(Test-Path -path $SetupFile)) {Write-HYDLog "Could not find Windows ADK 10 Setup files, aborting..." -LogLevel 2;Break} 34 | 35 | # Install Windows ADK 11 36 | Write-HYDLog "About to run the following command: $SetupFile $Arguments" 37 | Start-Process -FilePath $SetupFile -ArgumentList $Arguments -NoNewWindow -Wait -Passthru 38 | 39 | Write-HYDLog "Setup completed..." 40 | 41 | 42 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Authorize DHCP in AD/Authorize-DHCP.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2021-11-22 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | 16 | ************************************************************************************************************************ 17 | 18 | #> 19 | 20 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 21 | $Deployroot = $tsenv.Value("DeployRoot") 22 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 23 | 24 | Import-Module -Name HydrationLogging -Verbose 25 | 26 | Set-HYDLogPath 27 | write-HYDLog -Message "Starting configuration... " 28 | 29 | # Selecting the first network adapter 30 | $Interface = Get-NetAdapter -Name *Ethernet* | Select -First 1 31 | $ifIndex = Get-NetIPAddress -InterfaceIndex $Interface.ifIndex -AddressFamily IPv4 32 | $IPAddress = $ifIndex.IPv4Address 33 | 34 | write-HYDLog -Message "The DHCP Server have the IP address: $IPAddress" 35 | 36 | # Authorize DHCP SERVER 37 | Add-DhcpServerInDC -DnsName $env:COMPUTERNAME -IPAddress $IPAddress 38 | write-HYDLog -Message "The Server with the name $env:COMPUTERNAME is Authorized in Active Directory" 39 | 40 | # Notify Server Manager that AD and DHCP configuration are completed 41 | write-HYDLog -Message "Removing AD and DHCP Flag in Server Manager" 42 | set-ItemProperty HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\12 -name ConfigurationState -Value 0x000000002 43 | set-ItemProperty HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\10 -name ConfigurationStatus -Value 0x000000002 44 | 45 | -------------------------------------------------------------------------------- /Source/Hydration/Control/ApplicationGroups.xml: -------------------------------------------------------------------------------- 1 | defaultdefault folder (root)7/2/2024 5:16:18 PMADMLabs\administrator{6990c450-e641-4022-81ca-7386ae77b17d}{a9261d56-041c-4b89-87f8-c73452758634}{5e0097a1-5464-4759-84cf-6a2c7b2269bf}{87431024-4792-4971-a5fa-ab86e4497412}{b649c5ac-99fd-44a5-b9d0-5aaf2437f75a}{c3dc1db0-c4fd-40fc-a0f0-e26254378004}{3359c71b-812d-460d-9925-2eb74223878b}{d8037969-01c4-4737-b5c4-01106199f1a8}{c70d4282-a9f6-43f3-b35b-506e739e8191}{d6e4680b-02d2-4226-b87c-b0018ecabd3c}{0662217c-5eaa-49d8-a93f-e9a1a84ecef4}{ff0981c9-5d79-4eae-b78f-6d9599cab3fa}{5bd74007-fd53-4e71-84e4-cc0a6af6ca43}{7406e0f9-1a51-43cb-9b48-a3d112dbd661}{1c66ecc0-d936-4d4f-b1a8-8bbf6abb127e}{95c2a915-8eda-40db-8bfe-2becb7e0983a}{002ee88f-e4d3-49d9-bda1-5308bafd996f}{61599e04-5d03-476f-8534-70e4ae7b9f3b}{1a808b1c-52f2-45b4-8af1-17ce79bd3b8c}{a05586e5-28a0-4910-9c14-223319bde692}{f1e4bdb1-9ade-4c60-8022-a2a61e7afec3}{503bc6a0-10bf-4d04-b46c-b99284af9faf}{f054ce3a-d180-4399-870b-6a1762fcd6c4}{ea1561f0-2716-40fa-8417-722e249224f9}{214d0cd5-fb97-4896-bcbd-711738031f13}{18f81e49-f394-4835-88b3-c237dd6700d7}{a6946d70-9d32-4071-b5ee-38601f6710bc}{48e60038-0ced-4524-aac1-73cbc16a8048}hiddenThis folder contains shared source items that have not been made explicitly visible in this deployment share. -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - WSUS/Install-HYDWSUS.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2021-12-28 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | Author - Andrew Johnson 16 | Twitter: @andrewjnet 17 | Blog : http://andrewj.net 18 | 19 | ************************************************************************************************************************ 20 | 21 | #> 22 | 23 | 24 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 25 | $Deployroot = $tsenv.Value("DeployRoot") 26 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 27 | 28 | Import-Module -Name HydrationLogging 29 | 30 | # Figure out Source path 31 | If($psISE){ 32 | $SourcePath = Split-Path -parent $psISE.CurrentFile.FullPath 33 | } 34 | else{ 35 | $SourcePath = $PSScriptRoot 36 | } 37 | 38 | #Load config file containing install parameters 39 | . "$($sourcePath)\HYDWSUSConfig.ps1" 40 | 41 | Set-HYDLogPath 42 | Write-HYDLog -Message "Starting setup... " 43 | Write-HYDLog -Message "Installing WSUS features" 44 | 45 | Install-WindowsFeature -Name 'UpdateServices-DB','UpdateServices-Services','UpdateServices-RSAT','UpdateServices-API','UpdateServices-UI' 46 | 47 | Write-HYDLog -Message "Creating Wsus Content directory at $wsusContentPath" 48 | 49 | New-Item -Path $wsusContentPath -ItemType Directory 50 | 51 | Write-HYDLog -Message "Configuring WSUS" 52 | 53 | 54 | $WsusUtilFile = "C:\Program Files\Update Services\Tools\WsusUtil.exe" 55 | $Arguments = "postinstall SQL_INSTANCE_NAME=$sqlInstanceName CONTENT_DIR=$wsusContentPath" 56 | #Wsus Post Install config 57 | #Write-HYDLog "About to run the following command: $SetupFile $Arguments" 58 | Start-Process -FilePath $WsusUtilFile -ArgumentList $Arguments -NoNewWindow -Wait -Passthru 59 | 60 | 61 | $wsusServer = Get-WsusServer 62 | 63 | if(!$wsusServer){ 64 | Write-HYDLog "WSUS configuration failed! aborting..." -LogLevel 2; Break 65 | } 66 | else{ 67 | Write-HYDLog -Message "WSUS configuration completed successfully." 68 | } -------------------------------------------------------------------------------- /Source/Hydration/Control/OperatingSystems.xml: -------------------------------------------------------------------------------- 1 | Windows Server 2022 Standard10/28/2021 2:33:17 AMROGUE-512\Administrator10/28/2021 2:33:17 AMROGUE-512\AdministratorWindows Server 2022 SERVERSTANDARDx6410.0.20348.230Windows IBS.\Operating Systems\WS2022FalseFalse.\Operating Systems\WS2022\REFWS2022-001.wim1Windows Server 2022 SERVERSTANDARDServerStandard13630en-USWindows 10 Enterprise x644/16/2023 9:31:53 PMADMLabs\administrator4/16/2023 9:31:53 PMADMLabs\administratorWindows 10 Enterprisex6410.0.19041.2364Windows IBS.\Operating Systems\Windows 10FalseFalse.\Operating Systems\Windows 10\REFW10X64-001.wim1Windows 10 EnterpriseEnterprise14744en-USWindows 11 Enterprise x644/16/2023 9:32:30 PMADMLabs\administrator4/16/2023 9:32:30 PMADMLabs\administratorWindows 10 Enterprisex6410.0.22000.1335Windows IBS.\Operating Systems\Windows 11FalseFalse.\Operating Systems\Windows 11\REFW11X64-001.wim1Windows 10 EnterpriseEnterprise15882en-US -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Create AD Structure/Create-ADStructure.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2023-1-28 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | Author - Andrew Johnson 16 | Twitter: @andrewjnet 17 | Blog : http://andrewj.net 18 | 19 | ************************************************************************************************************************ 20 | 21 | #> 22 | 23 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 24 | $Deployroot = $tsenv.Value("DeployRoot") 25 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 26 | 27 | Import-Module -Name HydrationLogging 28 | 29 | # Figure out Source path 30 | If ($psISE) { 31 | $SourcePath = Split-Path -parent $psISE.CurrentFile.FullPath 32 | } 33 | else { 34 | $SourcePath = $PSScriptRoot 35 | } 36 | 37 | Set-HYDLogPath 38 | Write-HYDLog -Message "Starting setup... " 39 | Write-HYDLog -Message "Importing List of users" 40 | $NewUsers = Import-Csv -Path "$($sourcePath)\ADUserList.csv" 41 | Write-HYDLog -Message "Importing List of new OUs" 42 | $NewOUs = Import-CSV -Path "$($sourcePath)\ADOUList.csv" 43 | Write-HYDLog -Message "Creating Hydration OUs" 44 | 45 | foreach ($OU in $NewOUs) { 46 | New-ADOrganizationalUnit -Name $OU.Name -Path $OU.Path 47 | try { 48 | $Filter = "name -eq '$($OU.Name)'" 49 | Get-ADOrganizationalUnit -Filter $Filter | Select-Object name,distinguishedname 50 | 51 | Write-HYDLog "OU $($OU.Name) created" 52 | } 53 | catch { 54 | Write-HYDLog "Failed to create OU $($OU.Name)" 55 | } 56 | } 57 | 58 | foreach ($User in $NewUsers) { 59 | $SecurePassword = ConvertTo-SecureString $User.Password -AsPlainText -Force 60 | New-ADUser -Name $User.SAMAccountName -AccountPassword $SecurePassword -Description $User.Description -Path $User.Path -Enabled $true -PasswordNeverExpires ([System.Convert]::ToBoolean($User."Password Expires")) 61 | try { 62 | Get-ADUser -Identity $User.SAMAccountName 63 | Write-HYDLog "User $($User.SAMAccountName) created" 64 | } 65 | catch { 66 | Write-HYDLog "Failed to create user $($User.SAMAccountName)" 67 | } 68 | } -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Set Administrator Autologon in Domain/Configure-SetAdministratorAutologoninDomain.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - MDT Integration with ConfigMgr/Configure-MDTIntegration.ps1: -------------------------------------------------------------------------------- 1 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 2 | $Deployroot = $tsenv.Value("DeployRoot") 3 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 4 | 5 | Import-Module -Name HydrationLogging 6 | 7 | # Check for elevation 8 | If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(` 9 | [Security.Principal.WindowsBuiltInRole] "Administrator")) 10 | { 11 | Write-Warning "Oupps, you need to run this script from an elevated PowerShell prompt!`nPlease start the PowerShell prompt as an Administrator and re-run the script." 12 | Write-Warning "Aborting script..." 13 | Throw 14 | } 15 | 16 | # Integrate MDT with ConfigMgr 17 | $SiteServer = "$env:COMPUTERNAME.$env:USERDNSDOMAIN" 18 | $SiteCode = (Get-WmiObject -ComputerName $SiteServer -Namespace "root\SMS" -Class "SMS_ProviderLocation").SiteCode 19 | $MDTInstallDir = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Deployment 4' -Name Install_Dir).Install_Dir 20 | 21 | # Getting CM console installation folder via registry, because the $env:SMS_ADMIN_UI_PATH method requires console to be started once 22 | $CMConsoleInstallDir = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\SMS\Setup' -Name 'UI Installation Directory').'UI Installation Directory' 23 | $MOF = "$CMConsoleInstallDir\Bin\Microsoft.BDD.CM12Actions.mof" 24 | 25 | Copy-Item "$MDTInstallDir\Bin\Microsoft.BDD.CM12Actions.dll" "$CMConsoleInstallDir\Bin\Microsoft.BDD.CM12Actions.dll" 26 | Copy-Item "$MDTInstallDir\Bin\Microsoft.BDD.Workbench.dll" "$CMConsoleInstallDir\Bin\Microsoft.BDD.Workbench.dll" 27 | Copy-Item "$MDTInstallDir\Bin\Microsoft.BDD.ConfigManager.dll" "$CMConsoleInstallDir\Bin\Microsoft.BDD.ConfigManager.dll" 28 | Copy-Item "$MDTInstallDir\Bin\Microsoft.BDD.CM12Wizards.dll" "$CMConsoleInstallDir\Bin\Microsoft.BDD.CM12Wizards.dll" 29 | Copy-Item "$MDTInstallDir\Bin\Microsoft.BDD.PSSnapIn.dll" "$CMConsoleInstallDir\Bin\Microsoft.BDD.PSSnapIn.dll" 30 | Copy-Item "$MDTInstallDir\Bin\Microsoft.BDD.Core.dll" "$CMConsoleInstallDir\Bin\Microsoft.BDD.Core.dll" 31 | Copy-Item "$MDTInstallDir\SCCM\Microsoft.BDD.CM12Actions.mof" $MOF 32 | Copy-Item "$MDTInstallDir\Templates\CM12Extensions\*" "$CMConsoleInstallDir\XmlStorage\Extensions\" -Force -Recurse 33 | (Get-Content $MOF).Replace('%SMSSERVER%', $SiteServer).Replace('%SMSSITECODE%', $SiteCode) | Set-Content $MOF | Out-Null 34 | & "C:\Windows\System32\wbem\mofcomp.exe" "$CMConsoleInstallDir\Bin\Microsoft.BDD.CM12Actions.mof" | Out-Null -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Open Firewall for MDT Database/Configure-OpenFirewallforMDTDatabase.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 70 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Open Firewall for SQL Server Communication/Configure-OpenFirewallforSQLCommunication.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 71 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - SQL Server 2019 Standard/Install-HYDSQLServer2019.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2021-11-22 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | 16 | ************************************************************************************************************************ 17 | 18 | #> 19 | 20 | 21 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 22 | $Deployroot = $tsenv.Value("DeployRoot") 23 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 24 | 25 | Import-Module -Name HydrationLogging 26 | 27 | Set-HYDLogPath 28 | write-HYDLog -Message "Starting setup... " 29 | 30 | # Figure out Source path 31 | If($psISE){ 32 | $SourcePath = Split-Path -parent $psISE.CurrentFile.FullPath 33 | } 34 | else{ 35 | $SourcePath = $PSScriptRoot 36 | } 37 | 38 | $SetupFile = "$SourcePath\Source\Setup.exe" 39 | $ConfigurationFile = "$SourcePath\ConfigurationFile.ini" 40 | 41 | # If SQLSYSADMINACCOUNTS is specified in the CM01.INI file, copy configuration file to a temporary location so it can be updated 42 | $tsenv = New-Object -COMobject Microsoft.SMS.TSEnvironment 43 | $ConfigurationFile = "$SourcePath\ConfigurationFile.ini" 44 | $SQLSYSADMINACCOUNTS = $tsenv.Value("SQLSYSADMINACCOUNTS") 45 | If ($SQLSYSADMINACCOUNTS -ne ""){ 46 | $TempFolder = "C:\Windows\Temp" 47 | Copy-Item -Path $ConfigurationFile -Destination $TempFolder 48 | $FinalConfigurationFile = "$TempFolder\ConfigurationFile.ini" 49 | $ConfigurationFileData = Get-Content $FinalConfigurationFile 50 | $OriginalSQLSYSADMINACCOUNTS = "SQLSYSADMINACCOUNTS=`"VIAMONSTRA\Administrator`" `"BUILTIN\Administrators`"" 51 | $UpdatedSQLSYSADMINACCOUNTS = "SQLSYSADMINACCOUNTS=`"$SQLSYSADMINACCOUNTS`" `"BUILTIN\Administrators`"" # always add local administrators 52 | $ConfigurationFileData | ForEach-Object { $_.replace("$OriginalSQLSYSADMINACCOUNTS","$UpdatedSQLSYSADMINACCOUNTS") } | Set-Content $ConfigurationFileData 53 | } 54 | Else{ 55 | $FinalConfigurationFile = $ConfigurationFile 56 | } 57 | 58 | # Validation 59 | if (!(Test-Path -path $SetupFile)) {Write-HYDLog "Could not find SQL Server Setup files, aborting..." -LogLevel 2;Break} 60 | if (!(Test-Path -path $FinalConfigurationFile)) {Write-HYDLog "Could not find SQL Server configuration files, aborting..." -LogLevel 2;Break} 61 | 62 | # Install SQL Server 63 | $Arguments = "/configurationfile=""$FinalConfigurationFile""" 64 | Write-HYDLog "About to run the following command: $SetupFile $Arguments" 65 | Start-Process -FilePath $SetupFile -ArgumentList $Arguments -NoNewWindow -Wait -Passthru 66 | 67 | Write-HYDLog "Setup completed..." 68 | 69 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - ConfigMgr Software Update Point/Install-HYDCMSUP.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2021-12-28 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | Author - Andrew Johnson 16 | Twitter: @andrewjnet 17 | Blog : http://andrewj.net 18 | 19 | ************************************************************************************************************************ 20 | 21 | #> 22 | 23 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 24 | $Deployroot = $tsenv.Value("DeployRoot") 25 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 26 | 27 | Import-Module -Name HydrationLogging 28 | 29 | Set-HYDLogPath 30 | Write-HYDLog -Message "Starting setup... " 31 | 32 | Write-HYDLog -Message "Adding ConfigMgr Software Update Point role" 33 | 34 | #Import-Module "E:\Program Files\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1" -DisableNameChecking | Out-Null 35 | #$SiteInfo = Get-PSDrive -PSProvider CMSite 36 | #Set-Location "$($SiteInfo.Name):\" 37 | Import-Module "E:\Program Files\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1" -DisableNameChecking | Out-Null 38 | $SiteInfo = Get-CIMInstance -Namespace "root\SMS" -ClassName "SMS_ProviderLocation" 39 | New-PSDrive -Name "$($SiteInfo.SiteCode)" -psprovider CMsite -root "$($SiteInfo.Machine)" 40 | Set-Location "$($SiteInfo.SiteCode):\" 41 | 42 | try { 43 | Add-CMSoftwareUpdatePoint -SiteSystemServerName $SiteInfo.Machine -SiteCode $SiteInfo.SiteCode 44 | } 45 | catch { 46 | Write-HYDLog -message "$PSItem.Exception.Message" 47 | } 48 | 49 | 50 | $SUPSchedule = New-CMSchedule -Start 19:00:00 -RecurInterval Days -RecurCount 1 51 | 52 | $SUPInstallParams = @{ 53 | SiteCode = $SiteInfo.SiteCode 54 | EnableCallWsusCleanupWizard = $true 55 | Schedule = $SUPSchedule 56 | 57 | } 58 | 59 | Write-HYDLog -Message "Configuring ConfigMgr Software Update Point" 60 | 61 | try { 62 | Set-CMSoftwareUpdatePointComponent @SUPInstallParams 63 | } 64 | 65 | catch { 66 | Write-HYDLog -message "$PSItem.Exception.Message" 67 | Write-HYDLog -Message "$SUPInstallParams" 68 | } 69 | 70 | Write-HYDLog -Message "Starting SUP Sync. This initial sync will take some time." 71 | 72 | Sync-CMSoftwareUpdate -FullSync $true 73 | 74 | $SoftwareUpdatePoint = Get-CMSoftwareUpdatePoint 75 | 76 | if (!$SoftwareUpdatePoint) { 77 | Write-HYDLog -Message "ConfigMgr Software Update Point configuration failed! aborting..." -LogLevel 2; Break 78 | } 79 | else { 80 | Write-HYDLog -Message "ConfigMgr Software Update Point configuration completed successfully." 81 | } -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - ConfigMgr Reporting Services Point/Install-HYDCMRSP.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2021-12-28 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | Author - Andrew Johnson 16 | Twitter: @andrewjnet 17 | Blog : http://andrewj.net 18 | 19 | ************************************************************************************************************************ 20 | 21 | #> 22 | 23 | 24 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 25 | $Deployroot = $tsenv.Value("DeployRoot") 26 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 27 | 28 | Import-Module -Name HydrationLogging 29 | 30 | # Figure out Source path 31 | If($psISE){ 32 | $SourcePath = Split-Path -parent $psISE.CurrentFile.FullPath 33 | } 34 | else{ 35 | $SourcePath = $PSScriptRoot 36 | } 37 | 38 | #Load config file containing install parameters 39 | . "$($sourcePath)\HYDCMRSPConfig.ps1" 40 | 41 | Set-HYDLogPath 42 | Write-HYDLog -Message "Starting setup... " 43 | 44 | Import-Module "E:\Program Files\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1" -DisableNameChecking | Out-Null 45 | $SiteInfo = Get-CIMInstance -Namespace "root\SMS" -ClassName "SMS_ProviderLocation" 46 | New-PSDrive -Name "$($SiteInfo.SiteCode)" -psprovider CMsite -root "$($SiteInfo.Machine)" 47 | Set-Location "$($SiteInfo.SiteCode):\" 48 | 49 | #Create Reporting Services Point Credentials 50 | Write-HYDLog -Message "Creating Reporting Services Point Account in ConfigMgr: $SSRSUsername" 51 | 52 | try { 53 | $Secure = ConvertTo-SecureString -String $SSRSPassword -AsPlainText -Force 54 | New-CMAccount -Name $SSRSUsername -Password $Secure -SiteCode $SiteInfo.SiteCode 55 | } 56 | catch { 57 | Write-HYDLog -message "$PSItem.Exception.Message" 58 | } 59 | 60 | 61 | $RSPInstallParams = @{ 62 | SiteCode = $SiteInfo.SiteCode 63 | SiteSystemServerName = $SiteInfo.Machine 64 | Username = $SSRSUsername 65 | ReportServerInstance = $SSRSInstanceName 66 | } 67 | 68 | Write-HYDLog -Message "Starting configuration of ConfigMgr Reporting Services Point" 69 | try{ 70 | Add-CMReportingServicePoint @RSPInstallParams 71 | } 72 | catch { 73 | Write-HYDLog -message "$PSItem.Exception.Message" 74 | Write-HYDLog -Message "$RSPInstallParams" 75 | } 76 | 77 | 78 | #Install Validation 79 | $ReportingServicesPoint = Get-CMReportingServicePoint 80 | 81 | if (!$ReportingServicesPoint) { 82 | Write-HYDLog -Message "ConfigMgr Reporting Services Point configuration failed! aborting..." -LogLevel 2; Break 83 | } 84 | else { 85 | Write-HYDLog -Message "ConfigMgr Reporting Services Point configuration completed successfully." 86 | } -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - WDS/Configure-WDS.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 78 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - ConfigMgr/Install-ConfigMgr.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 85 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - WSUS Settings/Invoke-WSUSConfiguration.ps1: -------------------------------------------------------------------------------- 1 | # WSUS Administration Max Connections Should be Unlimited 2 | Import-Module webadministration ; (get-itemproperty IIS:\Sites\'WSUS Administration' -name limits.maxConnections.Value) 3 | Import-Module webadministration ; set-Itemproperty IIS:\Sites\'WSUS Administration' -Name limits.maxConnections -Value 4294967295 4 | 5 | # WSUS Administration MaxBandwidth should be unlimited 6 | Import-Module webadministration ; (get-itemproperty IIS:\Sites\'WSUS Administration' -name limits.maxbandwidth.Value) 7 | Import-Module webadministration ; set-Itemproperty IIS:\Sites\'WSUS Administration' -Name limits.maxBandwidth -Value 4294967295 8 | 9 | # WSUS Administration TimeOut should be 320 10 | Import-Module webadministration;(get-itemproperty IIS:\Sites\'WSUS Administration' -Name limits.connectionTimeout.value).TotalSeconds 11 | Import-Module webadministration ; set-Itemproperty IIS:\Sites\'WSUS Administration' -Name limits.connectionTimeout -Value 00:05:20 12 | 13 | # Copy the web.config file to a location where it can be modified 14 | $TempPath = "D:\Installs\WSUS" 15 | $OriginalFileName = (Get-WebConfigFile 'IIS:\Sites\WSUS Administration\ClientWebService').fullname 16 | Copy-Item -Path $OriginalFileName -Destination $TempPath 17 | $FullFileName = "$TempPath\Web.config" 18 | 19 | # WSUS ClientWebService web.config executionTimeout should be 7200 20 | [XML]$xml = Get-Content $FullFileName 21 | $ChangeThis = ((($xml.configuration).'system.web').httpRunTime) 22 | $ChangeThis.SetAttribute('executionTimeout', '7200') 23 | $xml.Save($FullFileName) 24 | 25 | # WSUS ClientWebService web.config maxRequestLength should be 20480 26 | [XML]$xml = Get-Content $FullFileName 27 | $ChangeThis = ((($xml.configuration).'system.web').httpRunTime) 28 | $ChangeThis.maxRequestLength = "20480" 29 | $xml.Save($FullFileName) 30 | 31 | # WSUSPool CPU ResetInterval should be 15 min 32 | Import-Module webadministration ; set-Itemproperty IIS:\AppPools\Wsuspool -Name cpu -Value @{resetInterval="00:15:00"} 33 | 34 | # WSUSPool Ping Disabled 35 | Import-Module webadministration ; set-Itemproperty IIS:\AppPools\Wsuspool -Name processmodel.pingingEnabled False 36 | 37 | # WSUSPool Private Memory Limit should be 0 38 | Import-module webadministration 39 | $applicationPoolsPath = "/system.applicationHost/applicationPools" 40 | $appPoolPath = "$applicationPoolsPath/add[@name='WsusPool']" 41 | Set-WebConfiguration "$appPoolPath/recycling/periodicRestart/@privateMemory" -Value 0 42 | 43 | # WSUSPool queueLength should be 30000 44 | Import-Module webadministration ; set-Itemproperty IIS:\AppPools\Wsuspool -name queueLength 30000 45 | 46 | # WSUSPool RapidFail Should be Disable 47 | Import-Module webadministration ; set-Itemproperty IIS:\AppPools\Wsuspool -name failure.rapidFailProtection False 48 | 49 | # WSUSPool Recycling Regular Time interval should be 0 50 | Import-Module webadministration ; set-Itemproperty IIS:\AppPools\Wsuspool recycling.periodicRestart.time -Value 00:00:00 51 | 52 | # WSUSPool requests should be 0 53 | Import-module webadministration 54 | $applicationPoolsPath = "/system.applicationHost/applicationPools" 55 | $appPoolPath = "$applicationPoolsPath/add[@name='WsusPool']" 56 | Set-WebConfiguration "$appPoolPath/recycling/periodicRestart/@requests" -Value 0 57 | 58 | # Use Robocopy to restore the web.config file 59 | robocopy "$TempPath\" "C:\Program Files\Update Services\WebServices\ClientWebService" web.config /R:0 /B 60 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Extend AD for ConfigMgr/Configure-ExtendADforConfigMgr.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 97 | -------------------------------------------------------------------------------- /Source/Hydration/Tools/Modules/HydrationLogging/HydrationLogging.psm1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2023-1-28 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | Author - Andrew Johnson 16 | Twitter: @andrewjnet 17 | Blog : http://andrewj.net 18 | 19 | ************************************************************************************************************************ 20 | 21 | #> 22 | 23 | Function Set-HYDLogPath{ 24 | 25 | try 26 | { 27 | # Check for running Task Sequence, and use it's log path 28 | $tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment 29 | $global:LogPath = $tsenv.Value("LogPath") 30 | If($psISE){ 31 | $global:LogFile = "$($psISE.CurrentFile.DisplayName.Split(".")[0]).log" 32 | } 33 | else{ 34 | $global:LogFile = "$(($MyInvocation.ScriptName).split('\')[-1] -replace '\.[^.]*$','').log" 35 | } 36 | Start-HYDLog -FilePath $($LogPath + "\" + $LogFile) 37 | } 38 | catch 39 | { 40 | # Assume no task sequence is running, set log path to C:\Windows\Temp 41 | $global:LogPath = "C:\Windows\Temp" 42 | If($psISE){ 43 | $global:LogFile = "$($psISE.CurrentFile.DisplayName.Split(".")[0]).log" 44 | } 45 | else{ 46 | $global:LogFile = "$(($MyInvocation.ScriptName).split('\')[-1] -replace '\.[^.]*$','').log" 47 | } 48 | Start-HYDLog -FilePath $($LogPath + "\" + $LogFile) 49 | 50 | } 51 | } 52 | 53 | Function Start-HYDLog{ 54 | [CmdletBinding()] 55 | param ( 56 | [string]$FilePath 57 | ) 58 | 59 | try 60 | { 61 | if (!(Test-Path $FilePath)) 62 | { 63 | ## Create the log file 64 | New-Item $FilePath -Type File | Out-Null 65 | } 66 | 67 | ## Set the global variable to be used as the FilePath for all subsequent Write-Log 68 | ## calls in this session 69 | $global:ScriptLogFilePath = $FilePath 70 | } 71 | catch 72 | { 73 | Write-Error $_.Exception.Message 74 | } 75 | } 76 | 77 | Function Write-HYDLog{ 78 | param ( 79 | [Parameter(Mandatory = $true)] 80 | [string]$Message, 81 | [Parameter()] 82 | [ValidateSet(1, 2, 3)] 83 | [string]$LogLevel=1, 84 | [Parameter(Mandatory = $false)] 85 | [bool]$writetoscreen = $true 86 | ) 87 | $TimeGenerated = "$(Get-Date -Format HH:mm:ss).$((Get-Date).Millisecond)+000" 88 | $Line = '' 89 | $LineFormat = $Message, $TimeGenerated, (Get-Date -Format MM-dd-yyyy), "$($LogFile.Split(".")[0])", $LogLevel 90 | $Line = $Line -f $LineFormat 91 | Add-Content -Value $Line -Path $ScriptLogFilePath 92 | if($writetoscreen){ 93 | switch ($LogLevel) 94 | { 95 | '1'{ 96 | Write-Verbose -Message $Message 97 | } 98 | '2'{ 99 | Write-Warning -Message $Message 100 | } 101 | '3'{ 102 | Write-Error -Message $Message 103 | } 104 | Default { 105 | } 106 | } 107 | } 108 | if($writetolistbox -eq $true){ 109 | $result1.Items.Add("$Message") 110 | } 111 | } 112 | 113 | Export-ModuleMember -Function Set-HYDLogPath 114 | Export-ModuleMember -Function Start-HYDLog 115 | Export-ModuleMember -Function Write-HYDLog -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - BGInfo/Install-BGInfo.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 101 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Set SQL Server Memory Usage/Configure-SQLServerMemory.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 90 | 91 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Final Cleanup/FinalConfig.hta: -------------------------------------------------------------------------------- 1 | 2 | 3 | Final Configuration 4 | 5 | 6 | 7 | 19 | 20 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | Final Configuration Utility for MDT 121 | 122 | 123 | Status: 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | -------------------------------------------------------------------------------- /Source/Hydration/Control/TaskSequences.xml: -------------------------------------------------------------------------------- 1 | CM01 - Full InstallationWS2022, SQL2019, ConfigMgr (16 GB RAM recommended)10/28/2021 2:33:50 AMROGUE-512\Administrator1/2/2022 9:54:12 PMROGUE-512\AdministratorCM011.0Server.xmlDC01 - Full InstallationWS2022, Domain Controller, DHCP and DNS (2 GB RAM recommended)10/28/2021 2:33:50 AMROGUE-512\Administrator10/28/2021 2:53:20 AMROGUE-512\AdministratorDC011.0Server.xmlDP01 - Full InstallationWS2022, DP (4 GB RAM recommended)10/28/2021 2:33:50 AMROGUE-512\Administrator10/28/2021 2:53:26 AMROGUE-512\AdministratorDP011.0Server.xmlFS01 - Full InstallationWS2022, File Server (4 GB RAM recommended)10/28/2021 2:33:50 AMROGUE-512\Administrator10/28/2021 2:53:31 AMROGUE-512\AdministratorFS011.0Server.xmlMDT01 - Full InstallationWS2022, SQL2019 Express, WDS, MDT (4 GB RAM recommended)10/28/2021 2:33:50 AMROGUE-512\Administrator10/28/2021 2:53:37 AMROGUE-512\AdministratorMDT011.0Server.xmlPC0001 - Full Windows 10 Installation4/16/2023 9:30:58 PMADMLabs\administrator4/16/2023 9:30:58 PMADMLabs\administratorPC00011.0client.xmlPC0002 - Full Windows 10 Installation4/16/2023 9:31:01 PMADMLabs\administrator4/16/2023 9:31:01 PMADMLabs\administratorPC00021.0client.xmlPC0003 - Full Windows 11 Installation4/16/2023 9:31:03 PMADMLabs\administrator4/16/2023 9:31:03 PMADMLabs\administratorPC00031.0client.xmlPC0004 - Full Windows 11 Installation4/16/2023 9:31:05 PMADMLabs\administrator4/16/2023 9:31:05 PMADMLabs\administratorPC00041.0client.xml -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Final Cleanup/Configure-FinalCleanup.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 112 | 113 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Configure - Set AD permissions for ConfigMgr/Configure-SetADPermissionsForConfigMgr.wsf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 128 | -------------------------------------------------------------------------------- /New-LabVMsForHyperV.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .SYNOPSIS 3 | Sample script for Hydration Kit 4 | 5 | .DESCRIPTION 6 | Created: 2019-10-13 7 | Version: 1.0 8 | 9 | Author : Johan Arwidmark 10 | Twitter: @jarwidmark 11 | Blog : http://deploymentresearch.com 12 | 13 | Disclaimer: This script is provided "AS IS" with no warranties, confers no rights and 14 | is not supported by the author or DeploymentArtist.. 15 | 16 | .EXAMPLE 17 | NA 18 | 19 | .PARAMETER VMLocation 20 | Specify the location for the VMs. 21 | 22 | .PARAMETER ISO 23 | Specify the Hydration Kit ISO path. 24 | 25 | .PARAMETER VMNetwork 26 | Specify the Hyper-V Virtual Network. 27 | 28 | .PARAMETER SelectVMs 29 | Specify the VMs that should be created. If this parameter is not specified, all server VMs are created. (DC01, CM01, MDT01, DP01, FS01) 30 | 31 | #> 32 | 33 | # Requires the script to be run under an administrative account context. 34 | #Requires -RunAsAdministrator 35 | #Requires -Version 5.1 36 | 37 | [CmdletBinding(SupportsShouldProcess=$true)] 38 | param( 39 | [parameter(Mandatory=$true, HelpMessage="Specify the location for the VMs.")] 40 | [ValidateNotNullOrEmpty()] 41 | [string]$VMLocation, 42 | [parameter(Mandatory=$true, HelpMessage="Specify the Hydration Kit ISO path.")] 43 | [ValidateNotNullOrEmpty()] 44 | [string]$ISO, 45 | [parameter(Mandatory=$true, HelpMessage="Specify the Hyper-V Virtual Network.")] 46 | [ValidateNotNullOrEmpty()] 47 | [string]$VMNetwork, 48 | [parameter(Mandatory = $false, HelpMessage = "Specify the VMs to be created (DC, CM, MDT, DP, FS, Clients). All Server VMs are created by default.")] 49 | [ValidateNotNullOrEmpty()] 50 | $SelectVMs = @('DC', 'CM', 'MDT', 'DP', 'FS', 'Clients') 51 | ) 52 | 53 | # Below are details for each VM 54 | $VMSettings = @() 55 | switch ($SelectVMs) { 56 | 'CM' { 57 | $VMSettings += [pscustomobject]@{ VMName = "CM01"; VMMemory = 16384MB; VMDiskSize = 300GB; VMCPUCount = 4 } 58 | } 59 | 'DC' { 60 | $VMSettings += [pscustomobject]@{ VMName = "DC01"; VMMemory = 2048MB; VMDiskSize = 100GB; VMCPUCount = 2 } 61 | } 62 | 'DP' { 63 | $VMSettings += [pscustomobject]@{ VMName = "DP01"; VMMemory = 4096MB; VMDiskSize = 300GB; VMCPUCount = 2 } 64 | } 65 | 'FS' { 66 | $VMSettings += [pscustomobject]@{ VMName = "FS01"; VMMemory = 2048MB; VMDiskSize = 300GB; VMCPUCount = 2 } 67 | } 68 | 'MDT' { 69 | $VMSettings += [pscustomobject]@{ VMName = "MDT01"; VMMemory = 4096MB; VMDiskSize = 300GB; VMCPUCount = 2 } 70 | } 71 | 'Clients' { 72 | $VMSettings += [pscustomobject]@{ VMName = "PC0001"; VMMemory = 4096MB; VMDiskSize = 60GB; VMCPUCount = 2 } 73 | $VMSettings += [pscustomobject]@{ VMName = "PC0002"; VMMemory = 4096MB; VMDiskSize = 60GB; VMCPUCount = 2 } 74 | $VMSettings += [pscustomobject]@{ VMName = "PC0003"; VMMemory = 4096MB; VMDiskSize = 60GB; VMCPUCount = 2 } 75 | $VMSettings += [pscustomobject]@{ VMName = "PC0004"; VMMemory = 4096MB; VMDiskSize = 60GB; VMCPUCount = 2 } 76 | } 77 | } 78 | 79 | # Verify that the Hydration Kit ISO path exist 80 | if (!(Test-Path -Path "$ISO")) { 81 | Write-Warning "Hydration Kit ISO not found in location $ISO, aborting script..." 82 | Break 83 | } 84 | 85 | # Check for Hyper-V Virtual Machine Management Service 86 | $Service = Get-Service -Name "Hyper-V Virtual Machine Management" 87 | if ($Service.Status -ne "Running"){ 88 | Write-Warning "Hyper-V Virtual Machine Management service not started, aborting script..." 89 | Break 90 | } 91 | 92 | # Check for Hyper-V Switch 93 | $VMSwitchNameCheck = Get-VMSwitch | Where-Object -Property Name -EQ $VMNetwork 94 | if (!($VMSwitchNameCheck.Name -eq $VMNetwork)){ 95 | Write-Warning "The $VMNetwork Hyper-V Virtual Switch does not exist. aborting script..." 96 | Break 97 | } 98 | 99 | Write-Output "Validation steps completed, starting to create the Hydration Kit VMs" 100 | 101 | # Create the VMs 102 | foreach($row in $VMSettings){ 103 | $VMName = $row.VMName 104 | $VMMemory = $row.VMMemory 105 | $VMDiskSize = $row.VMDiskSize 106 | $VMCPUCount = $row.VMCPUCount 107 | 108 | Write-Output "Creating VM $VMName in $VMLocation" 109 | New-VM -Name $VMName -Generation 2 -BootDevice CD -MemoryStartupBytes $VMMemory -SwitchName $VMNetwork -Path $VMLocation -NoVHD | Out-Null 110 | New-VHD -Path "$VMLocation\$VMName\Virtual Hard Disks\$VMName-Disk1.vhdx" -SizeBytes $VMDiskSize | Out-Null 111 | Add-VMHardDiskDrive -VMName $VMName -Path "$VMLocation\$VMName\Virtual Hard Disks\$VMName-Disk1.vhdx" | Out-Null 112 | Set-VMProcessor -VMName $VMName -Count $VMCPUCount | Out-Null 113 | Set-VMDvdDrive -VMName $VMName -Path $ISO | Out-Null 114 | } 115 | 116 | Write-Output "Hydration Kit VMs created" 117 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - SQL Server 2019 Reporting Services/Install-HYDSSRS.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | 3 | ************************************************************************************************************************ 4 | 5 | Created: 2021-11-22 6 | Version: 1.0 7 | 8 | Disclaimer: 9 | This script is provided "AS IS" with no warranties, confers no rights and 10 | is not supported by the author or DeploymentArtist. 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | 16 | ************************************************************************************************************************ 17 | 18 | #> 19 | 20 | 21 | 22 | $TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment 23 | $Deployroot = $tsenv.Value("DeployRoot") 24 | $env:PSModulePath = $env:PSModulePath + ";$deployRoot\Tools\Modules" 25 | 26 | Import-Module -Name HydrationLogging 27 | 28 | Set-HYDLogPath 29 | write-HYDLog -Message "Starting setup... " 30 | 31 | 32 | # Figure out Source path 33 | If($psISE){ 34 | $SourcePath = Split-Path -parent $psISE.CurrentFile.FullPath 35 | } 36 | else{ 37 | $SourcePath = $PSScriptRoot 38 | } 39 | 40 | # Install SQL Server 2019 Reporting Services 41 | $SetupFile = "$SourcePath\Source\SQLServerReportingServices.exe" 42 | $Arguments = "/IAcceptLicenseTerms /Quiet /Norestart /Edition=Eval /Log $LogPath\SQLServerReportingServiceslog.txt" 43 | 44 | # Validation 45 | if (!(Test-Path -path $SetupFile)) {Write-HYDLog "Could not find SQL Server 2019 Reporting Services Setup files, aborting..." -LogLevel 2;Break} 46 | 47 | Write-HYDLog "About to run the following command: $SetupFile $Arguments" 48 | Start-Process -FilePath $SetupFile -ArgumentList $Arguments -NoNewWindow -Wait -Passthru 49 | 50 | Write-HYDLog "Starting configuration of SSRS" 51 | ############################################################# 52 | # Code to configure SSRS graciously provided 53 | # by Sven Aelterman (@svenaelterman) 54 | ############################################################# 55 | function Get-ConfigSet(){ 56 | return Get-WmiObject -Namespace "root\Microsoft\SqlServer\ReportServer\RS_SSRS\v15\Admin" ` 57 | -class MSReportServer_ConfigurationSetting -ComputerName localhost 58 | } 59 | 60 | # Allow importing of sqlps module 61 | Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force -Scope Process 62 | 63 | # Retrieve the current configuration 64 | $configset = Get-ConfigSet 65 | 66 | If (! $configset.IsInitialized) 67 | { 68 | # Get the ReportServer and ReportServerTempDB creation script 69 | [string]$dbscript = $configset.GenerateDatabaseCreationScript("ReportServer", 1033, $false).Script 70 | 71 | # Import the SQL Server PowerShell module 72 | Import-Module "C:\Program Files (x86)\Microsoft SQL Server\150\Tools\PowerShell\Modules\sqlps\sqlps.psd1" -DisableNameChecking | Out-Null 73 | 74 | # Establish a connection to the database server (localhost) 75 | $conn = New-Object Microsoft.SqlServer.Management.Common.ServerConnection -ArgumentList $env:ComputerName 76 | $conn.ApplicationName = "SSRS Configuration Script" 77 | $conn.StatementTimeout = 0 78 | $conn.Connect() 79 | $smo = New-Object Microsoft.SqlServer.Management.Smo.Server -ArgumentList $conn 80 | 81 | # Create the ReportServer and ReportServerTempDB databases 82 | $db = $smo.Databases["master"] 83 | $db.ExecuteNonQuery($dbscript) 84 | 85 | # Set permissions for the databases 86 | $dbscript = $configset.GenerateDatabaseRightsScript($configset.WindowsServiceIdentityConfigured, "ReportServer", $false, $true).Script 87 | $db.ExecuteNonQuery($dbscript) 88 | 89 | # Set the database connection info 90 | $configset.SetDatabaseConnection("(local)", "ReportServer", 2, "", "") 91 | 92 | $configset.SetVirtualDirectory("ReportServerWebService", "ReportServer", 1033) 93 | $configset.ReserveURL("ReportServerWebService", "http://+:80", 1033) 94 | 95 | # For SSRS 2016-2017-2019 only, older versions have a different name 96 | $configset.SetVirtualDirectory("ReportServerWebApp", "Reports", 1033) 97 | $configset.ReserveURL("ReportServerWebApp", "http://+:80", 1033) 98 | 99 | $configset.InitializeReportServer($configset.InstallationID) 100 | 101 | # Re-start services? 102 | $configset.SetServiceState($false, $false, $false) 103 | Restart-Service $configset.ServiceName 104 | $configset.SetServiceState($true, $true, $true) 105 | 106 | # Update the current configuration 107 | $configset = Get-ConfigSet 108 | 109 | # Output to screen 110 | $configset.IsReportManagerEnabled 111 | $configset.IsInitialized 112 | $configset.IsWebServiceEnabled 113 | $configset.IsWindowsServiceEnabled 114 | $configset.ListReportServersInDatabase() 115 | $configset.ListReservedUrls(); 116 | 117 | $inst = Get-WmiObject -Namespace "root\Microsoft\SqlServer\ReportServer\RS_SSRS\v15" ` 118 | -class MSReportServer_Instance -ComputerName localhost 119 | 120 | $inst.GetReportServerUrls() 121 | } 122 | 123 | 124 | Write-HYDLog "SSRS Setup completed..." 125 | -------------------------------------------------------------------------------- /Source/Hydration/Applications/Install - SQL Server 2019 Express/Invoke-VIAInstallSQLServerExpress.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .Synopsis 3 | Script for Hydration Kit for Windows Server 2022 4 | .DESCRIPTION 5 | Script for Hydration Kit for Windows Server 2022 6 | .EXAMPLE 7 | C:\Setup\Scripts\Invoke-VIAInstallSQLServerExpress.ps1 -Setup "C:\Setup\SQL_2019_Express\SQLEXPR_x64_ENU.exe" -SQLINSTANCENAME "SQLExpress" -SQLINSTANCEDIR "E:\SQLDB" 8 | .NOTES 9 | Created: 2021-12-22 10 | Version: 1.0 11 | 12 | Author - Johan Arwidmark 13 | Twitter: @jarwidmark 14 | Blog : http://deploymentresearch.com 15 | 16 | Disclaimer: 17 | This script is provided "AS IS" with no warranties, confers no rights and 18 | is not supported by the authors or Deployment Artist. 19 | .LINK 20 | http://www.deploymentfundamentals.com 21 | #> 22 | 23 | [cmdletbinding(SupportsShouldProcess=$True)] 24 | Param ( 25 | [Parameter(Mandatory=$false,Position=0)] 26 | $Setup = ".\Source\SQLEXPR_x64_ENU.exe", 27 | 28 | [Parameter(Mandatory=$false,Position=1)] 29 | $SQLINSTANCENAME = "SQLExpress", 30 | 31 | [Parameter(Mandatory=$false,Position=2)] 32 | $SQLINSTANCEDIR = "E:\SQLDB" 33 | ) 34 | 35 | # Check for elevation 36 | If (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(` 37 | [Security.Principal.WindowsBuiltInRole] "Administrator")) 38 | { 39 | Write-Warning "Oupps, you need to run this script from an elevated PowerShell prompt!`nPlease start the PowerShell prompt as an Administrator and re-run the script." 40 | Write-Warning "Aborting script..." 41 | Throw 42 | } 43 | 44 | Function Invoke-Exe{ 45 | [CmdletBinding(SupportsShouldProcess=$true)] 46 | 47 | param( 48 | [parameter(mandatory=$true,position=0)] 49 | [ValidateNotNullOrEmpty()] 50 | [string] 51 | $Executable, 52 | 53 | [parameter(mandatory=$true,position=1)] 54 | [ValidateNotNullOrEmpty()] 55 | [string] 56 | $Arguments, 57 | 58 | [parameter(mandatory=$false,position=2)] 59 | [ValidateNotNullOrEmpty()] 60 | [int] 61 | $SuccessfulReturnCode = 0 62 | ) 63 | 64 | Write-Verbose "Running $ReturnFromEXE = Start-Process -FilePath $Executable -ArgumentList $Arguments -NoNewWindow -Wait -Passthru" 65 | $ReturnFromEXE = Start-Process -FilePath $Executable -ArgumentList $Arguments -NoNewWindow -Wait -Passthru 66 | 67 | Write-Verbose "Returncode is $($ReturnFromEXE.ExitCode)" 68 | 69 | if(!($ReturnFromEXE.ExitCode -eq $SuccessfulReturnCode)) { 70 | throw "$Executable failed with code $($ReturnFromEXE.ExitCode)" 71 | } 72 | } 73 | 74 | $unattendFile = New-Item "$env:temp\ConfigutionFile.ini" -type File -Force 75 | set-Content $unattendFile "[OPTIONS]" 76 | add-Content $unattendFile "ACTION=Install" 77 | add-Content $unattendFile "ROLE=""AllFeatures_WithDefaults""" 78 | add-Content $unattendFile "ENU=""True""" 79 | add-Content $unattendFile "QUIET=""True""" 80 | add-Content $unattendFile "QUIETSIMPLE=""False""" 81 | add-Content $unattendFile "UpdateEnabled=""False""" 82 | add-Content $unattendFile "FEATURES=""SQLENGINE""" 83 | add-Content $unattendFile "UpdateSource=""MU""" 84 | add-Content $unattendFile "HELP=""False""" 85 | add-Content $unattendFile "INDICATEPROGRESS=""False""" 86 | add-Content $unattendFile "X86=""False""" 87 | add-Content $unattendFile "INSTALLSHAREDDIR=""C:\Program Files\Microsoft SQL Server""" 88 | add-Content $unattendFile "INSTALLSHAREDWOWDIR=""C:\Program Files (x86)\Microsoft SQL Server""" 89 | add-Content $unattendFile "INSTANCENAME=""$SQLINSTANCENAME""" 90 | add-Content $unattendFile "INSTANCEID=""$SQLINSTANCENAME""" 91 | add-Content $unattendFile "SQMREPORTING=""False""" 92 | add-Content $unattendFile "ERRORREPORTING=""False""" 93 | add-Content $unattendFile "INSTANCEDIR=""$SQLINSTANCEDIR""" 94 | add-Content $unattendFile "AGTSVCACCOUNT=""NT AUTHORITY\NETWORK SERVICE""" 95 | add-Content $unattendFile "AGTSVCSTARTUPTYPE=""Disabled""" 96 | add-Content $unattendFile "COMMFABRICPORT=""0""" 97 | add-Content $unattendFile "COMMFABRICNETWORKLEVEL=""0""" 98 | add-Content $unattendFile "COMMFABRICENCRYPTION=""0""" 99 | add-Content $unattendFile "MATRIXCMBRICKCOMMPORT=""0""" 100 | add-Content $unattendFile "SQLSVCSTARTUPTYPE=""Automatic""" 101 | add-Content $unattendFile "FILESTREAMLEVEL=""0""" 102 | add-Content $unattendFile "ENABLERANU=""True""" 103 | add-Content $unattendFile "SQLCOLLATION=""SQL_Latin1_General_CP1_CI_AS""" 104 | add-Content $unattendFile "SQLSVCACCOUNT=""NT AUTHORITY\NETWORK SERVICE""" 105 | add-Content $unattendFile "SQLSYSADMINACCOUNTS=""BUILTIN\Administrators""" 106 | add-Content $unattendFile "ADDCURRENTUSERASSQLADMIN=""True""" 107 | add-Content $unattendFile "TCPENABLED=""1""" 108 | add-Content $unattendFile "NPENABLED=""1""" 109 | add-Content $unattendFile "BROWSERSVCSTARTUPTYPE=""Automatic""" 110 | add-Content $unattendFile "IACCEPTSQLSERVERLICENSETERMS=""True""" 111 | 112 | Write-Verbose "Unpack SQL Express 2019" 113 | Invoke-Exe -Executable $Setup -Arguments "/q /x:C:\SQLtmp" 114 | Write-Verbose "Install SQL Express 2019, please wait" 115 | Invoke-Exe -Executable C:\SQLtmp\SETUP.EXE -Arguments "/ConfigurationFile=$unattendFile" 116 | 117 | Remove-Item C:\SQLtmp -Recurse -Force 118 | 119 | -------------------------------------------------------------------------------- /New-HydrationKitSetup.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | .SYNOPSIS 3 | Sample script for the Hydration Kit 4 | 5 | .DESCRIPTION 6 | Creates the Hydration Kit deployment share. 7 | The script must be run under an administrative account context and its only been tested with PowerShell 5.1 8 | 9 | .NOTES 10 | Created: 8/24/2021 11 | Version: 1.1 12 | 13 | Author : Johan Arwidmark 14 | Twitter: @jarwidmark 15 | Blog : http://deploymentresearch.com 16 | 17 | Disclaimer: This script is provided "AS IS" with no warranties, confers no rights and 18 | is not supported by the author or DeploymentArtist.. 19 | 20 | .PARAMETER Path 21 | Specifies the path for Hydration Kit installation directory. 22 | 23 | .PARAMETER ShareName 24 | Specifies the SMB share name for Hydration Kit. 25 | 26 | 27 | .EXAMPLE 28 | .\New-HydrationKitSetup.ps1 -Path C:\CMLab -ShareName CMLab 29 | #> 30 | 31 | #Requires -RunAsAdministrator 32 | #Requires -Version 5.1 33 | 34 | [CmdletBinding(SupportsShouldProcess=$true)] 35 | param( 36 | [parameter(Mandatory=$true, HelpMessage="Specify the path for Hydration Kit installation directory.")] 37 | [ValidateNotNullOrEmpty()] 38 | [string]$Path, 39 | [parameter(Mandatory=$true, HelpMessage="Specify the SMB share name for Hydration Kit.")] 40 | [ValidateNotNullOrEmpty()] 41 | [string]$ShareName 42 | 43 | ) 44 | 45 | # Some basic validations 46 | 47 | # Verify that MDT 8456 is installed 48 | if (!((Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object {$_.DisplayName -eq "Microsoft Deployment Toolkit (6.3.8456.1000)"}).Displayname).count) { 49 | Write-Warning "MDT 8456 not installed, aborting..." 50 | Break 51 | } 52 | 53 | # Verify that UEFI HotFix for MDT 8456 (KB4564442) is installed 54 | $MDTInstallDir = ((Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Deployment 4' -Name Install_Dir).Install_Dir).TrimEnd('\') 55 | $X64HotFixPath = "$MDTInstallDir\Templates\Distribution\Tools\x64\Microsoft.BDD.Utility.dll" 56 | $X64HotFixVersion = (Get-Item $X64HotFixPath).VersionInfo.ProductPrivatePart 57 | 58 | If (!($X64HotFixVersion -ge 1001)){ 59 | Write-Warning "MDT 8456 HotFix (KB4564442) is not installed, aborting..." 60 | Write-Warning "The updated Microsoft.BDD.Utility.dll file needs to be copied to the MDT installation directory" 61 | Write-Warning "See KB4564442 for details" 62 | Break 63 | } 64 | 65 | # Verify that Windows ADK and Windows ADK WinPE Addon are installed 66 | if (!((Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object {$_.DisplayName -match "Windows Assessment and Deployment Kit*"}).Displayname).count) { 67 | Write-Warning "Windows ADK is not installed, aborting..." 68 | Break 69 | } 70 | if (!((Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object {$_.DisplayName -match "Windows Assessment and Deployment Kit Windows Preinstallation Environment*"}).Displayname).count) { 71 | Write-Warning "Windows ADK WinPE Addon is not installed, aborting..." 72 | Break 73 | } 74 | 75 | # Verify that the SMB share doesn't exist already 76 | If (Get-SmbShare | Where-Object { $_.Name -eq "$ShareName"}){ 77 | Write-Warning "Hydration Kit share $ShareName already exist, please cleanup and try again. Aborting..." 78 | Break 79 | } 80 | 81 | # Verify that the folder or deployment share doesn't exist already 82 | if (Test-Path -Path "$Path") { 83 | Write-Warning "Hydration Kit folder $Path already exist, please cleanup and try again. Aborting..." 84 | Break 85 | } 86 | 87 | # Verify that the PSDrive doesnt exist already 88 | if (Test-Path -Path "DS001:") { 89 | Write-Warning "DS001: PSDrive already exist, please cleanup and try again. Aborting..." 90 | Break 91 | } 92 | 93 | # Check free disk space. Minimum for the Hydration Kit is 50 GB 94 | $KitRootDrive = Split-Path -Path $Path -Qualifier 95 | $NeededFreeSpace = 50GB 96 | $NeededFreeSpaceInGB = [MATH]::ROUND($NeededFreeSpace /1GB) 97 | $Disk = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DeviceID='$KitRootDrive'" 98 | $FreeSpace = $Disk.FreeSpace 99 | $FreeSpaceInGB = [MATH]::ROUND($FreeSpace /1GB) 100 | #Write-Output "Checking free space on $KitRootDrive" 101 | #Write-Output "Hydration Kit requires $NeededFreeSpaceInGB GB" 102 | 103 | if($FreeSpace -lt $NeededFreeSpace){ 104 | Write-Warning "You need at least $NeededFreeSpaceInGB GB of free disk space on $KitRootDrive " 105 | Write-Warning "Available free disk space on C: is $FreeSpaceInGB GB" 106 | Write-Warning "Aborting script..." 107 | Break 108 | } 109 | Else { 110 | # Write-Output "All OK, available free disk space on C: is $FreeSpaceInGB GB" 111 | } 112 | 113 | 114 | # Validation OK, create the Hydration Deployment Share 115 | $MDTServer = (get-wmiobject win32_computersystem).Name 116 | 117 | Add-PSSnapIn Microsoft.BDD.PSSnapIn -ErrorAction SilentlyContinue | Out-Null 118 | New-Item -Path "$Path\DS" -ItemType Directory | Out-Null 119 | New-SmbShare -Name $ShareName -Path "$Path\DS" -ChangeAccess EVERYONE | Out-Null 120 | New-PSDrive -Name "DS001" -PSProvider "MDTProvider" -Root "$Path\DS" -Description "Hydration Kit ConfigMgr" -NetworkPath "\\$MDTServer\$ShareName" | add-MDTPersistentDrive | Out-Null 121 | 122 | New-Item -Path "$Path\ISO\Content\Deploy" -ItemType Directory | Out-Null 123 | New-Item -path "DS001:\Media" -enable "True" -Name "MEDIA001" -Comments "" -Root "$Path\ISO" -SelectionProfile "Everything" -SupportX86 "False" -SupportX64 "True" -GenerateISO "True" -ISOName "HydrationCMWS2022.iso" | Out-Null 124 | New-PSDrive -Name "MEDIA001" -PSProvider "MDTProvider" -Root "$Path\ISO\Content\Deploy" -Description "Hydration Kit ConfigMgr Media" -Force | Out-Null 125 | 126 | # Configure MEDIA001 Settings (disable MDAC) - Not needed in the Hydration Kit 127 | Set-ItemProperty -Path MEDIA001: -Name Boot.x86.FeaturePacks -Value "" 128 | Set-ItemProperty -Path MEDIA001: -Name Boot.x64.FeaturePacks -Value "" 129 | 130 | # Copy sample files to Hydration Deployment Share 131 | $ScriptPath = $PSScriptRoot 132 | Copy-Item -Path "$ScriptPath\Source\Hydration\Applications" -Destination "$Path\DS" -Recurse -Force 133 | Copy-Item -Path "$ScriptPath\Source\Hydration\Control" -Destination "$Path\DS" -Recurse -Force 134 | Copy-Item -Path "$ScriptPath\Source\Hydration\Scripts" -Destination "$Path\DS" -Recurse -Force 135 | Copy-Item -Path "$ScriptPath\Source\Hydration\Tools\Modules" -Destination "$Path\DS\Tools" -Recurse -Force -verbose 136 | Copy-Item -Path "$ScriptPath\Source\Media\Control" -Destination "$Path\ISO\Content\Deploy" -Recurse -Force 137 | 138 | # Create target folder structure for the operating systems 139 | New-Item -Path "$Path\DS\Operating Systems\WS2022\sources\sxs" -ItemType Directory -Force 140 | New-Item -Path "$Path\DS\Operating Systems\Windows 10\sources\sxs" -ItemType Directory -Force 141 | New-Item -Path "$Path\DS\Operating Systems\Windows 11\sources\sxs" -ItemType Directory -Force 142 | 143 | # Create target folder structure for application sources 144 | New-Item -Path "$Path\DS\Applications\Install - SQL Server Management Studio" -ItemType Directory -Force 145 | New-Item -Path "$Path\DS\Applications\Install - Windows ADK 11\Source" -ItemType Directory -Force 146 | New-Item -Path "$Path\DS\Applications\Install - Windows ADK 11 WinPE Addon\Source" -ItemType Directory -Force 147 | New-Item -Path "$Path\DS\Applications\Install - SQL Server 2019 Standard\Source" -ItemType Directory -Force 148 | New-Item -Path "$Path\DS\Applications\Install - ConfigMgr\Source" -ItemType Directory -Force 149 | New-Item -Path "$Path\DS\Applications\Install - ConfigMgr\PreReqs" -ItemType Directory -Force 150 | New-Item -Path "$Path\DS\Applications\Install - MDT" -ItemType Directory -Force 151 | New-Item -Path "$Path\DS\Applications\Install - SQL Server 2019 Express\Source" -ItemType Directory -Force 152 | New-Item -Path "$Path\DS\Applications\Install - SQL Server 2019 Reporting Services\Source" -ItemType Directory -Force 153 | New-Item -Path "$Path\DS\Applications\Install - Microsoft ODBC Driver 18" -ItemType Directory -Force 154 | -------------------------------------------------------------------------------- /Source/Hydration/Control/PC0001/Unattend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OnError 8 | 9 | 0 10 | 1 11 | 12 | 13 | .\Operating Systems\W7SP1X64\Sources\install.wim 14 | 15 | /IMAGE/INDEX 16 | 1 17 | 18 | 19 | 20 | 21 | 22 | 16 23 | 1024 24 | 60 25 | 768 26 | 27 | 28 | OnError 29 | 30 | 31 | true 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | en-US 40 | 41 | 0409:00000409 42 | en-US 43 | en-US 44 | en-US 45 | 46 | 47 | 48 | 49 | true 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | ViaMonstra 69 | ViaMonstra 70 | true 71 | Pacific Standard Time 72 | 73 | 74 | about:blank 75 | true 76 | false 77 | 78 | 79 | 80 | 81 | EnableAdmin 82 | 1 83 | cmd /c net user Administrator /active:yes 84 | 85 | 86 | UnfilterAdministratorToken 87 | 2 88 | cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f 89 | 90 | 91 | disable user account page 92 | 3 93 | reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f 94 | 95 | 96 | 97 | 98 | 0409:00000409 99 | en-US 100 | en-US 101 | en-US 102 | 103 | 104 | 0 105 | 106 | "" 107 | 1 108 | 9 109 | 9 110 | 1 111 | "" 112 | "" 113 | "" 114 | Default 115 | 116 | 117 | 118 | 1 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | true 127 | 128 | 129 | 130 | true 131 | Administrator 132 | . 133 | 134 | 135 | true 136 | 137 | 999 138 | 139 | 140 | 32 141 | 1024 142 | 60 143 | 768 144 | 145 | 146 | 147 | wscript.exe %SystemDrive%\LTIBootstrap.vbs 148 | Lite Touch new OS 149 | 1 150 | 151 | 152 | 153 | true 154 | Work 155 | 3 156 | 157 | ViaMonstra 158 | ViaMonstra 159 | 160 | 161 | 162 | 0409:00000409 163 | en-US 164 | en-US 165 | en-US 166 | 167 | 168 | 169 | 170 | 171 | 172 | \Drivers 173 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /Source/Hydration/Control/PC0002/Unattend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OnError 8 | 9 | 0 10 | 1 11 | 12 | 13 | .\Operating Systems\W7SP1X64\Sources\install.wim 14 | 15 | /IMAGE/INDEX 16 | 1 17 | 18 | 19 | 20 | 21 | 22 | 16 23 | 1024 24 | 60 25 | 768 26 | 27 | 28 | OnError 29 | 30 | 31 | true 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | en-US 40 | 41 | 0409:00000409 42 | en-US 43 | en-US 44 | en-US 45 | 46 | 47 | 48 | 49 | true 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | ViaMonstra 69 | ViaMonstra 70 | true 71 | Pacific Standard Time 72 | 73 | 74 | about:blank 75 | true 76 | false 77 | 78 | 79 | 80 | 81 | EnableAdmin 82 | 1 83 | cmd /c net user Administrator /active:yes 84 | 85 | 86 | UnfilterAdministratorToken 87 | 2 88 | cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f 89 | 90 | 91 | disable user account page 92 | 3 93 | reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f 94 | 95 | 96 | 97 | 98 | 0409:00000409 99 | en-US 100 | en-US 101 | en-US 102 | 103 | 104 | 0 105 | 106 | "" 107 | 1 108 | 9 109 | 9 110 | 1 111 | "" 112 | "" 113 | "" 114 | Default 115 | 116 | 117 | 118 | 1 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | true 127 | 128 | 129 | 130 | true 131 | Administrator 132 | . 133 | 134 | 135 | true 136 | 137 | 999 138 | 139 | 140 | 32 141 | 1024 142 | 60 143 | 768 144 | 145 | 146 | 147 | wscript.exe %SystemDrive%\LTIBootstrap.vbs 148 | Lite Touch new OS 149 | 1 150 | 151 | 152 | 153 | true 154 | Work 155 | 3 156 | 157 | ViaMonstra 158 | ViaMonstra 159 | 160 | 161 | 162 | 0409:00000409 163 | en-US 164 | en-US 165 | en-US 166 | 167 | 168 | 169 | 170 | 171 | 172 | \Drivers 173 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /Source/Hydration/Control/PC0003/Unattend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OnError 8 | 9 | 0 10 | 1 11 | 12 | 13 | .\Operating Systems\W7SP1X64\Sources\install.wim 14 | 15 | /IMAGE/INDEX 16 | 1 17 | 18 | 19 | 20 | 21 | 22 | 16 23 | 1024 24 | 60 25 | 768 26 | 27 | 28 | OnError 29 | 30 | 31 | true 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | en-US 40 | 41 | 0409:00000409 42 | en-US 43 | en-US 44 | en-US 45 | 46 | 47 | 48 | 49 | true 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | ViaMonstra 69 | ViaMonstra 70 | true 71 | Pacific Standard Time 72 | 73 | 74 | about:blank 75 | true 76 | false 77 | 78 | 79 | 80 | 81 | EnableAdmin 82 | 1 83 | cmd /c net user Administrator /active:yes 84 | 85 | 86 | UnfilterAdministratorToken 87 | 2 88 | cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f 89 | 90 | 91 | disable user account page 92 | 3 93 | reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f 94 | 95 | 96 | 97 | 98 | 0409:00000409 99 | en-US 100 | en-US 101 | en-US 102 | 103 | 104 | 0 105 | 106 | "" 107 | 1 108 | 9 109 | 9 110 | 1 111 | "" 112 | "" 113 | "" 114 | Default 115 | 116 | 117 | 118 | 1 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | true 127 | 128 | 129 | 130 | true 131 | Administrator 132 | . 133 | 134 | 135 | true 136 | 137 | 999 138 | 139 | 140 | 32 141 | 1024 142 | 60 143 | 768 144 | 145 | 146 | 147 | wscript.exe %SystemDrive%\LTIBootstrap.vbs 148 | Lite Touch new OS 149 | 1 150 | 151 | 152 | 153 | true 154 | Work 155 | 3 156 | 157 | ViaMonstra 158 | ViaMonstra 159 | 160 | 161 | 162 | 0409:00000409 163 | en-US 164 | en-US 165 | en-US 166 | 167 | 168 | 169 | 170 | 171 | 172 | \Drivers 173 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /Source/Hydration/Control/PC0004/Unattend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OnError 8 | 9 | 0 10 | 1 11 | 12 | 13 | .\Operating Systems\W7SP1X64\Sources\install.wim 14 | 15 | /IMAGE/INDEX 16 | 1 17 | 18 | 19 | 20 | 21 | 22 | 16 23 | 1024 24 | 60 25 | 768 26 | 27 | 28 | OnError 29 | 30 | 31 | true 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | en-US 40 | 41 | 0409:00000409 42 | en-US 43 | en-US 44 | en-US 45 | 46 | 47 | 48 | 49 | true 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | ViaMonstra 69 | ViaMonstra 70 | true 71 | Pacific Standard Time 72 | 73 | 74 | about:blank 75 | true 76 | false 77 | 78 | 79 | 80 | 81 | EnableAdmin 82 | 1 83 | cmd /c net user Administrator /active:yes 84 | 85 | 86 | UnfilterAdministratorToken 87 | 2 88 | cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f 89 | 90 | 91 | disable user account page 92 | 3 93 | reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f 94 | 95 | 96 | 97 | 98 | 0409:00000409 99 | en-US 100 | en-US 101 | en-US 102 | 103 | 104 | 0 105 | 106 | "" 107 | 1 108 | 9 109 | 9 110 | 1 111 | "" 112 | "" 113 | "" 114 | Default 115 | 116 | 117 | 118 | 1 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | true 127 | 128 | 129 | 130 | true 131 | Administrator 132 | . 133 | 134 | 135 | true 136 | 137 | 999 138 | 139 | 140 | 32 141 | 1024 142 | 60 143 | 768 144 | 145 | 146 | 147 | wscript.exe %SystemDrive%\LTIBootstrap.vbs 148 | Lite Touch new OS 149 | 1 150 | 151 | 152 | 153 | true 154 | Work 155 | 3 156 | 157 | ViaMonstra 158 | ViaMonstra 159 | 160 | 161 | 162 | 0409:00000409 163 | en-US 164 | en-US 165 | en-US 166 | 167 | 168 | 169 | 170 | 171 | 172 | \Drivers 173 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /Source/Hydration/Control/CM01/Unattend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OnError 8 | 9 | 0 10 | 1 11 | 12 | 13 | .\Operating Systems\WS2012R2\Sources\install.wim 14 | 15 | /IMAGE/INDEX 16 | 1 17 | 18 | 19 | 20 | 21 | 22 | OnError 23 | 24 | 25 | true 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | en-US 34 | 35 | 0409:00000409 36 | en-US 37 | en-US 38 | en-US 39 | 40 | 41 | 42 | 43 | true 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | ViaMonstra 63 | ViaMonstra 64 | true 65 | Pacific Standard Time 66 | 67 | 68 | about:blank 69 | 70 | 71 | 72 | 73 | EnableAdmin 74 | 1 75 | cmd /c net user Administrator /active:yes 76 | 77 | 78 | UnfilterAdministratorToken 79 | 2 80 | cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f 81 | 82 | 83 | disable user account page 84 | 3 85 | reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f 86 | 87 | 88 | 89 | 90 | 0409:00000409 91 | en-US 92 | en-US 93 | en-US 94 | 95 | 96 | 0 97 | 98 | "" 99 | 1 100 | 9 101 | 9 102 | 1 103 | "" 104 | "" 105 | "" 106 | Default 107 | 108 | 109 | 110 | 1 111 | 112 | 113 | false 114 | false 115 | 116 | 117 | true 118 | 119 | 120 | 121 | 122 | 123 | 124 | QQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBQAGEAcwBzAHcAbwByAGQA 125 | false 126 | 127 | 128 | 129 | true 130 | Administrator 131 | . 132 | 133 | UABhAHMAcwB3AG8AcgBkAA== 134 | false 135 | 136 | 999 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | wscript.exe %SystemDrive%\LTIBootstrap.vbs 147 | Lite Touch new OS 148 | 1 149 | 150 | 151 | 152 | true 153 | Work 154 | 1 155 | true 156 | true 157 | true 158 | 159 | ViaMonstra 160 | ViaMonstra 161 | 162 | 163 | 164 | 0409:00000409 165 | en-US 166 | en-US 167 | en-US 168 | 169 | 170 | 171 | 172 | 173 | 174 | \Drivers 175 | 176 | 177 | 178 | 179 | 180 | 181 | -------------------------------------------------------------------------------- /Source/Hydration/Control/DC01/Unattend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OnError 8 | 9 | 0 10 | 1 11 | 12 | 13 | .\Operating Systems\WS2012R2\Sources\install.wim 14 | 15 | /IMAGE/INDEX 16 | 1 17 | 18 | 19 | 20 | 21 | 22 | OnError 23 | 24 | 25 | true 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | en-US 34 | 35 | 0409:00000409 36 | en-US 37 | en-US 38 | en-US 39 | 40 | 41 | 42 | 43 | true 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | ViaMonstra 63 | ViaMonstra 64 | true 65 | Pacific Standard Time 66 | 67 | 68 | about:blank 69 | 70 | 71 | 72 | 73 | EnableAdmin 74 | 1 75 | cmd /c net user Administrator /active:yes 76 | 77 | 78 | UnfilterAdministratorToken 79 | 2 80 | cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f 81 | 82 | 83 | disable user account page 84 | 3 85 | reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f 86 | 87 | 88 | 89 | 90 | 0409:00000409 91 | en-US 92 | en-US 93 | en-US 94 | 95 | 96 | 0 97 | 98 | "" 99 | 1 100 | 9 101 | 9 102 | 1 103 | "" 104 | "" 105 | "" 106 | Default 107 | 108 | 109 | 110 | 1 111 | 112 | 113 | false 114 | false 115 | 116 | 117 | true 118 | 119 | 120 | 121 | 122 | 123 | 124 | QQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBQAGEAcwBzAHcAbwByAGQA 125 | false 126 | 127 | 128 | 129 | true 130 | Administrator 131 | . 132 | 133 | UABhAHMAcwB3AG8AcgBkAA== 134 | false 135 | 136 | 999 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | wscript.exe %SystemDrive%\LTIBootstrap.vbs 147 | Lite Touch new OS 148 | 1 149 | 150 | 151 | 152 | true 153 | Work 154 | 1 155 | true 156 | true 157 | true 158 | 159 | ViaMonstra 160 | ViaMonstra 161 | 162 | 163 | 164 | 0409:00000409 165 | en-US 166 | en-US 167 | en-US 168 | 169 | 170 | 171 | 172 | 173 | 174 | \Drivers 175 | 176 | 177 | 178 | 179 | 180 | 181 | -------------------------------------------------------------------------------- /Source/Hydration/Control/DP01/Unattend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OnError 8 | 9 | 0 10 | 1 11 | 12 | 13 | .\Operating Systems\WS2012R2\Sources\install.wim 14 | 15 | /IMAGE/INDEX 16 | 1 17 | 18 | 19 | 20 | 21 | 22 | OnError 23 | 24 | 25 | true 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | en-US 34 | 35 | 0409:00000409 36 | en-US 37 | en-US 38 | en-US 39 | 40 | 41 | 42 | 43 | true 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | ViaMonstra 63 | ViaMonstra 64 | true 65 | Pacific Standard Time 66 | 67 | 68 | about:blank 69 | 70 | 71 | 72 | 73 | EnableAdmin 74 | 1 75 | cmd /c net user Administrator /active:yes 76 | 77 | 78 | UnfilterAdministratorToken 79 | 2 80 | cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f 81 | 82 | 83 | disable user account page 84 | 3 85 | reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f 86 | 87 | 88 | 89 | 90 | 0409:00000409 91 | en-US 92 | en-US 93 | en-US 94 | 95 | 96 | 0 97 | 98 | "" 99 | 1 100 | 9 101 | 9 102 | 1 103 | "" 104 | "" 105 | "" 106 | Default 107 | 108 | 109 | 110 | 1 111 | 112 | 113 | false 114 | false 115 | 116 | 117 | true 118 | 119 | 120 | 121 | 122 | 123 | 124 | QQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBQAGEAcwBzAHcAbwByAGQA 125 | false 126 | 127 | 128 | 129 | true 130 | Administrator 131 | . 132 | 133 | UABhAHMAcwB3AG8AcgBkAA== 134 | false 135 | 136 | 999 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | wscript.exe %SystemDrive%\LTIBootstrap.vbs 147 | Lite Touch new OS 148 | 1 149 | 150 | 151 | 152 | true 153 | Work 154 | 1 155 | true 156 | true 157 | true 158 | 159 | ViaMonstra 160 | ViaMonstra 161 | 162 | 163 | 164 | 0409:00000409 165 | en-US 166 | en-US 167 | en-US 168 | 169 | 170 | 171 | 172 | 173 | 174 | \Drivers 175 | 176 | 177 | 178 | 179 | 180 | 181 | -------------------------------------------------------------------------------- /Source/Hydration/Control/FS01/Unattend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OnError 8 | 9 | 0 10 | 1 11 | 12 | 13 | .\Operating Systems\WS2012R2\Sources\install.wim 14 | 15 | /IMAGE/INDEX 16 | 1 17 | 18 | 19 | 20 | 21 | 22 | OnError 23 | 24 | 25 | true 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | en-US 34 | 35 | 0409:00000409 36 | en-US 37 | en-US 38 | en-US 39 | 40 | 41 | 42 | 43 | true 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | ViaMonstra 63 | ViaMonstra 64 | true 65 | Pacific Standard Time 66 | 67 | 68 | about:blank 69 | 70 | 71 | 72 | 73 | EnableAdmin 74 | 1 75 | cmd /c net user Administrator /active:yes 76 | 77 | 78 | UnfilterAdministratorToken 79 | 2 80 | cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f 81 | 82 | 83 | disable user account page 84 | 3 85 | reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f 86 | 87 | 88 | 89 | 90 | 0409:00000409 91 | en-US 92 | en-US 93 | en-US 94 | 95 | 96 | 0 97 | 98 | "" 99 | 1 100 | 9 101 | 9 102 | 1 103 | "" 104 | "" 105 | "" 106 | Default 107 | 108 | 109 | 110 | 1 111 | 112 | 113 | false 114 | false 115 | 116 | 117 | true 118 | 119 | 120 | 121 | 122 | 123 | 124 | QQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBQAGEAcwBzAHcAbwByAGQA 125 | false 126 | 127 | 128 | 129 | true 130 | Administrator 131 | . 132 | 133 | UABhAHMAcwB3AG8AcgBkAA== 134 | false 135 | 136 | 999 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | wscript.exe %SystemDrive%\LTIBootstrap.vbs 147 | Lite Touch new OS 148 | 1 149 | 150 | 151 | 152 | true 153 | Work 154 | 1 155 | true 156 | true 157 | true 158 | 159 | ViaMonstra 160 | ViaMonstra 161 | 162 | 163 | 164 | 0409:00000409 165 | en-US 166 | en-US 167 | en-US 168 | 169 | 170 | 171 | 172 | 173 | 174 | \Drivers 175 | 176 | 177 | 178 | 179 | 180 | 181 | -------------------------------------------------------------------------------- /Source/Hydration/Control/MDT01/Unattend.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OnError 8 | 9 | 0 10 | 1 11 | 12 | 13 | .\Operating Systems\WS2012R2\Sources\install.wim 14 | 15 | /IMAGE/INDEX 16 | 1 17 | 18 | 19 | 20 | 21 | 22 | OnError 23 | 24 | 25 | true 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | en-US 34 | 35 | 0409:00000409 36 | en-US 37 | en-US 38 | en-US 39 | 40 | 41 | 42 | 43 | true 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | ViaMonstra 63 | ViaMonstra 64 | true 65 | Pacific Standard Time 66 | 67 | 68 | about:blank 69 | 70 | 71 | 72 | 73 | EnableAdmin 74 | 1 75 | cmd /c net user Administrator /active:yes 76 | 77 | 78 | UnfilterAdministratorToken 79 | 2 80 | cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f 81 | 82 | 83 | disable user account page 84 | 3 85 | reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Setup\OOBE /v UnattendCreatedUser /t REG_DWORD /d 1 /f 86 | 87 | 88 | 89 | 90 | 0409:00000409 91 | en-US 92 | en-US 93 | en-US 94 | 95 | 96 | 0 97 | 98 | "" 99 | 1 100 | 9 101 | 9 102 | 1 103 | "" 104 | "" 105 | "" 106 | Default 107 | 108 | 109 | 110 | 1 111 | 112 | 113 | false 114 | false 115 | 116 | 117 | true 118 | 119 | 120 | 121 | 122 | 123 | 124 | QQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBQAGEAcwBzAHcAbwByAGQA 125 | false 126 | 127 | 128 | 129 | true 130 | Administrator 131 | . 132 | 133 | UABhAHMAcwB3AG8AcgBkAA== 134 | false 135 | 136 | 999 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | wscript.exe %SystemDrive%\LTIBootstrap.vbs 147 | Lite Touch new OS 148 | 1 149 | 150 | 151 | 152 | true 153 | Work 154 | 1 155 | true 156 | true 157 | true 158 | 159 | ViaMonstra 160 | ViaMonstra 161 | 162 | 163 | 164 | 0409:00000409 165 | en-US 166 | en-US 167 | en-US 168 | 169 | 170 | 171 | 172 | 173 | 174 | \Drivers 175 | 176 | 177 | 178 | 179 | 180 | 181 | --------------------------------------------------------------------------------