Archiv pro štítek: windows server core

Windows Server 2008 Core: aktualizace

K vyhledání aktualizací, jejich stažení a instalaci jsem použil skript WUA_SearchDownloadInstall.vbs uvedený na stránkách Microsoftu, viz Searching, Downloading, and Installing Updates.

Další užitečné informace jsem čerpal na Four ways to patch Windows Server 2008 Core Edition

Skript samotný používá aktualizačního agenta (Windows Update Agent – WUA) ve všech krocích od vyhledání až po instalaci aktualizací. Nejprve jsou aktualizace vyhledány a zobrazí se jejich seznam. Dále je vytvořena sada aktualizací ke stažení a aktualizace jsou stahovány. Poté je vytvořena sada připravena k instalaci a poschválení je instalace spuštěna. Pro vyhledání určité aktualizace slouží další skript WUA_SpecificUpdate.vbs, viz Searching, Downloading, and Installing Specific Updates.

Poznámky:

  • na serveru musí být aktivní WUA,
  • pokud je vyžadován restart počítače, tato informace se vypíše jako reakce skriptu,
  • skript spustíme takto:

cscript WUA_SearchDownloadInstall.vbs
Výpis použitého kódu, jak je uveden na MSDN:

Set updateSession = CreateObject("Microsoft.Update.Session")
Set updateSearcher = updateSession.CreateupdateSearcher()

WScript.Echo "Searching for updates..." & vbCRLF

Set searchResult = _
updateSearcher.Search("IsInstalled=0 and Type='Software'")

WScript.Echo "List of applicable items on the machine:"

For I = 0 To searchResult.Updates.Count-1
    Set update = searchResult.Updates.Item(I)
    WScript.Echo I + 1 & "> " & update.Title
Next

If searchResult.Updates.Count = 0 Then
	WScript.Echo "There are no applicable updates."
	WScript.Quit
End If

WScript.Echo vbCRLF & "Creating collection of updates to download:"

Set updatesToDownload = CreateObject("Microsoft.Update.UpdateColl")

For I = 0 to searchResult.Updates.Count-1
    Set update = searchResult.Updates.Item(I)
    WScript.Echo I + 1 & "> adding: " & update.Title
    updatesToDownload.Add(update)
Next

WScript.Echo vbCRLF & "Downloading updates..."

Set downloader = updateSession.CreateUpdateDownloader()
downloader.Updates = updatesToDownload
downloader.Download()

WScript.Echo  vbCRLF & "List of downloaded updates:"

For I = 0 To searchResult.Updates.Count-1
    Set update = searchResult.Updates.Item(I)
    If update.IsDownloaded Then
       WScript.Echo I + 1 & "> " & update.Title
    End If
Next

Set updatesToInstall = CreateObject("Microsoft.Update.UpdateColl")

WScript.Echo  vbCRLF & _
"Creating collection of downloaded updates to install:" 

For I = 0 To searchResult.Updates.Count-1
    set update = searchResult.Updates.Item(I)
    If update.IsDownloaded = true Then
       WScript.Echo I + 1 & "> adding:  " & update.Title
       updatesToInstall.Add(update)
    End If
Next

WScript.Echo  vbCRLF & "Would you like to install updates now? (Y/N)"
strInput = WScript.StdIn.Readline
WScript.Echo 

If (strInput = "N" or strInput = "n") Then
	WScript.Quit
ElseIf (strInput = "Y" or strInput = "y") Then
	WScript.Echo "Installing updates..."
	Set installer = updateSession.CreateUpdateInstaller()
	installer.Updates = updatesToInstall
	Set installationResult = installer.Install()

	'Output results of install
	WScript.Echo "Installation Result: " & _
	installationResult.ResultCode
	WScript.Echo "Reboot Required: " & _
	installationResult.RebootRequired & vbCRLF
	WScript.Echo "Listing of updates installed " & _
	 "and individual installation results:" 

	For I = 0 to updatesToInstall.Count - 1
		WScript.Echo I + 1 & "> " & _
		updatesToInstall.Item(i).Title & _
		": " & installationResult.GetUpdateResult(i).ResultCode
	Next
End If

Takto se v případě nalezených aktualizací vypisují reakce skriptu:

Searching for updates...
List of applicable items on the machine:
1> Aktualizace systému Windows Server 2008 (KB970430)
2> Aktualizace systému Windows Server 2008 (KB971737)
Creating collection of updates to download:
1> adding: Aktualizace systému Windows Server 2008 (KB970430)
2> adding: Aktualizace systému Windows Server 2008 (KB971737)
Downloading updates...

List of downloaded updates: 1> Aktualizace systému Windows Server 2008 (KB970430) 2> Aktualizace systému Windows Server 2008 (KB971737) Creating collection of downloaded updates to install: 1> adding: Aktualizace systému Windows Server 2008 (KB970430) 2> adding: Aktualizace systému Windows Server 2008 (KB971737) Would you like to install updates now? (Y/N) y Installing updates... Installation Result: 2 Reboot Required: True Listing of updates installed and individual installation results: 1> Aktualizace systému Windows Server 2008 (KB970430): 2 2> Aktualizace systému Windows Server 2008 (KB971737): 2

Výsledky instalace uvedené ve skriptu: 2 – success

Windows Server 2008 Core: aktivace produktu a správa uživatelů z příkazové řádky

Platnost licence a aktivace produktu

Stav licence si vypíšeme pomocí skriptu slmgr.vbs

slmgr.vbs -xpr : vypíše platnost licence aktuální
slmgr.vbs -ipk xxxxx : zadání licenčního kódu produktu
slmgr.vbs -ato : automatická aktivace na síti

parametry skriptu slmgr.vbs

Přidání uživatele z příkazové řádky

Pokud ještě nemáme funkční vzdálenou správu serveru a uživatelů pomocí grafických nástrojů (např. dsa.msc), můžeme z okna příkazové řádky serveru použít příkaz net user:

net user DCadmin * /add /domain : po výzvě zadáme heslo k účtu DCadmin
net group "Domain Admins" DCadmin /add /domain :zařazení do skupiny administrátorů

Instalace a konfigurace české verze Windows Server 2008 Ent. Core

. . . a problémy s tím spojené.

Po instalaci serveru se přihlásíme k zjednodušenému grafickému prostředí – obsahuje terminálové okno příkazové řádky CMD.exe a k dispozici máme Notepad.

Popis požadavků a kroků je přehledně na webu MS: Server Core Installation Option Getting Started Guide

Síť

Podle zamýšleného použití musíme na server nainstalovat potřebné komponenty – v mém případě to je DNS server a adresářové služby Active Directory – domain controller. Nejprve však nás čeká prvotní konfigurace sítě a změna pojmenování serveru. Už zde narazíme v české verzi na nekozistenci v nápovědě k příkazu

set address name="Připojení místní sítě" source=dhcp
set address "Připojení místní sítě" static 10.0.0.9 255.0.0.0 10.0.0.1 1

je uvedeno pojmenování name=“Připojení místní sítě“, přičemž správné jméno je “Připojení k místní síti”. Malý rozdíl, ale příklad není použitelný. Naštěstí nemusíme vypisovat název, ale můžeme použít číslo Idx, které snadno zjistíme příkazem show interfaces:

netsh interface ipv4 show interfaces
Idx  Met   MTU   Stav        Název
---  ---  -----  -----------  -------------------
  2   10   1500  connected    Připojení k místní síti
  1   50 4294967295  connected    Loopback Pseudo-Interface 1

Použil jsem tedy následující příkazy k definici sítě a adresy serveru druhého DNS:

netsh interface ipv4 set address name="2" source=static address=10.0.0.50 mask=255.255.255.0 gateway=10.0.0.138
netsh interface ipv4 add dnsserver name=2 10.0.0.138 index=2

Přejmenování serveru

Jméno serveru vygenerované při instalaci zjistíme příkazem hostname, nové jméno změníme příkazem netdom a vyvoláme restart:

netdom renamecomputer <původní> /NewName:DC01
shutdown /r /t 0

DCpromo

Adresářové služby Active Ddirectory a jejich konfiguraci provedeme příkazem DCpromo s parametrickým souborem unattend.txt

dcpromo /unattend[:název_souboru]

Obsah použitého souboru bezobslužné instalace byl:

[DCInstall]
AutoConfigDNS=Yes
ConfirmGc=Yes
DNSOnNetwork=No
ReplicaOrNewDomain=Domain
DomainNetBiosName=TRIAL
RebootOnSuccess=Yes
NewDomainDNSName=trial.net
NewDomain=Forest
SiteName=Default-First-Site-Name
DatabasePath="%systemroot%\NTDS"
LogPath="%systemroot%'NTDS"
SYSVOLPath="%systemroot%\SYSVOL"
SafeModeAdminPassword=Password123
RebootOnCompletion=yes

Po restartu jsem zjistil, že nslookup není schopen získat informace o doméně, pokouší se připojit k serveru služby DNS na adrese ::1. Řešením je odebrat tuto referenci adresy IPV6 příkazem

netsh int ipv6 delete dnsserver name=2 address=::1

Firewall a vzdálená správa

Protože jsem ponechal zapnutou ochranu serveru, musíme zajistit přístup z ostatních serverů, abychom mohli stroj spravovat vzdáleně i z grafického rozhraní. Na serveru s anglickým jazykovým prostředím stačí zadat příkazy pro povolení následujících pravidel firewallu:

Netsh advfirewall firewall set rule group="Windows Firewall Remote Management" new enable =yes
Netsh advfirewall firewall set rule group="remote administration" new enable=yes
Netsh advfirewall firewall set rule group=”remote service management" new enable=yes

Na serveru s českým prostředím (česká verze serveru, abych byl přesnější) se dozvíme, že taková pravidla neexistují. Použil jsem nakonec tyto příkazy:

netsh advfirewall firewall>set rule group="vzdálená správa systemu windows" new enable=yes
netsh advfirewall firewall>set rule group="vzdálená správa" new enable=yes
netsh advfirewall firewall>set rule group="vzdálená správa brány windows firewall" new enable=yes
netsh advfirewall firewall>set rule group="vzdálená správa služeb" new enable=yes

WinRM a Remote Desktop

Na serveru DC01 s operačním systémem Windows Core spustíme konfiguraci příkazem

winrm quickconfig

Vzdálené spuštění příkazového řádku na serveru DC01 potom z jiného serveru Windows 2008 vyvoláme příkazem

winrs -r:dc01 cmd

Povolení Remote Desktop zajistí skript

cscript C:\Windows\System32\Scregedit.wsf /ar 0