Suggestion - Add proxy support
I was behind a proxy here and I had to change the script to add "-Proxy $Proxy -ProxyCredential $MyCreds" at the end of each "Invoke-WebRequest" cmdlet.
Same thing for "Install-PackageProvider -Name NuGet"
But then, i got error with "Find-DscResource -moduleName $modulename -RequiredVersion $moduleversion | Save-Module -Path "$PSScriptRoot\Temp\DSC"
I've search a long time and try these configuration without success :
Setting TLS 1.2 : [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 Bypassing the certificate validation : [Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}; Bypassing the certificate validation by code instead of block : #C# class to create callback $code = @" public class SSLHandler { public static System.Net.Security.RemoteCertificateValidationCallback GetSSLHandler() {
return new System.Net.Security.RemoteCertificateValidationCallback((sender, certificate, chain, policyErrors) => { return true; });
}
} "@ #compile the class Add-Type -TypeDefinition $code
#disable checks using new class [System.Net.ServicePointManager]::ServerCertificateValidationCallback = [SSLHandler]::GetSSLHandler()
No success!! but then i've found way to configure default proxy but i wasnt able to add it to the script, and I had to install the module outside of the "Prereq" script. here what I use for this to work :
$proxy = 'YER PROXY HERE' # update this [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 [system.net.webrequest]::defaultwebproxy = new-object system.net.webproxy($proxy) [system.net.webrequest]::defaultwebproxy.credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials [system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true
Install-PackageProvider -Name nuget -Scope AllUsers -Confirm:$false -Force -MinimumVersion 2.8.5.201 Register-PSRepository -Default -verbose
Install-Module -Name xActiveDirectory -Scope AllUsers -Confirm:$false -Force Install-Module -Name xDHCpServer -Scope AllUsers -Confirm:$false -Force Install-Module -Name xDNSServer -Scope AllUsers -Confirm:$false -Force Install-Module -Name NetworkingDSC -Scope AllUsers -Confirm:$false -Force Install-Module -Name xPSDesiredStateConfiguration -Scope AllUsers -Confirm:$false -Force
Probably there more "code head" people who can help with this since it's ugly but working :)
Thanks again for the great script!
Oh and .. I've just saw this message for the telemetry :D
Unnecessary files cleanup Do you want to cleanup unnecessary files and folders? [Y] Yes [N] No [?] Help (default is "Y"): y Cleaning unnecessary items Removing D:\WSLab\Temp Removing D:\WSLab\1_Prereq.ps1 Removing D:\WSLab\2_CreateParentDisks.ps1 Renaming D:\WSLab\3_Deploy.ps1 to Deploy.ps1 Sending telemetry info Sending telemetry failed with an error: The remote server returned an error: (407) Proxy Authentication Required. Transcript stopped, output file is D:\WSLab\CreateParentDisks.log Job Done. Press enter to continue...
adding @machv :)
I've rerun the script completely cos i had to change the DC domain name.. and i've just change this from the 1_Prereq.ps1 and it's working now with my proxy :
#set TLS 1.2 for github downloads [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
#set TLS 1.2 and Proxy for github downloads $proxy = 'YER PROXY HERE' # update this [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 [system.net.webrequest]::defaultwebproxy = new-object system.net.webproxy($proxy) [system.net.webrequest]::defaultwebproxy.credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials [system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true Register-PSRepository -Default
Ok it's the last version of it (without any error message ) :
#set TLS 1.2 and Default Web Proxy for github downloads $proxy = 'YER PROXY HERE' # update this [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 [system.net.webrequest]::defaultwebproxy = new-object system.net.webproxy($proxy) [system.net.webrequest]::defaultwebproxy.credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials [system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true