Change default WSUS port from 8530 to 80 on Windows Server 2012

After WSUS installation on Windows Server 2012 I discovered that it’s running on port 8530, different than on older version of Windows (it was using port 80 from beginning). But what’s more interesting it was running ONLY on IPv6 interface! Switching binding configuration in IIS doesn’t help.

I could stand switching port – it’s nothing hard with GPO, but IPv6 only configuration was not acceptable.

After googling for some time I found one command that solved my problems by switching WSUS to older behavior and run it on port 80 (on default website).

Just run on elevated command line:

C:\Program Files\Update Services\Tools\WSUSutil usecustomwebsite false

After half a minute WSUS was working like a charm 馃檪

Source:
http://social.technet.microsoft.com

Manage Windows 8.1 and Windows Server 2012 R2 in WSUS 3.0

After connecting few computers with Windows 8.1 to domain we found that these computers are not recognized or recognized as Windows 6.3 (which is true) on WSUS 3.0 running on Windows Server 2008. The bad thing was that they can’t properly report to WSUS and get updates from it.

I found that there are two updates that have to be installed (but they’re not working without additional steps):

After installation of second update there are two additional steps that have to be performed to get WSUS working:

Reindex the WSUS Database

To do this perform these steps:

  • Copy sript from this site to file named WsusDBMaintenance.sql
  • Install sqlcmd from this site – search for file named like “SQLServer2005_SQLCMD” with proper architecture (x86/amd64/ia64)
  • run:
    sqlcmd -S np:\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query -i C:\path to script saved in first point\WsusDBMaintenance.sql
  • Use WSUS Server Cleanup Wizard

Done. Your WSUS will not recognize 8.1 clients but will work with them and serve updates.

Source:
http://social.technet.microsoft.com/Forums/en-US/559fe878-e2a2-4ec6-9d91-55ea1b67caef/manage-windows-81-windows-server-2012-r2-on-wsus-30?forum=winserverwsus

DFS – sprawdzanie statusu replikacji

Ostatnio zbyt du偶o grzebi臋 przy “windach” – ale c贸偶, czasem trzeba. Ostatnio ustawia艂em DFS’a z replikacj膮 dla dw贸ch sporych zasob贸w i jedna z rzeczy, o kt贸r膮 si臋 rozbi艂em to brak jakiegokolwiek podgl膮du tej synchronizacji z GUI. Ale znalaz艂em jedno polecenie, kt贸re dzia艂a w shellu (cho膰 to si臋 chyba batch tutaj nazywa) od Windows Server 2008 R2:

dfsrdiag ReplicationState /member:nazwaservera

Polecenie co prawda nie podaje post臋pu procentowego ale mo偶na zobaczy膰 “czy co艣 jeszcze si臋 synchronizuje” i czy nie ma 偶adnych b艂臋d贸w. Je偶eli to polecenie to za ma艂o to mo偶na spr贸bowa膰 bardziej gadatliwej wersji:

dfsrdiag ReplicationState /member:nazwaservera /all

GPO: Instalacja GIMP’a 2.8

Raz na jaki艣 czas trzeba co艣 niestandardowego wrzuci膰 do instalacji w Active Directory a 偶e nie wszystkie aplikacje maj膮 dost臋pne paczki MSI to trzeba si臋 nieco natrudzi膰.

Poni偶ej wrzucam skrypt, kt贸ry instaluje GIMP’a 2.8 z domy艣lnego instalatora (wersja InnoSetup) przy okazji odinstalowuj膮c wcze艣niejsze wersje zainstalowane r臋cznie.

Zapisujemy poni偶szy kod jako np. gimp-install.cmd

@echo off
REM  Installs GIMP
cls
echo ----------------------------------------------------
echo .
echo .
echo .      Installing/Updating GIMP - Please Wait
echo .
echo .
echo ----------------------------------------------------
REM Test if actual
IF exist "%ProgramFiles%\GIMP\bin\gimp-2.8.exe" GOTO SkipInstall

REM Exit the application
taskkill.exe /F /FI "IMAGENAME eq gimp-2.8.exe" >nul

REM Uninstall existing GIMP version, delete folder
if exist "%ProgramFiles%\GIMP 2\uninst\unins000.exe" "%ProgramFiles%\GIMP 2\uninst\unins000.exe" /VERYSILENT
:: Wait for 20 seconds
ping -n 40 127.0.0.1 > NUL
if exist "%ProgramFiles%\GIMP 2\" rd "%ProgramFiles%\GIMP 2\" /Q /S

REM Install new version
"\\serwerplikow.local\Instalki\GIMP\gimp-2.8.4-setup.exe" /VERYSILENT /NORESTART /DIR="%PROGRAMFILES%\GIMP 2.8"

REM Skip installation if acctuall
:SkipInstall

REM Return exit code to SCCM
exit /B %EXIT_CODE%

Tworzymy now膮 regu艂k臋 GPO i zmierzamy do: Computer Configuration\Policies\Windows Settings\Scripts\Startup
W nowym okienku wybieramy Show Files…
Wklejamy plik skryptu do tego folderu i teraz mo偶emy doda膰 go w tym samym oknie (Add…) – dzi臋ki wrzuceniu skryptu w tym miejscu b臋dzie si臋 on automatycznie replikowa膰 na inne kontrolery. Skrypt b臋dzie co prawda uruchamiany przy ka偶dym starcie komputera ale pierwszy warunek b臋dzie sprawdza膰 czy aplikacja jest zainstalowana wi臋c nie spowolni to znacznie startu.

Skrypt znalaz艂em gdzie艣 na sieci ale nie mog臋 namierzy膰 藕r贸d艂a.

Apache: mod_authnz_ldap z Active Directory

Gdy ju偶 si臋 dorobi systemu Active Directory wygodnie jest wykorzysta膰 jego baz臋 u偶ytkownik贸w do autoryzacji w r贸偶nych miejscach, np. do pewnych “tajnych i tajniejszych” stron w Apache. Najpro艣ciej mo偶na to zrobi膰 z wykorzystaniem LDAP.

Warto sprawdzi膰 czy i jak mo偶emy dosta膰 si臋 do kontroler贸w. Gdy ju偶 mamy wszystkie potrzebne parametry konfigurujemy Apachego – na pocz膮tek aktywujemy modu艂y:

a2enmod ldap
a2enmod authnz_ldap

Teraz mo偶emy edytujemy globalny plik konfiguracyjny mod_ldap’a by ustawi膰 nieco cache’y (bardzo przydatne). Warto艣ci mo偶na dostosowa膰 do potrzeb ale przyk艂adowe powinny wystarczy膰 na pocz膮tku:

LDAPSharedCacheSize 500000
LDAPCacheEntries 1024
LDAPCacheTTL 600
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 600
<Location /ldap-status>
聽 SetHandler ldap-status
聽 Order deny,allow
聽 Deny from all
聽 # Allow from 127.0.0.1 ::1
聽 Allow from 192.168.1.15/32
聽 Satisfy all
</Location>

Warto zwr贸ci膰 uwag臋 na drug膮 cz臋艣膰 – mo偶na aktywowa膰 podgl膮d statusu mod_ldap’a co bywa przydatne na etapie test贸w (np. by zobaczy膰 kto aktualnie jest zalogowany) – ja umo偶liwi艂em dost臋p ze swojego zdalnego komputera. Teraz restart Apachego aby wszystko si臋 za艂adowa艂o:

invoke-rc.d apache2 restart

艢rodowisko mamy gotowe, mo偶emy skonfigurowa膰 vhosta. Poni偶sze opcje wrzucamy np. do klauzuli <Directory> lub <Location>:

Authtype basic
Authname "Zaloguj sie kontem domenowym"
AuthBasicProvider ldap
AuthzLDAPAuthoritative Off
AuthUserFile /dev/null
AuthLDAPUrl "ldap://server1.nazwadomeny.local:389 10.0.0.32:389/DC=nazwadomeny,DC=local?sAMAccountName?sub?(objectClass=person)" NONE
AuthLDAPBindDN "CN=kontodomenowe,OU=System Accounts,DC=nazwadomeny,DC=local"
AuthLDAPBindPassword "haslo konta domenowego"
Require valid-user
# Require ldap-dn ou=Jakies przykladowe OU

Najwa偶niejsze parametry to:

  • AuthLDAPUrl – tutaj podajemy parametry do po艂膮czenia LDAP, w pierwszej cz臋艣ci mo偶emy poda膰 kilka serwer贸w by mie膰 backup, p贸藕niej korze艅 od kt贸rego b臋dzie rozpoczynane przeszukiwanie drzewa (tutaj ca艂a domena), na ko艅cu filtry,
  • AuthLDAPBindDN – konto kt贸rym autoryzujemy si臋 do kontrolera by m贸c przeszukiwa膰 na nim obiekty (podane jako 艣cie偶ka LDAP),
  • AuthLDAPBindPassword – has艂o do powy偶szego konta,
  • Require ldap-dn – mo偶na nie tylko sprawdza膰 czy u偶ytkownik jest prawid艂owy ale r贸wnie偶 czy jest w pewnym OU, grupie itd…

Teoretycznie wszystko jest poprawnie ale za choler臋 nie chcia艂o dzia艂a膰 dopiero dodanie do /etc/ldap/ldap.conf opcji: REFERRALS off sprawi艂o 偶e autoryzacja dzia艂a poprawnie – oneliner by to uzyska膰:

echo "REFERRALS off" >> /etc/ldap/ldap.conf

Ja mam Apachego 2.2 i jest to jedyna opcja by uzyska膰 ten efekt. W wersji od 2.4 jest dodatkowa opcja聽LDAPReferrals, kt贸ra pozwala na zmian臋 tego zachowania wprost z konfiguracji Apachego.