站长视角
用户至上

Windows之通过powershell 脚本修改更新服务器地址

#
# Script to switch Windows Update Service and change WSUS server
# Author: LookBack
# Date:   2017-05-05_172630
#

Clear-Host

Write-Host "0 -> 修改Windows更新为系统默认设置(后期将导致系统无法更新)"
Write-Host "1 -> 关闭Windows更新和检查更新"
Write-Host "2 -> 修改Windows更新为-通知下载并通知安装-使用内网源"
Write-Host "3 -> 修改Windows更新为-自动下载并通知安装-使用内网源"
Write-Host "4 -> 修改Windows更新为-自动下载并安排安装-使用内网源"
Write-Host "按任意键退出..."
Write-Host

switch(Read-Host "选择Windows更新设置"){
    0 {$UpdateValue = 0}
    1 {$UpdateValue = 1}
    2 {$UpdateValue = 2}
    3 {$UpdateValue = 3}
    4 {$UpdateValue = 4}
    Default{Exit}
}

$WindowsUpdatePath = "HKLM:SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\"
$AutoUpdatePath = "HKLM:SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"

function LocalUpdateServer() {
    Set-ItemProperty -Path $WindowsUpdatePath -Name AcceptTrustedPublisherCerts -Value 1
    Set-ItemProperty -Path $WindowsUpdatePath -Name UpdateServiceUrlAlternate -Value "http://10.10.240.50:8530"
    Set-ItemProperty -Path $WindowsUpdatePath -Name WUServer -Value "http://10.10.240.50:8530"
    Set-ItemProperty -Path $WindowsUpdatePath -Name WUStatusServer -Value "http://10.10.240.50:8530"
}

If(Test-Path -Path $WindowsUpdatePath) {
    Remove-Item -Path $WindowsUpdatePath -Recurse
}

If ($UpdateValue -gt 0) {
    $null = New-Item -Path $WindowsUpdatePath
    $null = New-Item -Path $AutoUpdatePath
}

if ($UpdateValue -gt 1) {
    Set-ItemProperty -Path $AutoUpdatePath -Name NoAutoUpdate -Value 0
    Set-ItemProperty -Path $AutoUpdatePath -Name ScheduledInstallDay -Value 0
}

If ($UpdateValue -eq 1) {
    Set-ItemProperty -Path $AutoUpdatePath -Name NoAutoUpdate -Value 1
}

If ($UpdateValue -eq 2) {
    LocalUpdateServer
    Set-ItemProperty -Path $AutoUpdatePath -Name AUOptions -Value 2
    Set-ItemProperty -Path $AutoUpdatePath -Name ScheduledInstallTime -Value 3
}

If ($UpdateValue -eq 3) {
    LocalUpdateServer
    Set-ItemProperty -Path $AutoUpdatePath -Name AUOptions -Value 3
    Set-ItemProperty -Path $AutoUpdatePath -Name ScheduledInstallTime -Value 3
}

If ($UpdateValue -eq 4) {
    $null = LocalUpdateServer
    Set-ItemProperty -Path $AutoUpdatePath -Name AUOptions -Value 4
    Set-ItemProperty -Path $AutoUpdatePath -Name ScheduledInstallTime -Value 3
}

Write-Host
Write-Host '执行完毕,按任意键退出...'
Read-Host

由于powershell操作注册表有权限限制,上面的脚本还需要配合下面的脚本才可以实现右键以管理员身份运行的目的

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\runas]
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\runas\command]
@="powershell.exe \"-Command\" \"if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'\""
赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权, 转载请注明出处。
文章名称:《Windows之通过powershell 脚本修改更新服务器地址》
文章链接:https://www.veidc.com/356.html
【声明】:国外主机测评仅分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问国外主机测评,即表示您已经知晓并接受了此声明通告。
【关于安全】:任何 IDC商家都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。