PowerShell remoting

Wymagania dot.  zdalnego połączenia przez PS:

  1. Otwarte porty: WSMan: 5985. Jeżeli połączenie ma się odbywać przez SSL, otwarty również port 5986;
  2. Sieć nie publiczna: Prywatna lub Firmowa;
  3. Uruchomiona usługę WinRM, skonfigurować uruchamianie w auto starcie;
  4. Utworzony Listenera dla adresu IP lub nazwy komputera.

Uruchomienie PS Remoting na komputerach pracujących w domenie:

  1. Konfiguracja auto startu usługi:
    Computer Configurations / Windows Settings / Security Settings / System Services / Windows Remote Management (WS-Management),
  2. Konfiguracja Listenera:
    Computer Configurations / Administrative Templates / Windows Components / Windows Remote Managament (WinRM) / WinRM Service / Allow remote server management through WinRM
    Opcja skonfigurowana na Enable, w miejscu IPv4 filter gwiazdka (*)
  3. Konfiguracja zapory sieciowej:
    Computer Configurations / Windows Settings / Security Settings / Windows Defender Firewall with Advanced Security / Inbound Rules – Wybrać usługę Windows Remote Management (HTTP-In)

Zamiast klikologii można posłużyć się komendami Powershell. Na maszynie, do której mamy się łączyć należy otworzyć PS z podwyższonymi uprawnieniami i wydać następujące komendy:

$Interface_Index = Get-NetConnectionProfile | Select -ExpandProperty InterfaceIndex
Set-NetConnectionProfile -InterfaceIndex $Interface_Index -NetworkCategory Private
Enable-PSRemoting -Force
Restart-Service WinRM

Dodatkowo na komputerze z którego mamy się łączyć do innych maszyn należy uruchomić PS z podwyższonymi uprawnieniami i wydać następującą komendę:

Set-Item wsman:\localhost\client\trustedhosts *

Samo połączenie do zdalnego komputera odbywa się poprzez wydanie polecania:

Enter-PSSession -ComputerName 192.168.5.7 -Credential admin

Możliwe jest wykonanie skryptu lub komendy na wielu komputerach naraz poprzez polecenie:

Invoke-Command -ComputerName 192.168.5.7, 192.168.5.8 -ScriptBlock { Get-ChildItem C:\ } -credential admin_account_name

lub uruchomić skrypt PowerShell:

Invoke-Command -ComputerName 192.168.5.7, 192.168.5.8 -FilePath C:\skrypty\tajemniczy_skrypt.ps1

Źródła:
http://powershell.org/wp/2012/08/06/ebook-secrets-of-powershell-remoting/
http://blogs.technet.com/b/heyscriptingguy/archive/2013/11/29/remoting-week-non-domain-remoting.aspx

Udostępnianie plików w systemie Windows. Nadawanie uprawnień do zasobów sieciowych

Uprawnienia udostępnianych folderów sieciowych mogą być nadawane na poziomie systemu plików NTFS oraz samego folderu. Poniżej przedstawione są najważniejsze cechy tych rozwiązań oraz przykłady. Dobrą praktyką jest nadawanie uprawnień wyłącznie na poziomie NTFS.

 

Uprawnienia NTFS:
– uprawnienia mogą być nadane plikom i folderom,
– uprawnienia mogą być przyznane użytkownikom i grupom,
– uprawnienia są kumulowane, wygrywa uprawnienie mniej restrykcyjne,
– uprawnienie „odmów” zawsze nadpisuje „zezwalaj”

 

Uprawnienia folderów udostępnianych:
– uprawnienia są nadawane tylko folderom udostępnianym,
– uprawnienia są kumulowane, wygrywa uprawnienie mniej restrykcyjne,
– uprawnienie „odmów” zawsze nadpisuje „zezwalaj”

 

Kumulacja uprawnień NTFS i folderów udostępnianych:
– uprawnienia są kumulowane, nadpisuje („wygrywa”) uprawnienie bardziej restrykcyjne

 

Przykłady:

  1. Użytkownik na poziomie NTFS ma uprawnienie „Odczyt” a na poziomie folderu udostępnionego „Pełna kontrola”. Wynikowym uprawnieniem jest zatem „Pełna kontrola”.
  2. Użytkownik na poziomie NTFS ma uprawnienie „Modyfikacja” a na poziomie folderu udostępnionego „Odczyt”. Wynikowym uprawnieniem jest zatem „Odczyt”.
  3. Użytkownik na poziomie NTFS ma uprawnienie „Odczyt” oraz „Pełna kontrola” a na poziomie folderu udostępnionego „Modyfikacja”. Wynikowym uprawnieniem jest zatem „Modyfikacja” (mniej restrykcyjnym uprawnieniem NTFS jest „Pełna kontrola” – nie „Odczyt”, natomiast folder udostępniony ma uprawnienie „Modyfikacja” dlatego uprawnieniem wynikowym jest „Modyfikacja” – uprawnienie bardziej restrykcyjne).

WordPress – wykonywanie kopii zapasowej

Aby wykonać pełną kopię zapasową strony opartej na WordPress należy:

  1. wyeksportować plik bazy z poziomy phpMyAdmin (patrz wpis: WordPress 4.1 – migracja  na innych serwer (hosting), pkt. 3.  lub za pomoca pluginu BackWPup autorstwa Daniela Huskena (https://wordpress.org/plugins/backwpup/);
  2. z serwera FTP skopiować folder wp-content oraz plik wp-config.php a także .htaccess (o ile istnieje).

Operacje na plikach, zmiana długości ścieżki plików i folderów, masowa zmiana nazw.

Czasem zachodzi potrzeba migracji dużej ilości danych z jednego komputera na drugi. Podczas przegrywania danych może się jednak okazać że niektóre pliki i foldery zawierają za długie ścieżki dostępu (dłuższe niż 256 znaków) i kopiowanie zostaje przerwane lub pliki i foldery zostają pominięte. Po zakończeniu kopiowania nie wiadomo których plików brakuje w nowej lokalizacji.

Bardzo przydatnym programem pozwalającym wykryć na dysku i przekopiować pliki i foldery o długich ścieżkach dostępu jest Long Path Tool: http://longpathtool.com

Bardzo praktycznymi programami są również: Renamer http://www.antp.be/software/renamer oraz Total Copy, dzięki któremu jest możliwa masowa zmiana nazw plików (bardzo dobry opis tej funkcjonalności znajduje się na forum: (http://forum.programosy.pl/masowa-zmiana-nazw-plikow-przy-uzyciu-total-commandera-vp924856.html)

 

Synchronizacja plików na serwerze

Dobrymi programami do synchronizacji plików na serwerze są m.in. lftp, mirror, WinSCP, robocopy. Poniżej przedstawiony jest przykład użycia oprogramowania robocopy (skrypt):

@echo off
REM zamapowanie zasobu
net use \\10.1.1.124\KOPIE\Katalog_docelowy /u:user password /Persistent:no
REM synchronizacja plikow
robocopy D:\Katalog_zrodlowy \\10.1.1.124\KOPIE\Katalog_docelowy /e /purge /MIR /FFT /W:2 /R:3 /XJ /NP >> \\10.1.1.124\KOPIE\backup.log
REM odmontowanie zasobu
net use /d \\10.1.1.124\KOPIE\Katalog_docelowy , gdzie:net use /d \\10.1.1.124\KOPIE

Poniżej opis użytych parametrów:
/FFT – zakładanie czasu plików w systemie FAT. Jeśli nie umieścimy tego parametru, program i tak skopiuje pliki na server z systemem Linux.
/e – kopiowanie subfolderów, również pustych
/purge – usuwanie plików i folderów w folderze docelowym, które nie są już obecne w folderze źródłowym,
/MIR – tworzy odbicie lustrzane katalogów – to chyba najważniejszy parametr ponieważ dzięki niemu nie kopiujemy za każdym razem wszystkich plików, tylko są one porównywane i tylko zmienione pozycje będą przegrane (ostrzeżenie: usunięte pozycje będą także usunięte z docelowego katalogu). Działanie podobne do /purge
/W:2 – czas oczekiwania pomiędzy kolejnymi próbami (domyślnie 30s)
/R:3 – liczba ponownych prób w przypadku niepowodzenia tworzenia kopii (domyślnie 1 milion)
>> – dopisywanie do istniejącego logu. Pojedynczy znak > skasuje stary log i utworzy nowy. Lepiej więc używać znaku >>
/XJ – wyklucza punkty połączenia – domyślnie robocopy podąża za linkami, więc kopiując skrót z folderu, przekopiuje również plik z innego folderu, do którego prowadzi ten link.
/NP – nie pokazuj progresu

Dla ukrycia loginu i hasła można plik wsadowy .bat przekształcić w plik .exe za pomocą programu Bat To Exe Converter (http://www.f2ko.de/en/index.php)

 

UWAGA!! Utworzony skrypt należy nazwać inaczej niż robocopy.cmd lub robocopy.bat, ponieważ skrypt uruchomiony z pliku o tej nazwie wpadnie w pętlę (będzie wywoływał sam siebie).

Aktualizacja oprogramowania Tomato na routerze ASUS RT-N10U

Najprostszym sposobem aktualizacji oprogramowania na routerze ASUS RT-N10U jest użycie oficjalnego narzędzia ASUS Firmware Restoration version 2.0.0.0, które można pobrać ze strony: http://dlcdnet.asus.com/pub/ASUS/wireless/RT-N10U_B1/Rescue_RT_N10U_B1_2000.zip . Następnie należy:

  1. Ze strony http://tomato.groov.pl/download/K26RT-N/ ściągnąć najnowszy obraz oprogramowania Tomato o wielkości nie przekraczającej 8MB, np najnowszy obraz na dzień 17.08.2015: http://tomato.groov.pl/download/K26RT-N/build5x-131-EN/Asus%20RT-Nxx/tomato-K26USB-1.28.RT-N5x-MIPSR2-131-VPN.zip, rozpakować plik *.trx
  2. Na komputerze połączonym z routerem ustawić adres IP: 192.168.1.10
  3. W programie wybrać Firmware Restoration wybrać obraz *.trx i nacisnąć klawisz „Prześlij”,
  4. Przytrzymując przycisk reset, włączyć urządzenie.
  5. Rozpocznie się proces kopiowania obrazu. Po przekopiowaniu program wyświetli komunikat o pomyślnie przeprowadzonej operacji.

Instalacja najnowszej wersji programu Flash Player.

Aby zainstalować najnowszą wersję programu Flash Player należy:

  1. Ze strony: http://www.adobe.com/support/flashplayer/downloads.html#fp11 sciągnąć Uninstaller – program który odinstaluje starą wersję programu Flsh Player. Jest to link drugi od góry w kategorii Windows: Download the Flash Player content debugger for Firefox – NPAPI. Oto bezpośredni link do programu: https://fpdownload.macromedia.com/get/flashplayer/current/support/uninstall_flash_player.exe
  2. Zamknąć przeglądarkę Firefox oraz wszystkie inne programy, które korzystają z Flash Player,
  3. Uruchomić Uninstaller,
  4. Ze strony: https://fpdownload.macromedia.com/pub/flashplayer/updaters/18/flashplayer_18_plugin_debug.exe pobrać najnowszą wersję programu Flash Player a następnie zainstalować.

Windows Server 2012 R2 Core – konfiguracja NIC Teaming

powershell
Get-NetAdapter
Get-NetAdapter ethernet0 | fl *

fl od format list – wszystkie właściwości interfejsu.
Następnie należy wyłączyć na jednym interfejsie usługę DHCP Client i nadać mu statyczny adres IP.

Get-NetAdapter ethernet0 | Set-NetIPInterface -dhcp disabled
Get-NetAdapter ethernet0 | new-netipaddress -IPAddress 192.168.0.104 -DefaultGateway 192.168.0.1 -PrefixLenght 24
Set-DNSClientServerAddress -InternetAlias ethernet0 -ServerAddress 192.168.0.100

Po nadaniu adresu IP jednemu interfejsowi można rozpocząć konfiguracją funkcji NIC Teaming

new-netbfoteam -name "Nasz Team" -TeamMembers ethernet0,ethernet1 -TeamingMode switchindependent -LoadBalancingAlgorithm dynamic

Nazwa netbfoteam pochodzi od Net Balance and Fail Over Team.
Teraz wynik komendy Get-NetAdapter pokaże 3 interfejsy – 2 interfejsy sieciowe fizyczne, oraz interfejs „Nasz Team”, który możemy konfigurować jak fizyczny interfejs (adresacja IP itp.).