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

Uruchamianie aplikacji .NET jako 32-bitowej w 64-bitowym systemie

Kolejna zabawna sytuacja – pewna aplikacja dotNET’owa działała dziwnie na 64-bitowym systemie, a tymczasem na 32-bitowej maszynie ta sama aplikacja działała bez problemów. Jedyna różnica to inne wersje klientów ODBC na tych systemach, które po kilku testach okazały się być przyczyną całego zła.
Pojawił się pomysł by odpalić aplikacje na 64 bitowym systemie ale w trybie 32 bit – poniżej krótkie HOWTO jak to osiągnąć:

  • potrzebujemy narzędzia corflags.exe które pozwoli oznaczyć nam binarkę jako 32-bitową, do pobrania tutaj a instrukcja jej użycia tutaj.
  • Instalujemy Windows SDK i zaznaczamy wyłącznie .NET Development Tools w kategorii Developer Tools / Windows Development Tools
  • Odpalamy CMD i w nim CorFlags z lokalizacji: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin (przynajmniej u mnie):
    cd C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\
    CorFlags.exe c:\sciezka\do\pliku.exe /32BIT+

Tyle – aplikacja uruchomiła się bez problemu jako 32 bitowa i korzystała z 32 bitowego ODBC.

Źródła:
http://stackoverflow.com/questions/10945664/run-anycpu-as-32-bit-on-64-bit-systems
http://stackoverflow.com/questions/242304/where-should-i-download-corflags-exe-from

Instalacja Python’a na Windowsie

Pomimo że Python dużo częściej wykorzystywany jest w środowiskach UNIX’owcy/Linux’owych to znajdzie się kilka fajnych zastosowań dla tego języka na Windowsie. Możliwości na instalację jest kilka, a najprostsza to wykorzystanie instalatora ActiveState. Wersja ta ma w sobie wszystko co potrzebne:

  • rozszerzenia dla API Windows
  • menadżera pakietów PyPM
  • dokumentację

Niestety jakiś czas temu zmieniły się zasady licencjonowania w ActiveState i aktualne wersje dla zastosowań produkcyjnych wymagają zakupu licencji (1000$/rok – aż chce się zacytować z Dnia Świra: czizys k…wa…). Wiem jak lepiej wydać taką kasę więc spróbuję uzyskać podobną funkcjonalność na tym co można pobrać za darmo z sieci.

  • Instalatory Python’a dla Windows można znaleźć tutaj: http://www.python.org/download/releases/
  • Teraz pakiety z obsługą API Windows (wybieramy stosownie do wcześniej pobranej wersji Pythona): http://sourceforge.net/projects/pywin32/files/pywin32/
  • I na koniec setuptools by móc doinstalować dodatkowe moduły. Wybieramy interesującą nas wersję tutaj: https://pypi.python.org/pypi/setuptools/
  • Obecnie jest to 1.1.6 – zgodnie z opisem z tej strony: https://pypi.python.org/pypi/setuptools/1.1.6#windows pobieramy ez_setup.py i uruchamiamy.
  • Na koniec odpalamy CLI i instalujemy inne przydatne nam paczki, np.:
    easy_install couchdb
    easy_install cx-oracle
    • P.S. I tutaj mały kruczek – instalacja cx-Oracle z pomocą easy_install uda się tylko na 32-bitowych Windowsach, na 64-bitowych konieczne jest zainstalowanie Visual Studio Express by możliwe było skompilowanie paczek… (tak mnie też się w tej chwili już odechciewało…)
      Ale na szczęście w przypadku tej paczki da się inaczej, wystarczy pobrać już skompilowaną paczkę ze strony: http://cx-oracle.sourceforge.net dopasowaną do wybranej wcześniej wersji Pythona.
    • P.S. 2. Można się obyć bez tej paczki i wykorzystać pyodbc razem z kontrolerem ODBC z klienta Oracle, ale pyodbc nie obsługuje wywołań procedur ze zmiennymi wiązanymi in/out lub out – a ja akurat tego potrzebowałem, jeśli to nie twój problem to pyodbc będzie prostsze 🙂

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