インストール後再起動してからごにょごにょする必要があったので調べました。
再起動後自動ログオンする
レジストリにユーザ名とパスワードを設定します。
$regLogonKey = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
$defaultUserName = "user"
$defaultPassword = "password"
$defaultDomainName = "someDomain"
Set-ItemProperty -path $regLogonKey -name "AutoAdminLogon" -value 1
Set-ItemProperty -path $regLogonKey -name "DefaultUsername" -value $defaultUserName
Set-ItemProperty -path $regLogonKey -name "DefaultPassword" -value $defaultPassword
if ($defaultDomainName -ne "") {
Set-ItemProperty -path $regLogonKey -name "DefaultDomainName" -value $defaultDomainName
}
ログオン後に任意のスクリプトを実行する
レジストリに起動後一度だけ実行するコマンドを渡します。
$regRunOnceKey = "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce"
$powerShell = (Join-Path $env:windir "system32\WindowsPowerShell\v1.0\powershell.exe")
$script = "E:\Test\Script\SampleAfterInstall.ps1"
$restartKey = "Restart-And-RunOnce"
Set-ItemProperty -path $regRunOnceKey -name $restartKey -value "$powerShell $script"
まとめ
こんな感じでスクリプト内で再起動後自動ログオンして任意のスクリプトを実行することが出来ます。
$defaultUserName = "user"
$defaultPassword = "password"
$defaultDomainName = "someDomain"
$script = "E:\Test\Script\SampleAfterInstall.ps1"
# 再起動後に自動ログオンするように設定する
function activateAutoLoginAfterMachinePowerOn() {
$regLogonKey = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Set-ItemProperty -path $regLogonKey -name "AutoAdminLogon" -value 1
Set-ItemProperty -path $regLogonKey -name "DefaultUsername" -value $defaultUserName
Set-ItemProperty -path $regLogonKey -name "DefaultPassword" -value $defaultPassword
if ($defaultDomainName -ne "") {
Set-ItemProperty -path $regLogonKey -name "DefaultDomainName" -value $defaultDomainName
}
}
# ログオン後に実行するスクリプトを登録する
function registerRunOnceScriptAfterLogin() {
Param(
$script
)
$regRunOnceKey = "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce"
$powerShell = (Join-Path $env:windir "system32\WindowsPowerShell\v1.0\powershell.exe")
$restartKey = "Restart-And-RunOnce"
#RunOnceキーにセット
Set-ItemProperty -path $regRunOnceKey -name $restartKey -value "$powerShell $script"
}
activateAutoLoginAfterMachinePowerOn
registerRunOnceScriptAfterLogin $script
Restart-Computer -Force