Я хотел бы настроить WSUS так, чтобы сотрудники прибывали в основное место, где они использовали WSUS для загрузки материалов, а когда они находятся в других местах (в другом месте / доме и т. Д.), Они используют обновления Windows.
Это было предложено в этот вопрос использовать subnets/locations
сделать это. Это прекрасное решение, однако мы решили, что только около 10-15 компьютеров получат automatic installation of updates
, а остальные получат update/download
только информация.
Итак, мы оказались в ситуации, когда мы должны использовать комбинацию GPO для Location и GPO для OU на основе (автоматические парни получат свое собственное OU).
Есть ли способ настроить клиентов Windows так, чтобы WSUS брал информацию из 2 объектов групповой политики? А как насчет Home
/ клиенты в местах, где мы не знаем subnets
? Можем ли мы как-то настроить GPO, чтобы компьютер находился за пределами известного subnets/locations
включит другой объект групповой политики с помощью обновлений Windows от Microsoft, но сохранит наш «выбор»: автоматическая загрузка или только загрузка (в зависимости от сотрудника).
Мы решили установить все для сотрудников бэк-офиса и загрузить только для программистов (что составляет 90% компании).
Вам нужно несколько GPOS.
Что касается подключения к WU, у вас должна быть политика компании, в которой удаленные пользователи используют VPN через определенные промежутки времени, чтобы облегчить обновление. создайте сервер-реплику в своей DMZ без содержимого, чтобы системы получали содержимое с серверов обновлений Microsoft (чтобы вам не нужно было подключаться к VPN, чтобы получать обновления
Я сделал это с помощью wsus и обнаружил, что странные вещи идут не так. Вы хотите использовать wsus для утверждения обновлений, но загружать их с MS?
Я установил что-то подобное, где в главном офисе был свой собственный сервер wsus, а на компьютерах в филиалах был дополнительный сервер wsus. Вторичный сервер был настроен так, чтобы ничего не загружать, и утверждения были связаны с главным сервером. Я использовал GPO, чтобы назначить ПК одному или другому.
Я обнаружил, что пользователи, которые брали свои ноутбуки в главный офис, появлялись один раз на главном сервере и никогда не могли подключиться к вторичному серверу wsus. Мне пришлось бы удалить узел из основного, чтобы он мог синхронизироваться.
То же самое произойдет с людьми, которые пришли в филиал со своим ноутбуком.
Как только ПК установил связь с определенным узлом wsus, он, кажется, «залипает», и вы не можете переключиться на другой… но не всегда. Часто это исправлялось само собой. Насколько я знаю, это должно работать, но я продолжал находить узлы, которые не обновлялись месяцами. Удаление узла в wsus решит проблему.
короче - вообще не сработало.
Когда люди находились вне офиса (но были подключены через vpn), gpos должен был направлять пользователей напрямую на MS, но я обнаружил, что они продолжали применять старые GPO, иногда в течение месяцев, прежде чем gpupdate / force исправит ситуацию. Это проблема групповой политики, но я так и не узнал, почему это произошло.
Я переключился на один сервер, который всем раздает патчи. Угадай, что? Разницы никто не заметил, но все работает отлично.
ИМХО, с помощью ванильного WSUS это сделать невозможно.
Но вы можете написать сценарий, который настраивает обновление Windows на альтернативу аварийному переключению, если сервер WSUS недоступен.
Используя GPO, настройте планировщик задач Windows для запуска этого (слабо протестировано) сценарий powershell при запуске компьютера с разрешениями SYSTEM.
# Check server availability
function pingServer ([String]$server) {
Write-Host "Checking server $server"
$ping = New-Object System.net.networkinformation.ping
1..3 | foreach {
write-host $result = ($ping.send($server)).status.toString();
sleep 1
}
return "$result"
}
# Discover WSUS Server address
function getWSUSServer {
$inserver = (get-itemproperty -erroraction "SilentlyContinue" hklm:\software\microsoft\policies\windows\windowsupdate-bkp\ WUServer).WUServer
$outserver = (get-itemproperty -erroraction "SilentlyContinue" hklm:\software\microsoft\policies\windows\windowsupdate\ WUServer).WUServer
if ($inserver){
$wuserver = $inserver
} elseif ($outserver) {
$wuserver = $outserver
} else {
throw "Could not find nor internal or external WSUS configuration."
}
Write-Host "WUServer is $wuserver"
return $wuserver
}
# Change between locations configuratons
function changeLocation ([String]$location) {
if ( $location -eq 'internal' ){
rename-item -erroraction "SilentlyContinue" hklm:\software\microsoft\policies\windows\windowsupdate -NewName "windowsupdate-bkp"
Set-ItemProperty -erroraction "SilentlyContinue" hklm:\software\Policies\Microsoft\Windows\WindowsUpdate\AU UseWUServer 0
write-host "Location changed to $location."
} elseif ( $location -eq 'external' ){
rename-item -erroraction "SilentlyContinue" hklm:\software\microsoft\policies\windows\windowsupdate-bkp -NewName "windowsupdate"
Set-ItemProperty -erroraction "SilentlyContinue" hklm:\software\Policies\Microsoft\Windows\WindowsUpdate\AU UseWUServer 1
write-host "Location changed to $location."
} else {
trhow "Location can be either internal or external, not $location."
}
}
# main
if ( (pingServer(getWSUSServer)) -eq "Success") {
Write-Host 'WSUS server available.'
changeLocation ('internal')
} else {
Write-Host 'WSUS server unavailable.'
changeLocation ('external')
}
Write-Host "End of script."