keskiviikko 24. elokuuta 2016

Komentokehote Gone Wild

Päädyin kirjaamaan joitakin komentokehotteessa käyttämiäni komentoja ja kikkoja ylös vaikka ne eivät suoranaisesti (dismiä ja diskparttia lukuunottamatta) suoranaisesti asentamiseen liitykään. Komentokehote on yhä käyttökelpoinen työkalu (myös asentamisessa) moneen tehtävään vaikka Microsoft painottaa yhä enemmän Powershellin käyttöä.

Komentokehotteen parannukset Windows 10:ä

Windows 10:ä sekä komentokehotetta ja Powershelliä  suoritetaan conhost.exe prosessin avulla. Conhost.exe:ä (ja sitä kautta komentokehotetta) on kehitetty Windows 10 useillakin tavoilla.

Windows 10 mukana tulleita parannuksia komentokehotteeseen

  1. Pikamuokkaus tila on oletusarvoisesti otettu käyttöön. Tämä mahdollistaa leikepöydän käyttämisen komentokehoteikkunassa.
  2. Tekstiä voidaan maalata komentokehoteikkunassa suoraan hiirellä ja kopioida leikepöydälle napsauttamalla komentokehoteikkunaa hiiren 2-painikeella.
  3. Useita erilaisia tekstin valintaan ja leikepöytään liittyviä näppäinyhdistelmiä on nyt käytettävissä. Tutut CTRL+C, CTRL+V toimivat ja lisäksi esim. CTRL+INS kopio tekstin leikepöydälle. Mielestäni hiiren 2-napin painike tekee asian vielä helpommin. CTRL+Vaihto+nuolinäppäimet mahdollistavat tekstin valitseminen,CTRL+A valitsee kaiken tekstin yms.
  4. Komentokehoteikkunan kokoa voidaan muuttaa suorana ikkunan kulmasta raahaamalla
  5. Tekstien muotoilu säilyy kun tekstiä liitetään leikepöydän kautta komentokehoteikkunaan
  6. Komentokehoteikkunan läpinäkyvyyttä voidaan säätää. Ideana on että läpinäkyvän komentokehoteikkunan kautta voidaan helposti “luntata” esim. internetistä etsittyä pitkää “komentorimpsua” Läpinäkyvyyttä voidaan säätää esim. CTRL+Vaihto+/- näppäimillä

Asetuksia voidaan säätää kattavasti komentokehotteen ominaisuudet ikkunasta.

komentokehote1

Komentokehote vs. Powershell

Menemättä sen syvemmälle komentokehotteen ja Powershellin eroavaisuuksiin totean että Powershell ikkunasta voidaan siirtyä komentokehotteeseen ja päinvastoin. Lisäksi Powershell ikkunasta käsin voidaan sujuvasti antaa komentokehotteen komentoja (kiitos conhost.exe) mutta ei päinvastoin.

Powershell ikkunassa annettu komento cmd vaihtaa komentokehotteeseen ja takaisin voidaan vaihtaa powershell tai exit komennolla. Kuten sanottu em. siirtyily on turhaa sillä Powershell ikkuna ymmärtää myös komentokehotteen komentoja.

Vaikka Powershell on loistava työkalu ja skriptausympäristö, jotkin asiat on vain helpompi hoitaa komentokehotteen komennolla kuin Powershellin mahdollisesti pitkällä commandletillä. Hyvä esimerkki on ipconfig /all komento. Komento voidaan siis antaa suoraan Powershell ikkunasta. Tilanne on tietysti toinen jos komennon antaman tulosteen perusteella halutaan tehdä jotakin automaattisesti. Tässä tapauksessa Poweshellin omat commandletit ovat oikea työkalu.

powershell powershell2

Komentokehotteen vinkkejä ja käyttökelpoisia työkaluja.

Komentokehotteen avaaminen

Komentokehote voidaan avata joko tavallisen käyttäjän käyttöoikeuksin tai ns. korotettuna eli järjestelmänvalvoja tilassa.

Tavallisin käyttäjän käyttöoikeuksin komentokehote voidaan avata mm. seuraavilla tavoilla.

  1. Käynnistä-valikosta
  2. Suoritacmd.exe – Enter
  3. Resurssienhallintaohjelmassa – Tiedosto välilehti – Avaa komentokehote
  4. Resurssienhallintaohjelmassa, napsauttamalla kansiota hiiren 2-painikkeella Vaihto näppäin pohjassa ja valitsemalla pikavalikosta Avaa komentoikkuna tähän. Komentokehoteikkuna avataan edellä mainittuun kansioon.
  5. Resurssienhallintaohjelmassa  käsin siirtymällä ensin kansioon jonka jälkeen kirjoitetaan Resurssienhallintaohjelman osoiteriville cmd.exe. Komentokehoteikkuna avataan edellä mainittuun kansioon.

Tässä yhteydessä on mainittava että myös komentokehoteikkunassa käsin voidaan avata Resurssienhallintaikkuna haluttuun kansioon.

Komento explorer . avaa Resurssienhallintaikkunan ja siirtyy samaan kansioon joka komentokehoteikkunassa on työkansiona. Samoin komento explorer C:\windows avaa Resurssienhallinnan ja siirtyy C:\Windows kansioon.

Korotetuin oikeuksin komentokehote voidaan avata

  1. Suorita – cmd (CTRL+Vaihto Pohjassa)+Enter
  2. Windows Lippu + X – komentokehote (järjestelmänvalvoja)
  3. Resurssienhallintaohjelmassa – Tiedosto välilehti – Avaa komentokehote järjestelmänvalvojana. (huom. tämä valinta ei ole käytettävissä jos Resurssienhallinta ohjelmassa ei ensin ole siirrytty johonkin kansioon)

Käyttökelpoisia komentoja ja vinkkejä

Kaikista komentokehotteen komennoista voidaan avata enemmän tai vähemmän käyttökelpoinen kuvaus komennonkäytöstä. Kuvaus avataan kirjoittamalla halutun komennon (siis josta halutaan apuja) perään /?

Jo annettujen komentojen tarkastaminen ja uudelleen antamainen

Jo kertaalleen annetut komennot voi tarkastaa joko

Komennolla doskey /history

Näppäinkomennolla Ctrl + F7 jolloin komennot näytetään valikossa josta komento voidaan antaa uudelleen

“Rullaamalla” komentoja nuoli ylös – nuoli alas näppäimillä näppäimistöltä

color

Komennon avulla voidaan muuttaa komentokehoteikkunan tausta väriä ja fontin väriä. /? avulla voi tarkastaa mahdolliset väriyhdistelmät. Väri vaihdetaan kyseisen session ajaksi. Jos väri halutaan vaihtaa pysyvästi, tulee käyttää  ominaisuudet Värit välilehteä.

color A (muuttaa fontin värin vihreäksi)

color  (vaihtaa takaisin oletusväreihin eli valkoinen fontti ja musta tausta)

doskey

Aiemmin annetut komennot voidaan doskeyn lisäki nähdä myös näppäinyhdistelmällä Vaihto F7. Toisin kuin linuxissa, komentohistoria koskee ainoastaan nykyistä komentoikkuna sessiota.

doskey (näyttää komentokehotteessa aiemmin annetut komennot)

set

Set komento mahdollistaa järjestelmämuuttujien tarkastamisen ja asettamisen

Set (näyttää kaikki järjestelmämuuttujat)

dir /al

Näyttää ns. pehmeät symboliset linkit (junctionpoint) joita käytetään uusimmissa Windowseissa esimerkiksi yhteensopivuus syistä.

getmac

Getmac komennon avulla voidaan tarkastaa työaseman verkkokortin mac- eli rautaosoite. Komennon avulla voidaan tarkastaa mac-osoite myös etäkoneesta (/s parametri)

hostname

Hostname komennon avulla voidaan tarkastaa työaseman netbios nimi.

dism

Dism on erittäin käyttökelpoinen ja monipuoleinen komento jonka avulla on mahdollista käsitellä niin käytössä olevaa (online) kuin levykuvaksi tallennettua Windowsia (offline). Dism komentoon kannattaa tutustua tarkemmin.

Dism edellyttää että se ajetaan järjestelmänvalvojan komentokehoteikkunassa

dism

Tässä malliksi jotain mitä dismillä voi tehdä.

dism /online /get-currentedtion (kertoo käytössä olevan Windowsin version)

dism /online /get-targeteditions (kertoo mihin Windows versioon nykyinen versio on päivitettävissä.

dism /online /Get-Features (kertoo mitä Windowsin osia on asennettuna ja mitä ei)

dism /online /Enable-Feature /FeatureName:TelnetClient /All (asentaa halutun Windows komponentin joka tässä esimerkissä on TelnetClient)

dism /get-wiminfo /wimfile:"I:\sources\install.wim" (näyttää install.wim levykuvan tiedot)

jne…kannatta ehdottomasti tarkastaa dism ohjelman ohjeet.

shutdown

shutdown /s /f /t 0 (suorittaa paikallisen työaseman pakotetun sammuttamisen)

shutdown /r /t 5 (suorittaa paikallisen työseman uudelleen käynnistyksen 5 sekunnin kuluessa)

ipconfig

ipconfig /all (tulostaa näytölle työaseman kaikki verkkoasetukset)

wmic

Wmic komento suorittaa kyselyjä wmi rajapintaa käyttäen. Komento mahdollistaa kattavat tietokyselyt työasemaan. Wmic komennon käyttäminen vaatii komennon ohjeisiin tutustumista (wmi /?)

wmic csproduct get name (kertoo työaseman mallin)

wmic csproduct get vendor (kertoo työaseman valmistajan)

wmic csproduct get uuid (kertoo järjestelmän UUID tunnuksen)

wmic diskdrive get name,size,model (kiintolevytietojen selvittäminen)

wusa

Mahdollistaa Windows päivityksen (.msu) asentamisen tai poistamisen järjestelmästä.

wusa.exe Windows6.1-KB123456-x86.msu /quiet /norestart (asentaa päivityksen KB123456 järjestelmään taustalla ilman uudelleen käynnistystä)

wusa /uninstall /kb:2952664 (poistaa päivityksen kb2952664 järjestelmästä)

driverquery

Komento näyttää Driverstoreen eli ajurivarastoon tallennetut laittesto-ohjaintieodostot. Drivestoreen tallennetut ajurit voidaan ottaa PnP:n toimesta käyttöön myös ilman korotettuja oikeuksia työasemaan (tavallinen käyttäjä)

driverquery /fo table (allekirjoittamattomat taulukkomuodossa)
driverquery /si /fo table (näytä allekirjoitetut taulukkomuodossa)

pnputil

Pnputil komento mahdollistaa laitteistoajurien listaaminen ja  lisäämisen ns. driverstoreen. Driverstore joka käytännössä on C:\Windows\System32\Driverstore\Filerepository kansio, sisältää kaikki ne laitteistoajurit jotka PnP järjestelmä voi ottaa käyttöön automaattisesti ilman korotettuja oikeuksia (lue myös tavallisen käyttäjän toimesta)

pnputil /enum-drivers (näyttää kaikki 3-osapuolen ajurit)

pnputil /add-driver ajuri.inf  (lisää ajurin driver storeen. Huom vaihtunut Anniversary versiossa,, entinen parametri –a)

pnputil /add-driver C:\oem\*.inf  (lisää kaikki ajurit C:\oem työkansiosta driverstoreen)

pnputil /delete-driver ajuri.infi (poistaa .inf tiedoston määrittämän ajurin käytöstä. Huom vaihtunut Anniversary versiossa, entinen parametri –d )

assoc ja ftype

Tiedostokytkennän tarkastaminen. Esimerkkinä .pdf tyyppinen tiedosto

assoc .pdf (näyttää mihin .pdf päätteisen tiedoston tiedostotyypin)

ftype .pdf=FoxitReader.Document (näyttää missä sovelluksessa .pdf tyyppiset tiedostot on määritetty avautumaan)

schtasks

schtasks (näyttää työaseman suorittamat ajastetut tehtävät)

net start ja Net stop

Komennoilla voidaan sammuttaa (net stop) ja käynnistää (net start) jokin järjestelmän palveluista. Voidaan käyttää esim. jumiutuneen Taustatulostus palvelun uudelleen käynnistämiseen.

net start (näyttää käynnistetyt järjestelmäpalvelut)

net start Taustatulostus (käynnistää Taustatulostus palvelun)

net stop Taustatulostus (sammuttaa Taustatulostus palvelun)

net stop Taustatulostus & net start Taustatulostus (sammuttaa ja tämän jälkeen käynnistää Taustatulostus palvelun)

net share

net share (näyttää järjestelmän kaikki jaetut kansiot/resurssit, myös piilotetut)

net view

net view komennon avulla voidaan tarkastaa määritetyssä kohteessa olevat jaetut resurssit/kansiot

net view \\localhost (näyttää paikallisen järjestelmän jaetut resurssit/kansio, ei piilotettuja)

net view \\etäkone (näyttää etäjärjestelmän jaetut resurssit/kansio, ei piilotettuja)

netstat

Näyttää järjestelmän aktiivset IPv4 ja IPv6 TCP verkkoyhteydet ja tilastot.

netstat (näyttää aktiiviset TCP verkkoyhteydet)

netstat –ano (näyttää aktiiviset verkkoyhteydet, paikalliset ja etäportit sekä yhdeyden omistavan prosessin pid:n)

ping

Voidaan käyttää etäkohteen saavutettavuuden tarkastamiseen (ICMP echo request paketti). Esimerkiksi verkko-ongelmien selvittämisessä pingiä voidaan käyttää rajamaan ongelmaa (pingataan ensin ulkoverkkoon esim. www.google.com, tämän jälkeen dns-nimipalvelinta sitten yhdyskäytävää ja lopuksi paikallista verkkokorttia/stäkkiä. Näin toimien voidaan mahdollisesti rajata ongema)

ping –t localhost (muodostetaan yhteys paikalliseen järjestelmään ja “pingataan” kunnes se lopetetaan CTRL+C näppäinyhdistelmällä)

ping – n 5 www.domain.fi (muodostetaan yhteys osoitteeseen www.domain.fi ja “pingataan” sitä 5 kertaa)

nslookup

Komennon avulla voidaan suorittaa kyselyjä nimipalvelimelle esim. nimipalvelun testaamiseksi.

nslookup www.google.com (suorittaa kyselyn nimipalvelimelle www.google.com domain osoitteesta)

netsh

Netsh komento mahdollistaa verkkoasetusten monipuolisen määrittämisen komentokehotteesta. Ohjelmaa voidaan käyttää  myös verkko-ongelmien korjaamiseen reset valitsimen avulla.

netsh -c interface dump > c:\temp\verkkoasetukset.txt (tallentaa verkkoasetukset verkkoasetukset.txt nimiseen tiedostoon)

netsh -f c:\temp\verkkoasetukset.txt (palauttaa verkkoasetukset tiedostosta)

netsh int ip reset (nollaa ipv4 verkkoasetukset)

netsh int ipv6 reset (nollaa ipv6 verkkoasetukset)

netsh winsock reset (nollaa Winsock asetukset)

diskpart

Diskpart on komentokehote tason levynhallintaohjelmisto joka mahdollistaa käytännössä kaikki samat levynhallinta toiminnot kuin graafinen levynhallintaohjelma. Diskpart on hyvin monipuolinen ohjelma johon kannattaa ilman muuta tutustua.

diskpart (siirtyy diskpart ohjelmaan)

list disk (listaa käytettävissä olevat levyt kun on ensin siirrytty diskpart komennolla varsinaiseen diskpart ohjelmaan)

sel disk 0 (valitsee kiintolevyn 0 niin että komennot kohdistuvat siihen)

list par (näyttää valitulla kiintolevyllä olevat osiot)

wbadmin

Varmuuskopioiminen komentokehotteesta.

wbAdmin start backup -backupTarget:E -include:C: -allCritical –quiet (suorittaa järjestelmän täydellisen varmuuskopioinnin E-asemalle)

Komentojen ketjuttaminen, putkittaminen ja ehdollistaminen komentokehotteessa

Komentojen ketjuttaminen & ja && merkeillä

Komentokehotteessa annettavia komentoja voidaan ketjuttaa & merkin avulla. Esim. komento dir C:\windows & dir D:\temp suorittaa molemmat hakemistolistauskomennot. Jos jälkimmäinen komento halutaan ehdolliseksi siten että sen toteutus riippuu ensimmäisen komennon toteutumisesta käytetään kahta & merkkiä. Komento dir “C:\System Volume Information” && echo Onnistuuko?  Suorittaa echo komennon ainoastaan tilanteessa jossa System Volume Information kansion hakemistolistaus onnistuu. Normaalisti se ei onnistu joten echo komento jää suorittamatta.

esim. systeminfo /s \\localhost | find "KB3176495" && wusa /uninstall /kb:KB3176495 /quiet (etsii onko järjestelmään asennettu päivitystä KB3176495. Jos on päivitys poistetaan)

Komentojen putkittaminen | merkillä

| merkki “putkittaa” ensimmäisen komennon tulosteen seuraavalle komennolle jatkokäsittelyä varten.

Komento systeminfo|find “Logon Server” etsii järjestelmätiedoista palvelimen joka on vastaanottanut työaseman kirjautumisen. Kaksi peräkkäistä | merkkiä ehdollistaa jälkimmäisen komennon suorittamisen siten että komennon suorittaminen riippuu ensimmäisen komennon onnistumisesta.

Komennon tulosteen ohjaaminen leikepöydälle tai tiedostoon

| merkki ohjaa komennon tulosteen toiseen komentoon. > merkki kirjoittaa komennon tulosteen tiedostoon. >> merkki lisää komennon tulosteen tiedoston loppuun (ei korvaa)

ipconfig | clip (kopioi työaseman kaikki verkkoasetukset leikepöydälle)

echo off | clip (tyhjentää leikepöydän)

ipconfig /all > C:\palvelin\jaettukansio\verkkoasetukset.txt (luo tekstiedoston verkkoasetukset.txt ja tallentaa siihen työaseman täydelliset verkkoasetukset)

echo %logonserver% >> C:\palvelin\jaettukansio\verkkoasetukset.txt (lisää %logonserver% muuttujan sisällön tekstitiedoston loppuun.

> merkki ei oletusarvoisesti kirjaa tiedostoon komennon mahdollisesti antamia virheilmoituksia. Tämän voi pakottaa kirjoittamalla komennon loppuun 2>&1

dir "C:\System Volume Information" > C:\temp\hakemistolistaus.txt 2>&1 = kirjaa tiedostoon myös komennon mahdollisesti antamat virheet.

Ei kommentteja:

Lähetä kommentti