Created
June 14, 2018 23:48
-
-
Save ryancbutler/aca0948a2581256d202c923d799423e5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$sb = { | |
<# | |
.Synopsis | |
Here is the PowerShell CmdLet that would enable AutoLogon next time when the server reboots.We could trigger a specific Script to execute after the server is back online after Auto Logon. | |
The CmdLet has the follwing parameter(s) and function(s). | |
-DefaultUsername : Provide the username that the system would use to login. | |
-DefaultPassword : Provide the Password for the DefaultUser provided. | |
-AutoLogonCount : Sets the number of times the system would reboot without asking for credentials.Default is 1. | |
-Script : Provide Full path of the script for execution after server reboot. Example : c:\test\run.bat | |
Mandatory Parameters | |
-DefaultUsername | |
-DefaultPassword | |
.Description | |
Here is the PowerShell CmdLet that would enable AutoLogon next time when the server reboots.We could trigger a specific Script to execute after the server is back online after Auto Logon. | |
.Example | |
Set-AutoLogon -DefaultUsername "win\admin" -DefaultPassword "password123" | |
.Example | |
Set-AutoLogon -DefaultUsername "win\admin" -DefaultPassword "password123" -AutoLogonCount "3" | |
.EXAMPLE | |
Set-AutoLogon -DefaultUsername "win\admin" -DefaultPassword "password123" -Script "c:\test.bat" | |
#> | |
Function Set-AutoLogon{ | |
[CmdletBinding()] | |
Param( | |
[Parameter(Mandatory=$True,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] | |
[String[]]$DefaultUsername, | |
[Parameter(Mandatory=$True,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] | |
[String[]]$DefaultPassword, | |
[Parameter(Mandatory=$False,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] | |
[AllowEmptyString()] | |
[String[]]$AutoLogonCount, | |
[Parameter(Mandatory=$False,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)] | |
[AllowEmptyString()] | |
[String[]]$Script | |
) | |
Begin | |
{ | |
#Registry path declaration | |
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" | |
$RegROPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" | |
} | |
Process | |
{ | |
try | |
{ | |
#setting registry values | |
Set-ItemProperty $RegPath "AutoAdminLogon" -Value "1" -type String | |
Set-ItemProperty $RegPath "DefaultUsername" -Value "$DefaultUsername" -type String | |
Set-ItemProperty $RegPath "DefaultPassword" -Value "$DefaultPassword" -type String | |
if($AutoLogonCount) | |
{ | |
Set-ItemProperty $RegPath "AutoLogonCount" -Value "$AutoLogonCount" -type DWord | |
} | |
else | |
{ | |
Set-ItemProperty $RegPath "AutoLogonCount" -Value "1" -type DWord | |
} | |
if($Script) | |
{ | |
Set-ItemProperty $RegROPath "(Default)" -Value "$Script" -type String | |
} | |
else | |
{ | |
Set-ItemProperty $RegROPath "(Default)" -Value "" -type String | |
} | |
} | |
catch | |
{ | |
Write-Output "An error had occured $Error" | |
} | |
} | |
End | |
{ | |
#End | |
} | |
} | |
set-service wuauserv –startup Automatic | |
Set-AutoLogon -DefaultUsername "administrator" -DefaultPassword "MyPassword" -Script "\\mdt01\mdtshare$\Scripts\LiteTouch.vbs" -AutoLogonCount "1" | |
Restart-Computer -Force | |
} | |
invoke-command -ComputerName $ip -Credential $creds -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) -ScriptBlock $sb |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment