2019-11-06
Zacznijmy od tego, że aktualizacje to generalnie dobra rzecz. Niezaktualizowany system jest po prostu niebezpieczny, bo hakerzy czekają na „łosiów” ze starym system, na którym nie trzeba się specjalnie natrudzić żeby się włamać.
Trzeba jednak też przyznać, że są sytuacje kiedy aktualizacje chcesz wyłączyć, bo prostu transfer po sieci, miejsce na dysku, albo stabilność pracy są dla ciebie ważniejsze niż bezpieczny system. Tak było w przypadku mojego testowego systemu Windows zainstalowanego pod Hyper-V i który co kilka dni/tygodni wraca do swojego pierwotnego stanu. Nie ma potrzeby o aktualizować po każdym przywróceniu….
Niestety Microsoft bardzo dba o to żeby aktualizacje się wykonywały, dlatego kiedy chcesz je SKUTECZNIE wyłączyć, najlepiej zrobić to na WSZYSTKIE możliwe sposoby:
- Zmień nazwę pliku wykorzystywanego do aktualizacji C:\Windows\System32\wuaueng.dll
Oryginalnie do tego pliku nie masz uprawnień, więc musisz (1) przejąć plik na własność (2) nadać sobie uprawnienie pełna kontrola (3) zmienić nazwę pliku (4) zrestartować Windows
- W services.msc wyłączyć (disable) usługę Windows Update
Wyłączyć aktualizacje w rejestrze:
W kluczu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc wartość Start zmienić na 4
W kluczu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc wartość Start zmienić na 4
- Wyłączyć zadanie z harmonogramu zadań odpowiedzialne za sprawdzanie aktulizacji. Znajdziesz je w Task Scheduler Library -> Microsoft -> Windows -> Windows Update.
- W przypadku wersji PRO wyłączyć aktualizacje w GPO. W tym celu należy uruchomić gpedit.msc i w ścieżce Computer Configuration\Administrative Templates\Windows Components\ Windows Update \ Specify Intranet Microsoft update service location zmienić adresy na tak bezsensowne jak można
- Zmienić ustawienia połączenia sieciowego na taryfowe (metered connection)
Jeśli potrzeba więcej ilustracji to można zerknąć tu:
How To Turn Off Windows 10 Updates Permanently.
2019-11-04
Na serwer FTP trzeba wysłać plik. Czemu by nie skorzystać z powershella?
$ftp = "ftp://server_name//dir_name/subdir/"
$user = "username"
$pass = "password"
$destinationFileName = 'filename.csv'
$sourceFileName = 'c:\temp\filename.csv'
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass)
$uri = New-Object System.Uri($ftp+$destinationFileName)
$webclient.UploadFile($uri, $sourceFileName)
Wszystko pięknie, ale plik miał domyślne uprawnienia, które należało zwiększyć. W takim przypadku niestety trzeba wrócić do interfejsu znakowego program ftp.exe dostępnego w Windows. Parametr s pozwala na wywołanie ftp razem z plikiem komend, który zawiera w sobie instrukcje jakie mają być wykonane przez ftp. Jeśli chcieć opisać to w powershell, to należałoby
- zbudować plik komend
- uruchomić ftp wskazując parametrem s na ten plik
W samym pliku z komendami następująca instrukcja określa jakie uprawnienia mają mieć nowotworzone pliki:
$ftpServer = 'server_name'
$remoteDir='/dir_name/subdir'
$user = "user_name"
$pass = "password"
$fileName = 'filename.csv'
#create a command file
$commandFile = 'c:/temp/commandfile.txt'
"open $ftpServer" | Out-File $commandFile -Force
"$user" | Out-File $commandFile -Append
"$pass" | Out-File $commandFile -Append
"cd $remoteDir" | Out-File $commandFile -Append
"quote SITE UMASK 113" | Out-File $commandFile -Append
"put $fileName" | Out-File $commandFile -Append
"disconnect" | Out-File $commandFile -Append
"quit" | Out-File $commandFile -Append
# run ftp pointing to command file
&ftp.exe -s:$commandFile
Zobacz też tu:
Powershell: Upload pliku przez FTP
2019-11-01
Podczas instalacji Windows 10, przy próbie wykonania aktywacji pojawia się komunikat:
Unable to activate Windows
We can’t reach a critical Windows service. Make sure you’re conncted to the Internet, wait a few minutes and try activating again. (0x80070422)

Ów serwis, którego nie można osiągnąć, to pewnie „Windows License Manager”, tylko… że u mnie on działa…
Pomaga uruchomienie komend:
1. Usunięcie aktualnego klucza:
slmgr.vbs /upk
2. Podanie nowego klucza:
slmgr.vbs /ipk TWOJ-KLUCZ-LICENCJI
Potem we właściwościach komputera w okienku z kluczem produktu wystarczy kliknąć „Activate” lub „Troubleshoot” i windows powinien się aktywować
2019-10-30
Na starszych serwerach Windows, kiedy próbujesz podlaczyc sie do RDP i wszystkie sesje są już zajęte, to nie zobaczysz informacji o tym kto tam pracuje. W takim przypadku trzeba innymi metodami
(a) dowiedzieć się kto pracuje na serwerze
(b) zakończyć te sesje
Oto polecenie, które wyświetli informację o zajętych sesjach RDP:
QUser /server:computer_name
W odpowiedzi zostanie wyświetlona lista sesji, a każda z nich ma między innymi swój ID. Korzystając z tego ID można pójść krok dalej i takie sesje wylogować:
Logoff sessionid /server:computer_name
2019-10-17
Podczas migrowania plików między komputerami, zwłaszcza na dyskach zewnętrznych, może się okazać, że przekopiowany plik lub katalog nie może być otwarty na docelowym komputerze. Jeśli na docelowym komputerze jesteś administratorem możesz skorzystać z poniższych poleceń, żeby
(1) przejąć na własność katalog (tutaj katalog test)
takeown /f test
Spodziewany wynik polecenia to:
SUCCESS: The file (or folder): "c:\temp\test" now owned by user "ws2019\admin".
(2) nadać sobie uprawnienia:
icacls test /grant admin:F
Spodziewany wynik to:
processed file: test
Successfully processed 114 files; Failed processing 0 files
2019-10-16
Jak zwykle po premierze kursu przez krótki czas udostępniam kurs za darmo. Tak jest i tym razem:

- Kurs od podstaw
- 10 godzin video
- Ćwiczenia po każdej lekcji
- Dane do ćwiczeń publicznie dostępne do pobrania
- Rozwiązania do ćwiczeń
- Tylko bazowe pakiety bez tysiąca modułów
- Od instalacji przez pracę z danymi po wizualizację
- Wszystko czego potrzeba na start!
Miłej nauki!
2019-09-17
Jeśli zgubisz klucz do systemu windows 10, to można go odzyskać przy pomocy skryptu umieszczonego poniżej. Otwórz notatnik, wklej zawartość skryptu, zapisz go pod nazwą np get-win-key.vbs. Potem po prostu kliknij na nim dwa razy i w okienku zobaczysz swój klucz produktu:
Set WshShell = CreateObject("WScript.Shell")
MsgBox ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId")) Function ConvertToKey(Key)
Const KeyOffset = 52
i = 28
Chars = "BCDFGHJKMPQRTVWXY2346789"
Do
Cur = 0
x = 14
Do
Cur = Cur * 256
Cur = Key(x + KeyOffset) + Cur
Key(x + KeyOffset) = (Cur \ 24) And 255
Cur = Cur Mod 24
x = x -1
Loop While x >= 0
i = i -1
KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
If (((29 - i) Mod 6) = 0) And (i <> -1) Then
i = i -1
KeyOutput = "-" & KeyOutput
End If
Loop While i >= 0
ConvertToKey = KeyOutput
End Function
Rozwiązanie pochodzi ze strony https://www.howtogeek.com/206329/how-to-find-your-lost-windows-or-office-product-keys/ i potwierdzam że działa 🙂