Přejít k obsahu webu
25.6.2020 / kaldy123

Windows 2004

No jo, už máme jednu „univerzální“ verzi Windows, a to Windows 10, ale chlapci z Redmondu si poradili i s tímto omezujícím faktorem: 2x do roka vydávají nové buildy, které se od sebe už dost podstatně liší (pro odborníky: Semianual Channel).

Už jste dospěli k buildu 2004? U nás doma ano. Želbohu. První do toho zahučela moje lepší polovička. To jsme se se psem proháněli kolem Vltavy na kole, když mne zastihl telefonát:

„Ty jsi zase dělal něco na mém počítači?“ Tentokráte jsem se cítil celkem jistý v kramflekách, protože od jisté doby uživatelské stanice nechávám žít jejich životem, protože jejich uživatelé nepovažujíya optimální nastavení, které za ta léta považuji za optimální já.

„Byl porušen vztah důvěry mezi počítačem a ověřujícím serverem“ – (asi to neinterpretuji zcela přesně, doopravdy nemám rád lokalizované verze systému) deklamovala poslušně má drahá. Uklidnil jsem se. to obyčejně spraví jeden powershellový příkaz (Test-ComputerSecureChannel -Repair), jenomže vykládejte uživateli, že se má přihlásit jako lokální admin, spustit powershell, zadat onen příkaz a restartovat (to není nutné, ale pro jistotu, že máte všechny politiky)… Tkaže jsem slíbil, že jakmile dorazíme, podívám se na to…

Naštěstí. Když jsem se do toho pouštěl, byl jsem již u počítače sám. Suverénně jsem se pustil do úkolu a zrovna tak suverénně jsem pohořel. Abych se připojil jako lokální admin, potřebuji obrácené lomítko! ( .\ atd…)

První problém. Mám svůj systém nastavení jazyků, ve kterém nesmí chybět angličtina US s klávesnicí  US International (kdo se připojoval vzdálenou plochou z Androidu, ví proč). Jediný jazyk, který počítač po upgradu rozeznával, byla čeština s klávesnicí QERTZ. No jo – když máte malou klávesnici notebooku a nemáte angličtinu – zkuste zadat obrácené lomítko!!!

Nastavení jazyka a klávesnice bylo po upgradu nastaveno na implicitní (default) hodnoty. U všech účtů.

Takže.

1. odpojit počítač od sítě.

2. přihlásit se přes nakešované credentials.

3. změnit nastavení jazyků a klávesnic.

4. připojit se k síti.

5. přihlásit se jako lokální admin.

… a zkusil jsem ono powershellové zaklínadlo.

Účet vašeho počítač není v databázi ověřujícího počítače! Nějako v tom smyslu mě informoval Neomylný a Vševědoucí. Jen tak pro kontrolu jsem si ověřil stav AD na mém starouškovi: tam vše OK.

Že by?!
Název počítače byl po upgradu změněn na jméno generované při instalaci.

Ale pouze lokálně. Na AD si netroufl, sketa!
Scheisse!!! Takže:

  1. Odpojit počítač od sítě.
  2. Odpojit počítač z domény.
  3. Přejmenovat počítač (na jméno které měl před událostí – tak je uveden i v AD!)
  4. Připojit počítač do sítě.
  5. Připojit počítač do domény

Hladce to klaplo, původní účet počítač v AD konečně poznal svého majitele a došlo i ke spárování.

Tož tak.

 

Klíčová slova: Windows 10, build 2004, upgrade, semmianual channel, po upgradu se nelze připojit do domény, po upgradu ztraceno nastavení jazyků a klávesnic

11.6.2020 / kaldy123

Remote Desktop can’t connect to remote computer

Hlášku:

určitě znáte. Většinou jste si na vině sami, něco jste prostě opomenuli. Ale ouvej! 11.6.2020 (datum uvádím, aby bylo zřejmé, že je to záležitosti některého z posledních Windows updatů) jsem v tom byl opravdu dost nevinně. Situaci nastíním obrázkem:

Je to již mnoho let, co jste přes „vlastnosti počítače“ (remote settings) nastavovali povolení vzdálené plochy. Ať již pro terminal services nebo administrative remote desktop.

Ouups! Máme zde moderní a vysoce produktivní systém Windows 10. A nějaký chytrý softvér dizajnér vymyslel do „všeobecně oblíbené“ aplikace „settings“ (jo to je ta, co se snaží neuměle a humpolácky nahradit Control panel – česky Ovládací panely) nastavení Remote desktop.

A jestli si myslíte, že se tento frikulín nějak obtěžoval s nastavením přes Control panel – taxe šeredně mýlíte a dostanete výsledeček z obrázku 1.

Tož tak.  Settings -> System -> Remote desktop

Klíčová slova: Remote desktop, Vzdálená plocha, Remote Desktop can’t connect to remote computer, Control panel, Ovládací panely, jak povolit vzdálenou plochu, how to enable remote desktop, nelze připojit vzdálená plocha, cannot connect remote desktop

BTW: https://aio.cz/skoleni.asp

 

4.3.2020 / kaldy123

IIS Virtual Directory na core serveru.

Core IIS server sice lze pohodlně spravovat z remote IIS konzoly, nicméně, ale pokud máte virtuálních adresářů povícero a navíc, pokud máte farmu IIS serverů – je to k uklikání.
Dobře, máme powershell, ale ouha! Pokud se podíváte na parametry New-WebVirtualDirectory,  je zřejmé, že máme problém se zadáním pověření (credentials). A to může být docela problém, zejména, pokud máte virtuální adresáře na sdílených adresářích (shares).

New-WebVirtualDirectory [-Site <String>] [-Application <String>] [-Name] <String> [-PhysicalPath <String>] [-Force] [<CommonParameters>]

V tomto příspěvku uvádím tedy nástin PS příkazů, jak co nejvíce zautomatizovat řešení popsaného problému.

Zavedení modulu WebAdministration.

Abychom mohli s IIS dobře pracovat, zavedeme tento modul. Jeho nepřítomnost například zjistíme velmi rychle absencí PoverShell drive provideru IIS: .

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

Try the new cross-platform PowerShell https://aka.ms/pscore6

PS C:\WINDOWS\system32> Import-Module WebAdministration
PS C:\WINDOWS\system32>

Vytvoření virtuálních adresářů

Pro jednoduchost uvádím 3 servery, na kterých máme share szar. Virtuální adresář bude mít vždy jméno serveru a bude ukazovat do zmíněného share.

PS C:\>
PS C:\> $servery='server1','server2','server3'
PS C:\> $servery|% {New-WebVirtualDirectory -site status.domena.cz -Name $_ -PhysicalPath ('\\' + $_ +'.domena.cz\szar') -force}

Name    PhysicalPath
----    ------------
server1 \\server1.domena.cz\szar
server2 \\server2.domena.cz\szar
server3 \\server3.domena.cz\szar

Použití parametru -force je na tomto místě docela kruciální. Příkaz se snaží po zadání validovat zadanou cestu, nicméně pracuje v lokálním kontextu a jaxi se mu to nepovede. Zadání pověření (credentials) v tomto kroku není možné – takže je potřebné validaci parametru nějako obejít. Parametr -force vynutí založení adreáře, i kdzž cesta je neplatná.

Doplnění credentials.

Toto provedeme nastavením vlastností na Power Shell drivu IIS: . Protože nemáme specializované parametry pro položku virtuálního adresáře, řešíme toto konstruktem, kdy zadáváme dvojici jmého_vlastnosti – hodnota_vlastnosti. Protože virtuální adresáře mají v tomto příkladě jména shodná se servery, do kterých ukazují, jedním příkazem nastavíme pro všechny 3 adresáře uživatelské jméno a druhým pro všechny 3 adresáře heslo. Jméno: potřebujeme doménového uživatele, anžto lezeme na sdílené adresáře v síti. Heslo se zadává kupodivu v otevřeném textu, ale v systému se ukládá šifrovaně.
(Soubor ApplicationHost.config)

PS C:\> $servery|% {Set-ItemProperty -Path ('iis:\sites\status.domena.cz\' + $_) -Name userName -Value domena\bfu}
PS C:\> $servery|% {Set-ItemProperty -Path ('iis:\sites\status.domena.cz\' + $_) -Name password -Value Pa55w.rd}

Právě fakt, že hesla jsou v systému uložená šifrovaně, zcela znemožňuje replikaci definic virtuáních adresářů prostou editací souboru ApplicationHost.config. Za zkušenost zaplatíte restartem webového serveru, ve kterém musíte odstranit ony zkopírované řádky konfiguračného souboru. Pouhý restart nestačí: odpálí se tam nějaká služba, ale která – to jsem nezjistil.

Poznámka 1.

Celý tento postup byl laděn a zkoušen na Microsoft Windows Serveru 2019.

Poznámka 2.

Někdy mám pocit, že některé týmy vývojářů na Microsoftu – jako by byly z jiné planety. Nechodí vám příkazy Set-ItemProperty tak, jak je popsáno v příkladu? Jasně: Set-It…. …password je v cajku, ale Set-It… …username vám nechodí a nechodí! Zkuste tedy jako jméno property userName – kapišto? Fakt. Jsme u Microsoftu a ono je to Case-Sensitive ! To je podobné jako u zadání hesla v otevřeném textu: v celém zbytku PowerShellu (pokud je mi známo) se používá formát hesla jako Secure.String …..

 

2.3.2020 / kaldy123

Export and Import Windows features

Když potřebuju ještě jeden server, stejný jako ten předchozí.

Create your windows features xml or text file with the one of the following commands from a reference server:

Get-WindowsFeature | ? { $_.Installed } | Export-Clixml .\Features.xml

OR

Get-WindowsFeature | ? { $_.Installed } | Select Name | ForEach-Object { $_.Name } | Out-File .\Features.txt

To install these features:

$(Import-Clixml .\Features.xml) | Add-WindowsFeature

OR

$(Get-Content .\Features.txt) | Add-WindowsFeature

I prefer the TXT file and a Sort for an easy way to compare the files to easily compare of two servers. Therefore my final scripts:
Export:

Import-Module ServerManager
Get-WindowsFeature |
? { $_.Installed } |
Sort-Object Name |
Select Name |
ForEach-Object { $_.Name } |
Out-File .\Features.txt

Import:

Import-Module ServerManager
$(Get-Content .\Features.txt) |
Add-WindowsFeature

..and you should be all set.
http://jeffmurr.com/blog/?p=273

Poznámka: Když jsem popsaný způsob aplikoval, nedařila se mi ta textová varianta. Po delším pátrání (to už jsem byl dávno za vodou s xml formátem) mi došlo, že při získávání features mi vypadl příkaz

ForEach-Object {$_.name}

Jasně! Právě tento příkaz „vykotlá“ z objektu Feature právě Property Name a tu teprve zapisuje. A je jasné, proč mi to nechodilo, i když výpis Features.txt vypadal dobře (ale byly tam trailing mezery – a ty na výpisu vidět nejsou)!

26.1.2020 / kaldy123

SQL (Express) na Core serveru II.

Nastavení.
Podstatou úkolu je nastavit SQL server pro vzdálenou správu, nejlépe přes SQL system management studio – SSMS. K tomu je nutné povolit TCP komunikaci a v případě „named instance“ (pojmenované instance) – nastavit i pevný port.

Celý postup (v powershell) je trochu krkolomný. ale jde to:

  1. nastavení SQL Management Objektu
  2. vytvoření Windows Management Instrumentation objektu
  3. připojení (vytvoření) k objektu TCP pro danou instanci SQL serveru v rámci WMI objektu
  4. povolení TCP komunikace
  5. nastavení pevného portu pro komunikaci

Níže uvedené příkazy se zadávají v prostředí SQLPS – powershell pro SQL server. Zavoláte jednoduše z příkazové řádky příkazem sqlps. Jak na něj přes remoting – věru nevím, příklad byl vyzkoušen na lokální konzole.
V příkazech:

$smo='Microsoft.SqlServer.Management.Smo.'
$wmi=new-object ($smo + 'Wmi.ManagedComputer')
$uri="ManagedComputer[@Name='JMENO-SERVERU']/ServerInstance[@Name='SQLEXPRESS']/ServerProtocol[@Name='Tcp']"
$Tcp=$wmi.GetSmoObject($uri)
$Tcp.IsEnabled=$true
$Tcp.Alter()
$wmi.GetSmoObject($uri + "/IPAddress[@Name='IPAll']").IPAddressProperties[1].Value="1433"
$Tcp.Alter()

K tomu jen pár praxí získaných poznámek:

  1. JMENO-SERVERU je skutečně nutno psát verzálkama (velkými písmeny) – ta mrcha je case-sensitive!
  2. Parametry @Name jsou rovněž case-sensitivní.
  3. Parametr IPAll není IPA-jedenáct, ale IP-všechny!
  4. Tcp.Alter je tam 2x a záměrně. Totiž: nejdříve je třeba objekt Tcp vytvořit – a pak můžete nastavovat fixní (nebo jiný) port

Příklad je zpracován pro named instance SQLEXPRESS a port 1433.

Nedaří se?
Pokud běží na virtuálce, je dobré mrknout, zda všechny servisy, co mají běžet, běží. Malý powershelový mustr je:

Get-Service|? {($_.starttype -eq 'Automatic') -and ($_.status -ne 'Running')}|ft name,status,starttype
25.1.2020 / kaldy123

SQL (Express) na core serveru I.

Instalace.

Instalovat jde, ale není podporovaný wizzard, musí se instalovat z příkazové řádky v quiet módu. Je dobré si vypsat setup /? a projet si parametry. Osobně jsem svůj SQLEXPRESS instaloval takto:

C:\setup /ACTION=INSTALL /FEATURES=SQL /IACCEPTSQLSERVERLICENSETERMS /INSTANCENAME=SQLEXPRESS /SAPWD=<HESLO> /SECURITYMODE=SQL /SQLBACKUPDIR="C:\SQLBACKUP" /SQLCOLLATION=SQL_Czech_CP1250_CI_AS /TCPENABLED=1 /QS
22.1.2020 / kaldy123

OTEVŘENÉ DNSSEC VALIDUJÍCÍ RESOLVERY

JAK ZAPNOUT CZ.NIC RESOLVERY?
V konfiguraci síťového připojení nakonfigurujte resolvery s IP adresami

193.17.47.1

185.43.135.1

pokud vaše síťové připojení funguje i přes protokol IPv6 můžete použít i IPv6 adresy 2001:148f:ffff::1 a 2001:148f:fffe::1.

Zkopírováno z https://www.nic.cz/odvr/

13.1.2020 / kaldy123

CRL na IIS

Je dost důvodů, proč vystrčit CDP (CRL Distribution Point) na nějaký externí webový server. Má to drobný háček: Delta CRL má na konci názvu „+“ – a to se IIS pranic nelíbí. Pokud s tím nic neuděláte, dostanete 403 – not found.

Chce to povolit v Request filtering – Allow double escaping. Jinak, kompletní článek je na https://www.vkernel.ro/blog/how-to-publish-the-crl-and-aia-on-a-separate-web-server .

How to Publish the CRL and AIA on a Separate Web Server
In order to fix this and make it more flexible, we are going to publish the AIA and CRLs on a different server, a web server. And since we are in Microsofts world, we are going to use IIS as our new location or distribution point.
http://www.vkernel.ro

Zde publikuji pouze sručný tahák:

13.1.2020 / kaldy123

CA decomission

https://support.microsoft.com/en-ca/help/889250/how-to-decommission-a-windows-enterprise-certification-authority-and-r

How to decommission a Windows enterprise certification authority and remove all related objects
When you uninstall a certification authority (CA), the certificates that were issued by the CA are typically still outstanding. If the outstanding certificates are processed by the various Public Key Infrastructure client computers, validation will fail, and those certificates will not be used.
support.microsoft.com

CA-Decomision.pdf

2.1.2020 / kaldy123

DHCP Relay, DHCP Relay Agent

Scénář 1: vytvoříme subnet, nechceme v něm instalovat a konfigurovat DHCP server, ale chceme automatické přidělování IP adres

Scénář 2: ve dvou subnetech chceme DHCP failover, s tím, že failover DHCP server bude vždy ten v náprotivném subnetu

Situace 1: máme router, který má funkci DHCP relay. Takovým routerem může být Windows Server (W2008 +) – i když je to jakkoli nepravděpodobná konfigurace.

Příklad takové konfigurace je např. na:
https://campus.barracuda.com/product/cloudgenfirewall/doc/79462816/how-to-configure-the-dhcp-relay-agent/

Situace 2: router NEMÁ funkci DHCP relay. Pak lze použít DHCP relay agent (Windows Server 2016 +).

Příklad takové konfigurace je např. na:
https://www.itechguides.com/dhcp-relay-agent-configuration-in-windows-server-2016/

Selbstverständlich: na DHCP serveru musíte mít nadefinované minimálně dva scoupy (scope), pro každý subnet alespoň jeden.