Wednesday, September 28, 2016

3.2 - Powershell-də GET-WMIOBJECT əmri (AZ) (II hissə)

3.1 nömrəli postda GET-WMIObject haqqında məlumat vermişdim.
Bu dəfə artıq hər bir əmrə ətraflı olaraq nümunələri ilə birgə baxacağıq.

Kompyuter avadanlığı haqqında
- Soyutma sistemləri  (Kompyuterimizdə quraşdırılan Cooler (FAN) və ya digər soyuducular varsa ya kompyuterinizin olan avadanlıqların drayverləri buna icazə verirsə onlar barəsində məlumatlar üçün)


gwmi win32_fan    //Cooler (FAN) haqqında məlumatlar
gwmi win32_refrigerator //soyuducu haqqında məlumatlar
gwmi win32_heatpipe //CPU-dan gələn istiliyi CPU-ya ötürən boru
gwmi win32_temperatureprobe //temperatur datçikinin məlumatlarını göstərir

Yuxarıda sadalanan siyahıdakı əmrlər yalnız kompyutere o avadanlıqlar quraşdırılıbsa və drayverlər WMI servisin oradan məlumat götürməsinə icazə verdiyi halda mümkündür. 

- Daxiletmə qurğuları  (Kompyuterimizdə quraşdırılan klaviatura, mouse, fingerprint reader, cardreader və s. kimi qurğular haqqında məlumatlar üçün)

gwmi win32_keyboard  // Klaviaturanın tipi, yazı dili, və klaviatura İD-si haqqında

Burada vacib olan bölmələr:
DeviceID // avadanlığın DeviceList-dəki İD-sini göstərir
Layout     // Yazı dilini bildirir. AzeriLatin olduğu halda 0000042c
                                             Rus dili olduğu halda 00000419
                                             English US olduğu halda 00000409
                                             English UK olduğu halda 00000809
                                             Türkçe olduğu halda 0000041f
NumberofFunctionKeys  // Multimedia klaviatura olduğu halda bu düymələr mövcuddur. FN düyməsi                                              ilə aktivləşdirilən FunctionsKeys ən çox Laptop-larda rastlanır
PowerManagementSupply   // Bu funksiya yalnız kompyuteri birbaşa klaviaturadakı xüsusi düymə ilə                                                   söndürüləbilən klaviaturalarda mövcuddur. Hansı klaviaturada bu                                                           düymə varsa bu zaman kodumuzun qarşısında True olacaq. 

gwmi win32_PointingDevice    // Kompyuterə quraşdırılan mouse 



Burada vacib olan bölmələr:

DeviceID   // avadanlığın DeviceList-dəki İD-sini göstərir
DeviceInterface  // sistemdə olan digər avadanlıqlara əsasən unikal İD-si. Hər bir avadanlığın İD-si var.
HardwareType  // Avadanlıöın tipi
Manufacturer  // İstehsalçı şirkət
Name  // Çox vaxt avadanlığın tipi ilə eyni olur
PointingType  // Avadanlığın tipi (Hal-hazırda 2-dir)







                                                       Tiplərin növləri:
          1- Digər
          2 - Bilinməyən
          3 - Mouse
          4 - Trak Ball tipli mouse








      5 - Track Point



          
      6 - GlidePoint
           vəya    Картинки по запросу Glide Point
          7 - TouchPad
          

          8 - TouchScreen
          
          9 - Mouse Optical Sensor

          

- Yaddaş və Optik disk qurğuları  (HDD-lər, Flaş disklər, Optik oxuyucular haqqıda)

gwmi win32_cdromdrive  // CD, DVD və ya digər optik oxuyucu qurğular
         
            Caption: Disk oxuyucusunun Tam adı
            Drive: My Computer-dəki Labeli
            Manufacturer: İstehsalçı şirkətin adı

gwmi win32_diskdrive  // HDD vəya Flaşdisk haqqında

                                         
            Partitions: HDD-nin bölündüyü disk sayı
            DeviceİD: Qurğununu unikal İD-si.// hər bir digər HDD  vəya flaşkanın DeviceİD-si ardıcıl                                             rəqəmlərlə qeyd olunur. Məs: əgər əlavə olaraq flaşka taxılı olsaydı vəya external HDD bu                             zaman DeviceİD yerinə \\.\.Physicaldrive1 vəya ardıcıl rəqəm olardı.
            Model: Qurğunun modeli vəya tam adı
            Size: Ölçüsü
            Caption: Qurğununu modeli vəya tam adı

gwmi win32_PhysicalMedia  // HDD, Optik vəya Flaş qurğuların fiziki qoşuntuları barədə


Burada əsasən Serialnumber TAG-a fikir vermək lazımdır. SerialNUmber-də avadanlığın seriyası və TAG-da da avadanlığı hansı fiziki qurğu olduğuna dair məlumat var. Bu məlumatlarla skript yazaraq avadanlığın inventarizasiyasını aparmaq olar.


Tuesday, September 27, 2016

Windows 10-nun Windows 7/8/8.1-yə geri qaytarılması




Windows 10 əməliyyat sisteminin Windows 7/8/8.1 əməliyyat sisteminə geri qaytarılması.



Əgər Windows 7 və ya Windows 8 update olan zaman bilmədən Windows 10-a yenilənərsə bu zaman 1 aydan gec olmamaq şərtilə geri qaytarmaq olar.

Bunun üçün əvvəlcə əmin olmaq lazımdır ki, bizim əvvəlki əməliyyat sistemimizin faylları silinməyib. Buna görə də C diskin' daxil olub orada Windows.old qovluğunun orada olub-olmamasına əmin olun. Əgər varsa geri qaytara bilərik, yox əgər yoxdursa bu zaman yenidən yükləməlisiniz istədiyiniz əməliyyat sistemini. Əgər Windows.old qovluğu C diskində varsa başlayaq:

Windows 10-da Start-a basıb Settings bölməsinə gəlirik.






Buradan da Update & Recovery  vəya bəzilərində Update & Security bölməsini açırıq.

  


Bundan sonra Soldakı siyahıdan Recovery üzərinə tıklayaraq sağda Go Back to Windows 7 vəya Go Back to Windows 8 görəcəksiniz. Bunların da altında Get Started düyməsinə tıklayaraq qarşınıza çıxacaq seçimlərdən

sizə uyğun olanı və ya hər hansı birini seçib tamamlaya bilərsiniz.

Sunday, September 25, 2016

4. - Powershell - Get-childitem (gci) əmri (AZ)

PowerShell-də Get-childitem (gci) əmri

      Get-childitem əmrini bir qovluğun içindəki faylların vəya qovluğları bilmək üçün istifadə edirik.
Məsələn, deyək ki, hər hansı bir qovluğumuz var və onun içində nə fayl və nə qovluqlarının olduğunu bilmək istəyirik. Düzdür  bir-bir girib baxmaq olar, amma bu zəhlətökən iş olacaq. Bunun üçün powershell-i açaraq

get-childitem qovluğumuzun_adi

Burada qovluğumuzun adi yerinə qovluğun yerləşdiyi yeri və ardınca adını yazırıq.
      Yuxarıdakı şəkildə də göründüyü kimi mən C diskindəki test qovluğunun içində hansı faylların və ya qovluqların olduğu bilmək istədim və sadə əmri yazdım. Amma bu əmrə mənə sadəcə test qovluğununu içindəkiləri göstərdi. Bu qovluğun içindəki digər qovluqların içindəkiləri göstərmədi. Bu zaman köməyimizə -recurse vəya qısaltması olan -rec əmri çatır.

gci c:\test -rec


Yuxarıda göründüyü kimi mən yalnız qısaltmalardan istifadə etdim və kodun ardına -rec yəni -recurs əmrini əlavə etdikdən sonra sistem mənə test qovluğunun içindəki bütün fayl və qovluqları eləcə də orada yerləşən qovluqların içindəki faylları da göstərdi. 

Bundan əlavə biz istədiyimiz fayl tipini də bu üsulla tapa bilərik. Məsələn, istəyirik ki, qovluğun içində yerləşən yalnız *.jpg fayllarının görək. Bu zaman kodumuz:

gci c:\test *.jpg 

olacaq.



Göründüyü kimi yalnız uzantısı jpg olan bütün fayllar ekrana çıxdı. Və beləliklə biz bunu faylda saxlamaq istəyiriksə bu zaman əvvəlki dərslərdən də öyrənildiyi kimi əmrin tam bitimində > işarəsi qoymaq və saxlanılacaq yeri və faylın adı ilə tipini göstərmək lazımdır.

gci c:\test *.jpg -rec > "d:\jpg fayllar.txt"


Faylların Qısayollarının (Shortcut-larının) ikonu düz göstərməyəndə (AZ)

Faylların Qısayollarının (Shortcut-larının) ikonu düz göstərməyəndə

Əgər hər hansı bir səbəbdən kompyuterinizdə olan faylların qısayollarının ikonları düz göstərməzsə

bu zaman Start-->>RUN bölməsinə APPDATA yazaraq ENTER-ə basırıq

Açılan pəncərədə LOCAL qovluğuna daxil oluruq 

Local qovluğu açıldıqdan sonra orada olan Iconcache faylını tapıb silirik.
Sonra kompyuteri söndürüb-yandırırıq.

Windows-da TEMP profil yaranan zaman (AZ)

Windows-da TEMP profil.



          Bəzən bilmədiyimiz bir səbəbdən kompyuteri açarkən ekranda olan fayllarımızın heç birinin olmadığını görürük və kompyuterimizdə yazdığımız hər hansı bir sənəd və ya yaratdığımız hər hansı bir qovluğun da kompyuteri söndürdükdən sonra yoxa çıxdığının şahidi oluruq. Bunun səbəbi sizin Logon etdiyiniz istifadəçi profilinizin zədələnməsi səbəbindən baş verə bilər və buna görə də sizin adınızdan sistem TEMP profil yaradır. Bunu yalnız c:\users bölməsinə girərək siyahıda TEMP qovluğunu görərək əmin ola bilərsiniz. Əgər belədirsə bu zaman REGİSTR-də bunu düzəltmək mümkündür. 
  Bunun üçün START-a basaraq RUN yerinə REGEDİT yazıb ENTER`ə basırıq:


Bu zaman qarşımıza REGİSTR çıxır


Bundan sonra HKEY_LOCAL_MACHİNE -->Software-->
oradan da Microsoft ->>WindowsNT-->>CurrrentVersion-->>ProfileList bolmesine gelirik
və bir bir görünən uzun yazıların üzərinə basırıq, sağ pəncərədə istifadəçinin hesab adı görünür. Buradan da biz TEMP sözü yazılanı tapırıq
TEMP sözünü tapdıqdan sonra ona aid olan əsas qovluğu silirik və kompyuteri söndürüb-yandırırıq.


Saturday, September 24, 2016

3.1 - PowerShell GET-WMIObject (AZ) - I hissə

PowerShell-də Get-WmiObject (gwmi)


     Get-wmiobject çox funksiyalı əmrlərdən sayılır. Bunun vasitəsilə kompyuterdə olan hər bir avadanlıq haqqında ətraflı məlumat əldə etmək olar. Get-wmiobject WMI (Windows Management Instrumentation) servisinin köməyi ilə əməliyyat aparır. Əgər bu servis hər hansı bir səbəbdən işləməzsə bu zaman bu əmr də işləməz. Classlarla işlədiyi üçün mövcud WMI class-larıdan istifadə edir. Bunun vasitəsilə nəinki öz kompyuterimiz hətta başqa kopyuterə birbaşa öz kopmpyuterimizdən bu əmrlərdən istifadə edərək məlumat ala bilərik. Təbii ki, bunun üçün digər kompyuterə qoşulma zamanı ya bizim İstifadəçi hesabının digər kompyuterlərdə admin statusu olmalı ya da əmri yerinə yetirən zaman digər kompyuterdə admin statusu olan hər hansı bir istifadəçi hesabından qeyd etməliyik. 
     Qısaltması gwmi-dir.
Get-Wmiobject -də kompyuter haqqında məlumatları WIN32 class-ından istifadə etməklə əldə edirik. Bunun üçün get-wmiobject -class win32_əmrinadı ardıcıllığından istifadə edirik:
Məsələn BİOS haqqında məlumat əldə etmək üçün get-wmiobject -class Win32_BIOS yazmaqla məlumat əldə etmiş oluruq.
Get-wmiobject -class yerinə birbaşa get-wmiobject win32_əmrinadı yazmaqla əlavə olaraq -class yazmağa ehtiyac qalmır. Beləliklə nəticə olaraq BIOS haqqında məlumat əldə etmək üçün kodumuz belə olacaq: 

get-wmiobject win32_BIOS


     Kompyuterlərdə haqqında bilmək istədiyimiz nələr var bir göz ataq:

Əsas qruplar:
- Kompyuterin avadanlığı haqqında 
- Yüklənmiş proqramlar haqqında
- Əməliyyat sistemi haqqında
- Performans haqqında
- və s.

Köməkçi qruplar:
Kompyuter avadanlığı haqqında
     - Soyutma sistemləri
          * FAN (kompyuterdəki cooler (FAN) haqqında)
          * İstilik borusu
          * Soyuducu(Soyuducu qurğu haqqında)
          * Temperatur sensoru haqqında
     - Daxiletmə qurğuları
          * Klaviatura haqqında
          * Mouse və s haqqında
     - Yaddaş qurğuları
          * Avtomatik yoxlayıcı ayarları (Disklərin avtomatik yoxlanması əməliyyatı haqqında)
          * CD-DVD disk qurğusu haqqında
          * HDD haqqında (Sürəti, tutumu, istehsalçısı, keşi, fırlanma sürəti, tipi və s.)
          * Floppy disk haqqında
          * Digər yaddaş qurğuları haqqında
          * Lentli yaddaş qurğusu haqqında
      - Ana plata, Kontroller və Portlar haqqında
          * BİOS (İstehsalçı, Seriya, versiya haqqında)
          * RAM (Sürəti (Mhz-i), istehsalçısı, tutumu,  playtada yerləşdiyi slot və s haqqında)
          * CPU (Sürəti (Mhz-i), istehsalçı, tutumu, keşi və s. haqqında)
       - Şəbəkə qurğuların haqqında
          * Şəbəkə adapteriləri (İstehsalçı, növü, İP, MAC, digər konfigurasiyalar və s. haqqında)
       - Çap qurğuları haqqında
          * Printerlər, onların modelləri, tipləri, formatları, driverləri və s.haqqında)
       - Monitor haqqında
          * Monitor və videokart haqqında (İstehsalçı və digər məlumatlar)
       - Güc qaynağı haqqında
          * Batareya haqqında
          * Voltaj, amperaj, istilik və s. haqqında
  Yüklənmiş proqramlar haqqında
        - Proqram və proqram modulları haqqında
          * Proqram uzantıları (extension), proqramlar barədə digər məlumatlar, qısayollar və s. haqqında
  Əməliyyat sistemi haqqında
        - Reqistr
        - Start Menyusu
        - İstifadəçilər
        - Aktivasiya
        - Əməliyyat sistemi
        - Ekran
        - File sistemi, drayverlər və s. haqqında
Performans haqqında
        - Kompyuterdəki qurğular və proqramların performans hesablayıcıları haqqında

2 - PowerShell Save to file as text, csv, html, xml (AZ)

PowerShell-də məlumatların yaddaşda saxlanılması və ya eksportu.


     PowerShell-də bəzən bizə lazım olan məlumatı yaddaşda saxlamaq istəyirik. Bir çox halda bilməyənlər yazını seçərək Mark edir və tekst faylı açıb içinə kopyalayırlar bu isə  heç də tam işə yarayan deyil.
     Bəzən ele çox məlumat əldə olunur ki, əmrlər vasitəsilə bunu artıq Mark etməklə yaddaşda saxlamaq olmaz. Məlumatları yaddaşda saxlamaq üçün istifadə olunan formatlar bunlardır: TXTCSVHTMLXML 
      Məlumatların eksportu müxtəlif variantlarla mümkündür. Sıra ilə hər birinə baxacağıq.
     Bunların içində ən rahatı əmrlərin ən axırında > işarə qoyulması və faylı saxlayacağımız yeri və faylın adı ilə tipinin qeyd olunmasıdır.
Məsələn:
get-service əmrini yazıb servislərin siyahısını əldə etdik.
İndi bunu TXT formatında və Servisler.txt adı ilə D diskinə yazaq.
get-service >d:\servisler.txt  (Burada get-service əmrimiz, > işarəsi saxlamaq d:\servisler.txt isə faylın saxlandığı yer, adi və tipidir)



və fayl artıq D diskində mövcuddur.
Faylı açdıqdan sonra:

Faylı saxlamaq üçün bir digər əmr:

get-service | out-file d:\servisler.txt

Gördüyümüz kimi fayl özündə hər şeyi olduğu kimi əks etdirir. 
Faylın tipini artıq sonluğunda tipin formatını yazmaqla qeyd edirik. txt yerinə csv və ya html vəyaxud da xml yazsaq fayl da həmin formatda yadda saxlanılacaq.

Bir digər göstərmə üsulu da out-gridview əmridir. Bu əmr vasitəsilə ekrana gələn məlumatımızı vizual cəhətdən gözəl görünən cədvəl formasına salmış oluruq. Eyni zamanda bu gridview görünüşündə filtr və sıralama mövcuddur.



Əlavə olaraq export üçün out-file əmri var. Bunu artıq o bölməyə çatanda ətraflı məlumat verəcəyəm.

Friday, September 23, 2016

1 - Powershell Where filtri (AZ)

PowerShell WHERE filtri

      Powershell-ə işləyənlər yaxşı bilirlər ki, əsas və ən çox istifadə olunan filtrdir. Bu səbəbdən də WHERE filtrindən başlamaq istədim.
     Where filtri istənilən əmr və ya funksiya zamanı axtarışı daha asanlaşdırmaq üçün ən effektiv vasitələrdən biridir. 
        WHERE filtrini ayni zamanda ? işarəsi ilə də əvəz etmək olar. Tamamilə eyni şeydir.

Filtrin yazılma qaydası:   | where {}    

$_.   sütunun başlığını göstərmək üçündür.

Məsələn:

get-service komandasını yazdığımızda kompyuterdə olan servislərin siyahısı gələcək


where filtri ilə servislərin içində bizə lazım olan məlumatları axtarıb tapaq.
Məsələn: bizə lazımdər ki, status bölməsindən Running olanları listələyək. Bu zaman 
get-service | where {$_.status -eq "Running"} yazmaq lazımdır. 
Burada -eq  Equal yəni bərabər deməkdir. Yəni, Status bölməsindəki yazı Running-ə bərabərdir.
-eq yerinə -like komandasından da istifadə etmək olar. Bu zaman artıq -like "Run* yazacıq. Burada qoyular * işarəsi hər hansı bir məlumat deməkdir. Yəni, ilk üç hərfi run-dır və arxasında nə yazı olur-olsun fərq etməz.
get-service | where {$_.status -like "Run*"}

Indi isə iki və daha artıq filtrdən istifadə edək. 
Bu zaman artıq where { } daxilinə ( ) mötərizə əlavə edərək -and və yaxud da -or əmrlərindən istifadə edəcəyik. 
məsələn:
get-service | where { ( ) -and ( )} və yaxud get-service | where { ( ) -or ( )}
Mötərizələrin içinə isə yenidən əvvəlki qayda ilə axtarmaq istədiyimiz məlumatı və yerini qeyd edirik.
get-service | where {($_.status -eq "Running") -and ($_.name -like "win*")}
Bu o deməkdir ki, bizə sistem həm Status sütunundan yalnizca Running olanları, Name sütunundan isə Başlığı Win olan bütün servislərin siyahısını verəcək.

Bundan başqa daha da dərinlərə gedərək ikidən çox axtarış filtrindən istifadə etmək istəsək bu zaman ( ) mötərizələri yaddan çıxarmayaq və hər bir mötərizə arasında -and vəyaxud da -or komanlarının yerləşməsini nəzərə alaq. Əlavə olaraq bildirim ki, riyazi qaydalara əsasən mötərizələrin yerləşməsi və əsasların da yenidən mötərizə daxilinə düzgün alınması kodun nəticəsinini dəyişməsinə gətirib çıxaracaq.
Məsələn:
get-service | where { ( ) -and  ( ( )-or ( ) )    }
Burada fikir versəniz -or komandası yerləşdiyi mötərizələr özləri də mötərizə daxilinə alınıblar. Bu o deməkdir ki, birinci mötərizə axtarış etdikdən sonra özünə digər mötərizələrdən hər hansı birinin nəticəsini birləşdirəcək.
get-service | where { ($_.status -eq "Running" ) -and  ( ($_.name -like "win*")-or ($_.displayname -like "win*" ) ) }

Əlavə olaraq qeyd edim ki, birbaşa adı bilirsinizsə get-service əmrinin yanında həmin adın Name bölməsində olduğu kimi eynilə yazılması da where filtrsiz yalnız bu servisi göstərəcək.


___________________________________________________
Daha ətraflı videoda: