środa, 23 maja 2018

Windows - użyteczne polecenia

Manager urządzeń (device manager)

Można odpalić z cmd przez  
devmgmt.msc lub  
mmc devmgmt.msc albo
control /name Microsoft.DeviceManager
control hdwwiz.cpl

źródło https://www.lifewire.com/how-to-access-device-manager-from-the-command-prompt-2626360 po szukaniu How to Access Device Manager From the Command Prompt

Właściwości komputera (mój komputer) z cmd 

windows computer properties from command line

https://www.windows-commandline.com/launch-system-properties-from-command/

sysdm.cpl
systeminfo 

Gdy odpalone z konsoli cmd z prawami adm to można np zmienić path

 Kontrola usług


Zatrzymanie (podobnie jak net stop...)
Wyłączenie autostartu
Wywalenie z listy usług Windows
sc stop "GslShmSrvc"
sc config "GslShmSrvc" start= disabled
sc delete "GslShmSrvc"
services.msc
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule Start=4

zrzut procesów do pliku z linią komend
> Lista usług
sc queryex type= service state= all | find "_NAME"

Disable the Windows Store service
Open Registry Editor and navigate to HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\WSService. Select the Start value in the right-hand pane and set its value to 4.

Disable Time Broker
In Registry Editor, navigate to HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\TimeBroker. Select the Start value in the right-hand pane and set its value to 4.


W przypadku Windows 8 warto wiedzieć jak wyłączyć weryfikację podpisu dla sterowników. Da się to zrobić tylko w specjalnym trybie.

Definiowanie arp trzeba robić inaczej

http://superuser.com/questions/101293/windows-7-the-arp-entry-addition-failed-access-is-denied

netsh interface ip delete neighbors "Network card name here" "Gateway.IP.goes.here"

netsh interface ip add neighbors "Network card name here" "Gateway.IP.goes.here" "MAC-address-of-gateway-with-dash-here"

HTC instalacja ADB - koniecznie do instalacji telefonu
https://plus.google.com/103583939320326217147/posts/BQ5iYJEaaEH

W miarę sensowny opis usług windows

http://traxter-online.net/optymalizacja-uslug-w-systemie-windows/

Nie można wyłączyć usługi Schedule

>sc config "Schedule" start= disabled
[SC] OpenService NIEPOWODZENIE 5:
Odmowa dostępu.

>sc stop Schedule
[SC] OpenService NIEPOWODZENIE 5:
Odmowa dostępu.

>net stop Schedule
Wystąpił błąd systemu 5.
Odmowa dostępu.

Można spróbować wyłączyć w rejestrze
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Schedule| Start
Automatic - 2
Manual - 3
Disabled - 4
Automatic (Delayed Start) - 2


Domyślnie jest 2 i jest nie do zmiany szare

modyfikacja wsadowa rejestru
REG add "HKLM\SYSTEM\CurrentControlSet\services\Schedule" /v Start /t REG_DWORD /d 4 /f




Zmienia się na wyłączony po tem ale nie zatrzymuje się - prawdopodobnie conieco przestanie działać.

Można to jeszcze modyfikować przez msconfig

Dell accelerometerP11 to ustrojstwo do zabezpieczenia twardego dysku.




Sieć wifi  - hostspot

http://www.wikihow.com/Create-a-WiFi-Hotspot-Using-the-Command-Prompt
http://www.blog.ravns.net/windows-7-jako-access-point-wi-fi-hot-spot-wireless-hosted-networks/
netsh wlan show drivers

Wsparcie dla sieci obsługiwanej: Tak

netsh wlan set hostednetwork mode=allow ssid=kcz1 key=qweASD321

netsh wlan start hostednetwork

netsh wlan stop hostednetwork


Icon cache
Skasować plik C:\Users\User-Name\AppData\Local\IconCache.db ubić proces explorer z managera zadań i wystartować na nowo

Poprawa bezpieczeństwa domyślnych uprawnień
Można usunąć uprawnienie dla zalogowani użytkownicy.
http://www.sevenforums.com/general-discussion/137659-how-restrict-write-access-c-root.html
W moim wypadku ma to sens, aby partycja była dostępna do zapisu tylko dla określonych osób.
W sumie w moim wypadku konieczne było zabranie uprawnień zapisu dla użytkowników (w wersji HOME było to załączone). Podczas zabierania uprawnień pojawiły się błędy że nie można zastosować zmian do niektórych plików (folderów), co jest raczej normalne, ale do reszty wydaje się działać.

Klonowanie profilu użytkownika
W przypadku większej ilości kont może być problem z ustawianiem wszystkich ustawień.
https://technet.microsoft.com/pl-pl/library/cc781200(WS.10).aspx

W windows 7 nie ma możliwości kopiowania profilu tak jak to było w wersjach XP i serwer.
http://www.irongeek.com/i.php?page=security/windows-7-copy-default-profile

Ograniczenia dostosowania profilu
http://blogs.technet.com/b/askcore/archive/2010/03/16/how-to-customize-the-windows-7-start-menu-and-taskbar-using-unattend-xml.aspx

Z tego co widzę to ważny jest plik Unattend.xml
http://blogs.technet.com/b/askcore/archive/2010/03/16/how-to-customize-the-windows-7-start-menu-and-taskbar-using-unattend-xml.aspx

Wyciąganie zawartości z instalatora
Instalator Inno Setup installer
http://constexpr.org/innoextract/

innoextract.exe -e plik.exe

Wyciąganie zawartości z msi
msiexec /a f:\zenworks\zfdagent.msi /qb TARGETDIR=c:\zfd701
nie zadziałało na zwykłym userze
7-zip podobno potrafi

7-zip

https://superuser.com/questions/131899/how-to-make-7-zip-faster

7z.exe a -tzip -mx=1 -mmt=off t:\backup.zip d:\folderToBackup\*

Linki

mklink <flag> link target
 <no flag> - file symbolic link
 /H        - file hard link
 /D        - directory symbolic link
 /J        - directory junction (hard link, essentially)
Więc w takim wypadku symboliczny link do katalogu może wglądać tak
mklink /D java8 d:\java\jdk\jdk8.91.x64
W przypadku takich linków widać z cmd na co wskazują
dir d:\java\jdk\ 
...
2016-04-24  18:51    <SYMLINKD>     jdk8 [jdk8.91.x64]

Listowanie szczegółów linka (szczególnie tych hard i junction) bieżącego katalogu
dir /AL /S

Rozszerzenia dla windows do tworzenia linków (Link Shell Extension) http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#contact

Dla starego windows XP
http://superuser.com/questions/484061/how-to-create-an-ntfs-junction
Junction https://technet.microsoft.com/en-us/sysinternals/bb896768

Windows rebuild ikons cache

Dość często zdarzało się że ikony plików linków ulegały uszkodzeniu w przypadku gdy programy są na dysku który nie jest widoczny na starcie systemu.
Jak  to naprawić.
Ikony znajdują się w pliku.
Cache ikon dla widnows 7 jest przechowywany w
C:\Users\<your username>\AppData\Local\IconCache.db

Ubić z managera zadań proces explorer
Potem ręcznie odpalić explorer

Kilowanie zadania

Oczywiście można skorzystać z process managera albo ręcznie
taskkill /f /im ccc.exe


SHA1 MD5 

https://support.microsoft.com/pl-pl/help/841290/availability-and-description-of-the-file-checksum-integrity-verifier-utility

Dostęp uprzywilejowany

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "%1""

Czy da się zamontować wirtualny dysk po ssh?
http://stackoverflow.com/questions/443732/how-do-i-mount-a-remote-linux-folder-in-windows-through-ssh

http://www.swish-sftp.org/

netdrive -> WebDrive -> webdrive64_16_00_4368_en.exe lub webdrive32_16_00_4368_en.exe

Powiększanie partycji NTFS

Podpisywanie sterowników

Może to być problem gdy instalowane jest duża ilość driverów jak np podczas instalacji virtualbox https://support.hidemyass.com/hc/en-us/articles/202723596-How-to-disable-Driver-Signing-check-on-Windows


Zmienne związane z procesorem

>set |findstr PROC
NUMBER_OF_PROCESSORS=2
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 15 Stepping 11, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0f0b

Co to jest ~dp0

http://stackoverflow.com/questions/5034076/what-does-dp0-mean-and-how-does-it-work
Faktycznie opis jest w komendzie for /? na którejś kolejnej stronie
%~dpI       - rozwija %I tylko do litery dysku i ścieżki
W pliku bat %~dp0 (that’s a zero) variable when referenced within a Windows batch file will expand to the drive letter and path of that batch file.
Dzieki temu pliki mogą być bardziej portable.

Interface sieciowe zarządzanie

netsh interface ip show interfaces
netsh interface set interface ifvbox0 disabled
netsh interface set interface ifvbox0 enabled

Linkowanie katalogów i plików
mklink
w katalogu C:\Windows\System32 linki i baty
edit.bat
@echo off
START /B CMD /C CALL cmd /c EmEditor.bat %1 %2 %3

EmEditor..bat
@echo off
C:\Tools\EmEditor-x64-15.1.7-portable\EmEditor.exe %1 %2 %3

ln.bat
@echo off
mklink %2 %1

pageant.bat
@echo off
START /B CMD /C CALL cmd /c "%DIR%\key.prv.ppk"

traceroute.bat
@echo off
tracert -d -w 1 %1


Nie da się linkować bezpośrednio do programów bo często potrzebują swojej ścieżki i umieszczenie ich w głównym katalogu daje im do zrozumienia że to jest ich katalog, a nie ma tam odpowiednich plików, dlatgo lepiej robić bat-y.

W takiej postaci z cmd da się używać np ssh root@ip i autryzować się kluczami po odpaleniu pageant.
Daje to prawie działającą atrapę konsoli.

Loop w bat
Star backgroud process 
start.bat
@echo off
for /f "tokens=2 delims==; " %%a in (' wmic process call create "notepad.exe" ^| find "ProcessId" ') do set PID=%%a
echo "%PID%"
pause


wmic
co to jest i do czego?
WMIC - Take Command-line Control over WMI
Windows Management Instrumentation Command-line (WMIC)
Windows Management Instrumentation (WMI)
https://msdn.microsoft.com/en-us/library/bb742610.aspx
since Microsoft Systems Management Server (SMS) 2.0
CIM Studio
WMI Query Language (WQL)
useraccount list brief
useraccount  -> Win32_Useraccount 
https://technet.microsoft.com/en-us/library/cc181062.aspx
http://download.cnet.com/WMI-Administrative-Tools/3000-2383_4-75452613.html
WMI Code Creator
WMITools.exe search in google
https://www.microsoft.com/en-us/download/confirmation.aspx?id=8572
Example query:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_UserAccount",,48)
For Each objItem in colItems
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "Win32_UserAccount instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "AccountType: " & objItem.AccountType
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "Disabled: " & objItem.Disabled
    Wscript.Echo "Domain: " & objItem.Domain
    Wscript.Echo "FullName: " & objItem.FullName
    Wscript.Echo "InstallDate: " & objItem.InstallDate
Next


Aliasy do wmic
https://www.1e.com/blogs/2009/09/23/wmic-aliaswmi-class-mapping/

process
ProcessId

printer list status

Iteracja pozycji z pliku
https://stackoverflow.com/questions/206114/batch-files-how-to-read-a-file

FOR /F %i IN (file.txt) DO @echo %i 
Parser for ini files
http://www.ericphelps.com/batch/samples/getini.txt

Switch - case
https://stackoverflow.com/questions/18423443/switch-statement-equivalent-in-windows-batch-file
IF "%1"=="red" echo "one selected" & goto exit
IF "%1"=="two" echo "two selected" & goto exit
...

echo "Options: [one | two | ...]
:exit

Jest też bardziej złożona wersja...
https://stackoverflow.com/questions/28103532/how-to-parse-command-line-arguments-with-switch-in-batch-file

funkcje w bat
http://steve-jansen.github.io/guides/windows-batch-scripting/part-7-functions.html < całkiem fajne opisy
Da się na podstawie call do labela i wykorzystania goto:eof
call:myDosFunc 100 YeePEE
call:myDosFunc 100 "for me"
call:myDosFunc 100,"for me"
call:myDosFunc 100,for me
echo.&pause&goto:eof
::--------------------------------------------------------
::-- Function section starts below here
::--------------------------------------------------------

:myDosFunc    - here starts my function identified by it`s label
echo. here the myDosFunc function is executing a group of commands
echo. it could do a lot of things
GOTO:EOF

Blok funkcji jest na końcu
Zamiast goto:eof można wykorzystać EXIT /B

:: do something cool, then log it
CALL :tee "%me%: Hello, world!"
:: force execution to quit at the end of the "main" logic
EXIT /B %ERRORLEVEL%
:: a function to write to a log file and write to stdout
:tee
ECHO %* >> "%log%"
ECHO %*
EXIT /B 0


Wyrażenia logiczne w bat
https://stackoverflow.com/questions/2143187/logical-operators-and-or-in-dos-batch
AND v1
if %age% geq 2 (
    if %age% leq 12 (
        set class=child
    )
)

AND v2
if %age% geq 2 if %age% leq 12 set class=child
OR v1
set res=F
if %hour% leq 6 set res=T
if %hour% geq 22 set res=T
if "%res%"=="T" (
    set state=asleep
)

Aby zrobić or raczej trzeba korzystać z zamiany na negację and
set warner=true
if not "%name%"=="Yakko" if not "%name%"=="Wakko" if not "%name%"=="Dot" set warner=false
if "%warner%"=="true" echo Warner brother or sister


IF potrafi dziwnie wyglądać
IF "!arg:~0,1!" equ "-"
Wyjaśnienie...

Dokumentacja dla bat
https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true


Odczyt argumentów wywołania
Pliki bat mają limit argumentów dostępnych bezpośrednio przez zmienne 1-9 (0 nazwa bat-a)
Kolejne parametry trzeba czytać przy pomocy SHIFT

doskey
Wykorzystanie do podmiany komendy cd tak aby pamiętała historię i dało się użyć mechanizmu jak na linux cd -
https://superuser.com/questions/129969/navigate-to-previous-directory-in-windows-command-prompt

pushd, popd

dism
Wielki rozmiar katalogu c:\Windows\winsxs 

DISM.exe /Online /English /Get-Features /Format:Table
SimpleTCP                                   | Enabled
WindowsGadgetPlatform                       | Enabled
IIS-WebServerRole                           | Enabled
IIS-WebServer                               | Enabled
IIS-CommonHttpFeatures                      | Enabled
IIS-HttpErrors                              | Enabled
IIS-StaticContent                           | Enabled
IIS-DefaultDocument                         | Enabled
IIS-DirectoryBrowsing                       | Enabled
MediaPlayback                               | Enabled
WindowsMediaPlayer                          | Enabled
MediaCenter                                 | Enabled
OpticalMediaDisc                            | Enabled
NetFx3                                      | Enabled
TabletPCOC                                  | Enabled
Printing-Foundation-Features                | Enabled
Printing-Foundation-InternetPrinting-Client | Enabled
FaxServicesClientPackage                    | Enabled
MSRDC-Infrastructure                        | Enabled
Printing-XPSServices-Features               | Enabled
Xps-Foundation-Xps-Viewer                   | Enabled
SearchEngine-Client-Package                 | Enabled
Internet-Explorer-Optional-amd64            | Enabled


DISM.exe /Online /Disable-Feature /featurename:WindowsGadgetPlatform/Remove

autoupdate
sc config "wuauserv" start= auto
 sc config "wuauserv" start= disabled

regedit
Zamiast przeszukiwać regedit - export rejestru i przeszukiwania edytorem tekstu

Dodanie curl
curl
U mnie zagadało https://skanthak.homepage.t-online.de/curl.html