როგორ გავხსნათ PowerShell, ყველა მეთოდი. Windows PowerShell: რა არის ეს?

Windows 10 ოპერაციული სისტემის გამოცდილ მომხმარებლებს შესაძლოა სმენოდათ PowerShell ბრძანების ხაზის პროგრამის შესახებ. Windows 7-თან და 8.1-თან მუშაობის გამოცდილების მქონე პირებმა შეიძლება ასევე იცნობდნენ მას. Windows-ის ბრძანების ხაზის აპლიკაციისა და .bat ფაილების წლების გამოყენების შემდეგ, დროა გაეცნოთ უფრო მძლავრ ინსტრუმენტს.

PowerShell არის Windows-ის ინსტრუმენტების სიის ღირებული დამატება და მისი ფარგლები შეიძლება შეშინდეს ზოგიერთი მომხმარებლისთვის. რა არის ეს - სკრიპტირების ენა თუ ბრძანების ჭურვი? არ ინერვიულოთ: მიუხედავად ფართო შესაძლებლობებისა, ყველას შეუძლია დაეუფლოს PowerShell-ს.

ნაბიჯი 1: ინსტალაცია

პირველ რიგში, ჩვენ გვჭირდება თავად PowerShell პროგრამა. თუ თქვენ გაშვებული გაქვთ Windows 10, თქვენ უკვე გაქვთ დაინსტალირებული ვერსია 5, Windows 10 Anniversary Update იყენებს 5.1 ვერსიას, მაგრამ განსხვავება შესამჩნევი არ არის. Windows 8 და 8.1 იყენებს PowerShell 4, რაც ასევე საკმაოდ საკმარისია. Windows 7-ზე PowerShell-ის დაყენება არ გამოიწვევს პრობლემებს, მაგრამ მაინც მოგიწევთ რამდენიმე დამატებითი ნაბიჯის გადადგმა. კერძოდ, საჭიროა დამატებით დააინსტალიროთ .Net Framework. შეგიძლიათ დააინსტალიროთ Windows Management Framework, რომელიც მოიცავს PowerShell-ს.

PowerShell-ს აქვს ორი ინტერფეისი. მოწინავე მომხმარებლებს შეუძლიათ აირჩიონ სრული GUI ინტერფეისი, რომელიც ცნობილია როგორც ინტეგრირებული სკრიპტირების გარემო (ISE). დამწყებთათვის უმჯობესია გამოიყენოთ PowerShell კონსოლი, მარტივი ტექსტური Windows ბრძანების ხაზის ინტერფეისი ან თუნდაც DOS 3.2.

Windows 10-ში PowerShell-ის ადმინისტრატორად გასაშვებად, დააწკაპუნეთ ღილაკზე დაწყებაზე და გადადით ქვემოთ Windows PowerShell-ზე. Windows 8.1-ზე მოძებნეთ Windows PowerShell სისტემის საქაღალდეში Windows-ში. Windows 7-ში ჭურვი მდებარეობს აქსესუარების საქაღალდეში. როგორც ჩვეულებრივი მომხმარებელი, PowerShell შეიძლება გაშვებული იყოს იმავე გზით, მარჯვენა ღილაკის ნაცვლად მაუსის მარცხენა ღილაკის გამოყენებით.

თქვენ შეგიძლიათ გამოიყენოთ ძებნა Windows-ის ნებისმიერ ვერსიაზე. სამომავლო გამოყენების გასაადვილებლად, შეგიძლიათ დაამაგროთ PowerShell დავალების პანელზე.

ნაბიჯი 2: ძველი Windows ბრძანებები

Windows ბრძანების სინტაქსი PowerShell-ში მუშაობს ჩვეულებრივად. Მაგალითად, CDცვლის საქაღალდეებს, რეჟაჩვენებს ყველა ფაილის და საქაღალდის სიას მიმდინარე საქაღალდეში.

იმის მიხედვით, თუ როგორ გაუშვით PowerShell-ის კონსოლი, შეგიძლიათ დაიწყოთ c:\Windows\system32ან გ :\მომხმარებლები\ . სკრინშოტის მაგალითი იყენებს ბრძანებას cd..(სივრცით) ასვლა ერთ დონეზე მაღლა, შემდეგ გაუშვით ბრძანება რეჟფაილების და საქაღალდეების სიის ჩვენება დირექტორიაში C:\.

ნაბიჯი 3: დააინსტალირეთ დახმარების ფაილები

გუნდებს მოსწონთ CDდა რეჟარ არის აქტიური PowerShell ბრძანებები. ეს არის ეგრეთ წოდებული მეტსახელები - ჩანაცვლება რეალური PowerShell ბრძანებებისთვის. მეტსახელები სასარგებლოა მათთვის, ვისაც აქვს ბრძანების ხაზის დიდი გამოცდილება. თუმცა, ისინი არ ეხებიან PowerShell-ის სიღრმეებს.

PowerShell-ის დასაწყებად, აკრიფეთ დახმარებადა თქვენთვის საჭირო ბრძანება. სკრინშოტი აჩვენებს ბრძანებას .

გუნდი დახმარებაამბობს რომ რეჟარის PowerShell ბრძანების მეტსახელი Get-ChildItem. თუ აკრიფეთ მიიღეთ-ბავშვიPS C:\>, დაინახავთ იგივეს, რაც ბრძანების გამოყენებისას რეჟ.

როგორც სკრინშოტის ბოლოშია აღნიშნული, PowerShell-ის დახმარების ფაილები ავტომატურად არ არის დაინსტალირებული. მათ მისაღებად გაუშვით PowerShell როგორც ადმინისტრატორი და ჩაწერეთ განახლება-დახმარება. დახმარების ფაილების ინსტალაციას რამდენიმე წუთი დასჭირდება. როდესაც ყველაფერი მზად არის, სრული დახმარების სისტემა ყოველთვის მოგცემთ საჭირო რჩევებს.

ახლა ჩაწერეთ ბრძანება დახმარების მიღებადა ნებისმიერი ბრძანება, რომელიც გაინტერესებთ ("cmdlet" PowerShell-ში, cmdlets რუსულად), ნაჩვენები იქნება მისი აღწერა. Მაგალითად, get-help get-childitemაჩვენებს ვარიანტების ჩამონათვალს მიიღეთ-ბავშვი. თქვენ ასევე შეგიძლიათ აჩვენოთ სხვადასხვა შესაძლო ვარიანტები. Მაგალითად

get-help get-childitem -მაგალითები

იძლევა გამოყენების შვიდ დეტალურ მაგალითს მიიღეთ-ბავშვი. გუნდი

get-help get-childitem -დეტალური

მოიცავს ამ შვიდ მაგალითს და თითოეული პარამეტრის დეტალურ განმარტებას cmdlet-ში მიიღეთ-ბავშვი.

ნაბიჯი 4: მიიღეთ დახმარება პარამეტრების შესახებ

ეკრანის სურათში თქვენ შეიძლება შენიშნეთ ორი სია ქვეშ ᲡᲘᲜᲢᲐᲥᲡᲘამისთვის მიიღეთ-ბავშვი. ორი განსხვავებული სინტაქსის არსებობა ნიშნავს, რომ არსებობს cmdlet-ის გაშვების ორი გზა. როგორ შევინარჩუნოთ სინტაქსი ერთმანეთისგან განცალკევებით და რას ნიშნავს პარამეტრები? პასუხი მარტივია, თუ იცით ხრიკი.

cmdlet პარამეტრების შესახებ დეტალებისთვის მიიღეთ-ბავშვიან სხვა გამოყენების პარამეტრი - სავსე:

get-help get-childitem -სრული

ეს გაძლევთ სიას, თუ რისი გაკეთება შეგიძლიათ cmdlet-ით და რა მოხდება. შეხედეთ ეკრანის სურათს.

პარამეტრების აღწერილობის გადახედვით, ამას შეამჩნევთ მიიღეთ-ბავშვიშესაძლებელს ხდის ობიექტის მიღებას ბავშვი(როგორიცაა ქვესაქაღალდის სახელი ან ფაილის სახელი) მითითებულ ადგილას, გარკვეული სიმბოლოების შესატყვისობით ან მის გარეშე. Მაგალითად:

get-childItem “*.txt” -რეკურსი

აბრუნებს "*.txt" ფაილების სიას მიმდინარე საქაღალდეში და ყველა ქვესაქაღალდეში (პარამეტრის გამო - განმეორება). Ხოლო

get-childitem “HKLM:\Software”

აბრუნებს ყველა ზედა დონის რეესტრის გასაღებების სიას HKEY_LOCAL_MACHINE\პროგრამული უზრუნველყოფა.

თუ ოდესმე გიცდიათ რეესტრში შესვლა Windows ბრძანების ხაზის ან .bat ფაილების გამოყენებით, თქვენ დააფასებთ ამ წვდომის პარამეტრის ფუნქციონირებას.

ნაბიჯი 5: სახელების სწავლა

არსებობს მიზეზი, თუ რატომ გამოიყურება აქამდე ნაჩვენები cmdlets მსგავსი: get-childitem, განახლება-დახმარება, მიღება-დახმარებაგამოიყენეთ ერთი ზმნა-არსებითი ნიმუში. ყველა PowerShell cmdlet იყენებს ამ კონვენციას, ისინი იყენებენ ზმნას ერთი არსებითი სახელის წინ. ეს მოეწონება მათ, ვინც ოდესღაც განიცდიდა VB და VBA ენების არათანმიმდევრული ბრძანებების სახელებს.

შეხედეთ ყველაზე გავრცელებულ cmdlet-ებს:

კომპლექტი-ადგილმდებარეობა: აყენებს მიმდინარე სამუშაო მდებარეობას კონკრეტულ ადგილას

მიღება-შინაარსი: იღებს ფაილის შინაარსს

მიიღეთ ნივთი: იღებს ფაილებს და საქაღალდეებს

ასლი-პუნქტი: აკოპირებს ობიექტს ერთი ადგილიდან მეორეზე

ნივთის ამოღება: შლის ფაილებს და საქაღალდეებს

: იღებს პროცესებს ადგილობრივ ან დისტანციურ კომპიუტერზე

მიღება-სერვისი: იღებს სერვისებს ადგილობრივ ან დისტანციურ კომპიუტერზე

გამოძახება-ვებ მოთხოვნა: ამოიღებს კონტენტს ინტერნეტის ვებ გვერდიდან

იმის სანახავად, თუ როგორ მუშაობს კონკრეტული cmdlet, გამოიყენეთ დახმარების მიღებაროგორც საქმეში

get-help copy-item -full

დახმარებაში მოცემული აღწერილობიდან გამომდინარე, შეგიძლიათ გაიგოთ, რა სჭირდება cmdlet-ს. მაგალითად, თუ გსურთ ყველა ფაილის და საქაღალდის კოპირება დოკუმენტებიგ: \ ტემპერატურა, გამოყენება

copy-item c:\users\ \documents\* c:\temp

ამ ბრძანების შეყვანით თქვენ ნახავთ PowerShell გარემოს რამდენიმე საინტერესო მახასიათებელს. მაგალითად, თუ აკრიფეთ კოპირება-იდა დააჭირეთ Tab ღილაკს, PowerShell შეივსება ასლი-პუნქტი. თუ არასწორად აკრიფეთ cmdlet და PowerShell ვერ ცნობს მას, მოცემულია სრული აღწერა იმისა, თუ რა მოხდა არასწორად.

სცადეთ ეს cmdlet:

invoke-webrequest askwoody.com

თქვენ მიიღებთ ვებ გვერდის სათაურების, სურათების, ბმულების და სხვა შინაარსის მოკლე სიას. გთხოვთ გაითვალისწინოთ დახმარების მიღებასიაში გამოძახება-ვებ მოთხოვნა, რომელიც „აბრუნებს ფორმების, ბმულების, სურათების და სხვა მნიშვნელოვანი HTML ელემენტების კოლექციას“ - ზუსტად ის, რაც უნდა იყოს ნაჩვენები ეკრანზე.

ზოგიერთი cmdlet დაგეხმარებათ მართოთ თავად PowerShell:

მიღება-ბრძანება: ყველა ხელმისაწვდომი cmdlet-ის სია

მიიღეთ-ზმნა: ყველა ხელმისაწვდომი ზმნის სია

წმინდა მასპინძელი: გაასუფთავეთ მასპინძელი პროგრამის ეკრანი

სხვადასხვა პარამეტრი საშუალებას გაძლევთ შეამციროთ ბრძანებები და შეამციროთ სასარგებლო ვარიანტების დიაპაზონი. მაგალითად, ყველა cmdlet-ის სიის სანახავად, რომელიც მუშაობს Windows სერვისებთან, აკრიფეთ

მიიღეთ-ბრძანება *-სერვისი

ნაჩვენები იქნება ყველა ზმნა, რომელიც ხელმისაწვდომია არსებითი სახელით სერვისი. აქ არის მათი სია:

მიიღეთ სერვისი

ახალი სერვისი

გადატვირთვა-სერვისი

რეზიუმე-სერვისი

კომპლექტი-სერვისი

დაწყება-სერვისი

Stop-სერვისი

შეჩერება-მომსახურება

თქვენ შეგიძლიათ დააკავშიროთ ეს cmdlet სხვებთან.

ნაბიჯი 6: მილების გამოყენება

თუ იცნობთ Windows ბრძანების ხაზს ან სერიული ფაილებს, მაშინ იცით გადამისამართების და მილების შესახებ. გადამისამართება (> სიმბოლო) და მილები (| სიმბოლო) იღებენ მოქმედების შედეგს და ანიჭებენ მას სხვა ადგილას. მაგალითად, შეგიძლიათ ბრძანების შედეგის გადამისამართება რეჟტექსტურ ფაილში ან გადასცეს ბრძანების შედეგი პინგიგუნდს იპოვესაინტერესო შედეგების გასაფილტრად, როგორიცაა

dir > temp.txt

ping askwoody.com | იპოვეთ „პაკეტები“ > temp2.txt

აქ მეორე გუნდში იპოვეეძებს სტრიქონს პაკეტებიგუნდის მიერ ამოღებული მისამართიდან askwoody.com პინგიდა აერთიანებს ყველა შესატყვის ხაზს მოწოდებულ ფაილში temp2.txt.

ამ ბრძანებებიდან პირველი კარგად მუშაობს PowerShell-ში. მეორე ბრძანების გასაშვებად დაგჭირდებათ მსგავსი რამ

ping askwoody.com | აირჩიეთ-სტრიქონი პაკეტები | ფაილის გარეთ temp2.txt

გადამისამართებისა და მილების გამოყენება მნიშვნელოვნად აფართოებს Windows ბრძანების სტრიქონის შესაძლებლობებს: იმის ნაცვლად, რომ უსასრულოდ გადახვიდეთ ეკრანზე ტექსტის სტრიქონის მოსაძებნად, შეგიძლიათ გაფილტროთ თქვენთვის საჭირო Windows ბრძანებები.

Powershell-ს აქვს მხარდაჭერა მილიდა ის არ შემოიფარგლება ტექსტით. PowerShell გაძლევთ საშუალებას გადასცეთ მთელი ობიექტი ერთი cmdlet-დან მეორეზე, სადაც ობიექტი არის მონაცემთა (ე.წ. თვისებები) და მოქმედებების (მეთოდების) ერთობლიობა, რომელსაც შეუძლია გამოიყენოს ეს მონაცემები.

სახიფათო ნაწილი ხდება ობიექტების გაფორმებისას. ერთი cmdlet-ის მიერ მოწოდებული ობიექტები უნდა ემთხვეოდეს მიმღები cmdlet-ის მიერ მიღებულ ობიექტების ტიპს. ტექსტი არის ძალიან მარტივი ობიექტის ტიპი, ასე რომ, თუ თქვენ მუშაობთ ტექსტთან, ობიექტების გასწორება მარტივი ამოცანაა. დარჩენილი ობიექტები არც ისე საბაზისოა.

როგორ გავიგოთ ეს? გამოიყენეთ cmdlet მიიღეთ-წევრი. თუ გსურთ იცოდეთ რა ტიპის ობიექტს ამუშავებს cmdlet, გაუშვით მიიღეთ-წევრი. მაგალითად, თუ თქვენ ცდილობთ გაიგოთ კომპიუტერზე მიმდინარე პროცესები და შეამცირეთ თქვენი პარამეტრები cmdlet-მდე აი, როგორ გავარკვიოთ cmdlet-ების შედეგი:

მიღება-პროცესი | მიიღეთ-წევრი

ამ cmdlet-ის გაშვება წარმოქმნის თვისებებისა და მეთოდების გრძელ სიას , მაგრამ სიის დასაწყისშივე შეგიძლიათ იხილოთ ობიექტის ტიპი, რომელიც ქმნის :

TypeName: System.Diagnostics.Process

ქვემოთ მოყვანილი ეკრანის სურათი ასევე აჩვენებს თვისებებს უფლებამოსილი მისაღებად-პროცესის სახელურები, სახელი, NPM, PM, SI, VMდა W.S..

თუ გსურთ შედეგით მანიპულირება ამ cmdlet-თან მუშაობისთვის (ნაცვლად მონიტორზე აქტიური პროცესების გრძელი სიის ჩვენების ნაცვლად), თქვენ უნდა იპოვოთ სხვა ბრძანება, რომელიც შეყვანის სახით იღებს. სისტემა.დიაგნოსტიკა.პროცესი. თქვენთვის საჭირო cmdlet-ის საპოვნელად, კვლავ გამოიყენეთ PowerShell:

get-command -Parametertype System.Diagnostics.Process

ეს cmdlet გთავაზობთ cmdlet-ების ჩამონათვალს, რომლებსაც შეუძლიათ დამუშავება სისტემა.დიაგნოსტიკა.პროცესი.

ზოგიერთი cmdlet ცნობილია თითქმის ნებისმიერი სახის მონაცემების მიღებით. მათ შორის მთავარია . ეს cmdlet გადის მილის მეშვეობით გაგზავნილ თითოეულ ობიექტს სათითაოდ და მიმართავს მასზე მითითებულ შერჩევის კრიტერიუმებს. არის სპეციალური მარკერი ე.წ $_ , რომელიც საშუალებას გაძლევთ გამოიყენოთ თითოეული ელემენტი მილში, სათითაოდ.

ვთქვათ, რომ გსურთ მიიღოთ კომპიუტერზე გაშვებული ყველა პროცესის სია სახელწოდებით "svchost", ანუ გსურთ დაემთხვათ თვისებას სახელიპროცესი svchost. გამოიყენეთ ბრძანება:

მიღება-პროცესი | where-object ($_.Name -eq „svchost“)

Cmdlet უყურებს ყველა ობიექტს სისტემა.დიაგნოსტიკა.პროცესი, ადარებს .სახელიეს ობიექტი "svchost"-ით; თუ არის მატჩები, ისინი ნაჩვენებია მონიტორზე. შეხედე ეკრანის სურათს.

ნაბიჯი 7: გაანალიზეთ სასარგებლო PowerShell ბრძანებები

ამ დროისთვის თქვენ უკვე იცით საკმარისი იმისათვის, რომ შეძლოთ კომპიუტერის დაზიანება, ამიტომ ფრთხილად იყავით. მოდით შევხედოთ, მაგალითად, ხშირად მოთხოვნილ PowerShell ბრძანებებს.

ეს ბრძანებები მუშაობს მხოლოდ Windows 10-ზე და მხოლოდ მაშინ, როცა PowerShell-ს აწარმოებთ ადმინისტრატორის სახით. ისინი შექმნილია წინასწარ დაინსტალირებული Windows 10 აპლიკაციების ხელახლა ინსტალაციისთვის და შეიძლება სასარგებლო იყოს მათთვის, ვინც ჯერ წაშალა ეს პროგრამები და შემდეგ გადაწყვიტა მათი დაბრუნება. ბრძანებები ასე გამოიყურება:

Get-AppXPackage | Foreach (Add-AppxPackage -DisableDevelopmentMode -რეგისტრაცია "$($_.InstallLocation)\AppXManifest.xml")

თუ ამ ბრძანებას აწარმოებთ, უგულებელყოფთ წითელ გაფრთხილებებს და როცა ბრძანება დასრულდება, გადატვირთეთ კომპიუტერი; Windows 10-ში ყველა წინასწარ დაინსტალირებული პროგრამა გამოჩნდება თავის ადგილზე.

აი, როგორ მუშაობს ეს ბრძანება. Get-AppXPackageამოწმებს ყველა აპლიკაციის პაკეტს მომხმარებლის პროფილში. მაშინაც კი, თუ აპლიკაციას წაშლით, ის რჩება მომხმარებლის პროფილის სიაში.

Cmdlet Get-AppXPackageაბრუნებს ობიექტს TypeName Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage, რომელიც მოიცავს აპლიკაციის პაკეტის სრულად კვალიფიციურ სახელს და შესაბამისი XML manifest ფაილის ადგილმდებარეობას. თუ თქვენ გაუშვით cmdlet get-appxpackage, ნახავთ აპლიკაციის პაკეტების გრძელ ჩამონათვალს. სკრინშოტი აჩვენებს Xbox აპის აღწერას.

Cmdlet Foreachმარყუჟები თითოეულ ობიექტს შიგნით AppXPackage cmdlet-ში გაგზავნით Add-AppxPackage. Მიხედვით დახმარების მიღებაამისთვის Add-AppxPackage, არის ორი გასაღების გადამრთველი:

  • გადართვა -დარეგისტრირდიგამოიყენება აპლიკაციის პაკეტების არსებული ინსტალაციების დასარეგისტრირებლად, შეგიძლიათ დააყენოთ პარამეტრები გამორთე განვითარების რეჟიმიდა რეგისტრაცია
  • გადართვა - გამორთეთ განვითარების რეჟიმიეუბნება Windows-ს ხელახლა დაარეგისტრიროს არსებული აპლიკაციის პაკეტი, რომელიც გამორთულია, არარეგისტრირებული ან დაზიანებულია.

ხაზი " $($_.InstallLocation)\AppXManifest.x ml" აღწერს სად მდებარეობს ფაილი manifest.xml. თუ გადახედავთ ფაილებს AppXManifest.xml, დაინახავთ აპლიკაციის ID-ების, შესრულებადი ფაილების და აპლიკაციასთან დაკავშირებული ვიზუალური ელემენტების დიდ რაოდენობას.

გადატვირთვის შემდეგ, ყველა დამატებული აპლიკაციის პაკეტი ჩამოიტვირთება და დაინსტალირდება Windows Store-დან.

ერთ წელზე მეტი გავიდა Windows 7-ისა და Server 2008-ის გამოშვებიდან.

პროგრამისტებმა, სისტემის ადმინისტრატორებმა და მოწინავე მომხმარებლებმა იპოვეს ლურჯი ფანჯრის მრავალი გამოყენება, ბრძანების ხაზის მსგავსი.

ახალბედა მომხმარებელთა უმეტესობამ არც კი იცის რა არის PowerShell (PS).

მაგრამ PowerShell-ის სკრიპტები საშუალებას გაძლევთ ავტომატიზირდეთ ოპერაციულ სისტემაში შესრულებული მოქმედებების და სკრიპტების თითქმის 100% ბრძანების ხაზისა და გრაფიკული ინტერფეისის მეშვეობით.

მოდით გავეცნოთ ამ პროგრამის ძირითად შესაძლებლობებს, მეტი ყურადღება მივაქციოთ სკრიპტების (firmware) შექმნისა და გაშვების ფუნქციას.

პროგრამისთვის არსებობს უამრავი სახელმძღვანელო და დოკუმენტაცია, მათ შორის რუსულ ენაზე. სტატიის მიზანი- მომხმარებელს მიაწოდოს კონცეპტუალური ცოდნა, განახლდება, მაგრამ ღირს თუ არა თარჯიმნის უფრო ახლოს გაცნობა და მასში სკრიპტების შესრულება, ყველა გადაწყვეტს თავისთვის.

რა არის Windows PowerShell?

PowerShell– .NET Framework-ზე დაფუძნებული თარჯიმანი, რომელიც აღჭურვილია საკუთარი სკრიპტირების ენით.

პირველი ნიშნავს, რომ ის მუშაობს ტექსტურ რეჟიმში: შეყავთ ბრძანება, გაუშვით და ეკრანზე ხედავთ მისი შესრულების შედეგს.

როგორც ეს იყო MS-DOS-ში და UNIX-ის ძველ ვერსიებში.

მეორე მნიშვნელოვნად ამარტივებს, აჩქარებს და ავტომატიზირებს სისტემების, აპლიკაციების, პროცესების და მასთან დაკავშირებული სერვისების ადმინისტრირებას და შენარჩუნებას ადმინისტრატორებისა და ჩვეულებრივი მომხმარებლების მიერ.

სხვა თარჯიმნებთან შედარებით, PS განსხვავებულია:

  • ინტეგრაციასთან – საშუალებას გაძლევთ შექმნათ ძლიერი სკრიპტები მათში პროგრამის კოდის შეყვანით;
  • ყველა დაბრუნებული მონაცემი არის ობიექტი და არა ტექსტი/სტრიქონი, რაც ნიშნავს, რომ ისინი გადაეცემა სხვა სკრიპტებს და მუშავდება ნებისმიერი გზით.

PowerShell ვერსია 2აქვს შემდეგი შესაძლებლობები, მოდით შევხედოთ ზოგიერთ მათგანს უფრო დეტალურად:

  • ბრძანებების cmdlets სახით წარმოდგენის უნარი– ისინი გაშვებულია თარჯიმნის შიგნით, წინააღმდეგ შემთხვევაში, ბრძანება შესრულებულია ცალკეულ პროცესში.
  • კონვეიერების გამოყენება- შექმნილია მონაცემების ერთი ბრძანებიდან მეორეზე გადასატანად მათი სტრუქტურისა და ტიპის შენარჩუნებისას.
  • ინტეგრირებული მრავალ ნაკადის მონაცემთა გადაცემაქსელში პრიორიტეტებისა და კავშირის განახლებით.
  • პოზიციური და დასახელებული პარამეტრების მხარდაჭერა.
  • ფონის მუშაობა- ბრძანებების ასინქრონული გამოძახება და სკრიპტების გაშვება დისტანციურ მანქანებზე.
  • შეზღუდული სესიების დაყენება დისტანციურ კლიენტებთანდა მათზე სკრიპტების გაშვება.
  • მოდულები– სკრიპტების ორგანიზების გზა, როდესაც ისინი გახდებიან თვითკმარი და შესრულებულია საკუთარ კონტეინერში მოდულის გარემოზე გავლენის გარეშე.
  • შეცდომების დამმუშავებლის ხელმისაწვდომობა.
  • გრაფიკული გარემო ენისთვის: სინტაქსი, გამართვა, ხაზგასმა, ბრძანების ავტომატური დასრულება უნიკოდისა და სანიშნეების მხარდაჭერით.
  • ხაზებზე წყვეტის წერტილების დამატება, ბრძანებები, ოპერაციები და ცვლადები სკრიპტის გამართვისთვის.
  • დაბლოკვა და ინტერხაზური კომენტარები.
  • ზოგიერთი cmdlet-ისთვის მეტსახელების შექმნის მხარდაჭერა, რომლებიც შესრულების დროს გარდაიქმნება ჩვეულებრივ ბრძანებებად.
  • შეზღუდული სესიების შექმნა,სადაც შეგიძლიათ შეასრულოთ ბრძანებების მკაცრად განსაზღვრული სია და მრავალი სხვა.

PowerShell-ის წყაროს კოდი ხელმისაწვდომია ყველასთვის: საზოგადოების ნებისმიერ წევრს შეუძლია თავისუფლად შექმნას საკუთარი გაფართოებები ბრძანების ხაზის თარჯიმნის ფუნქციონირების გაზრდის მიზნით.

თქვენ შეგიძლიათ დაიწყოთ ინტეგრირებული სკრიპტირების ენის ათვისება პროგრამირების უნარების გარეშე.

ნაკლებად სავარაუდოა, რომ თქვენ შეძლებთ რთული სცენარის შექმნას, მაგრამ თითქმის ყველა შეძლებს შეასრულოს პრიმიტიული მოქმედებების თანმიმდევრობა.

თუმცა, PowerShell-ის ძირითადი კონცეფციების ცოდნის გარეშე, ნაკლებად სავარაუდოა, რომ თქვენ შეძლებთ რაიმეს გაკეთებას ბრძანების თარჯიმნის ფანჯარაში. დავიწყოთ მათთან.

Cmdlets

Cmdlets– თავისებური PS ბრძანებები, რომელთა მიღმა იმალება სხვადასხვა ფუნქციები. ინტერპრეტატორში ჩაშენებული ბრძანებები ხორციელდება ზმნა-არსებითი პრინციპით, მაგალითად, Get-Process (პროცესების სიის მიღება). ეს გამოსავალი საშუალებას გაძლევთ გაიგოთ ბრძანების არსი მხოლოდ მისი სახელიდან (ინგლისურად).

ზოგიერთი cmdlet მხარს უჭერს მონაცემთა და ინფორმაციის მასივების მიღებას/გადაცემას მათი სტრუქტურისა და ტიპის შენარჩუნებისას. ეს მუშაობს კონვეიერის პრინციპით (ეს იქნება განხილული შემდეგ ნაწილში). მიუხედავად ამისა, cmdlet აწარმოებს და ამუშავებს ობიექტებს თანმიმდევრობით.

cmdlet-ების განსახორციელებლად, ნებისმიერი მხარდაჭერილი .NET API შეიძლება გამოყენებულ იქნას ნებისმიერ .NET ენაზე.

ამრიგად, მომხმარებელს ეძლევა წვდომა პროგრამის კონკრეტულ ფუნქციებზე.

Cmdlet-ებს შეუძლიათ მიიღონ წვდომა საჭირო ინფორმაციაზე პირდაპირ ან უნიკალური ბილიკების საშუალებით (დისკის ასოები და დირექტორიაში ბილიკები).

cmdlet-ების გამოყენებით შეგიძლიათ იმუშაოთ ფაილურ სისტემასთან და სერტიფიკატების შენახვის ობიექტებთან, დაინსტალირებულ აპლიკაციებთან და სერვისებთან.

კონვეიერი

არც თუ ისე პრიმიტიული სკრიპტების შექმნისას ან სკრიპტის შედეგად მიღებული მონაცემებით რაიმე ოპერაციების შესრულებისას, ზოგჯერ თქვენ ასევე გიწევთ გარკვეული მოქმედებების შესრულება.

ამისთვის არის კონვეიერი. როგორც UNIX-ში, ის აერთიანებს ბრძანებებს ერთი cmdlet-ის გამოსავლის გადაცემით მეორის შეყვანაში, უცვლელი, მისი ტიპის შენარჩუნებით.

ამ შემთხვევაში, არ არის საჭირო ინფორმაციის კონტეინერი ან სიმბოლო-სიმბოლო ანალიზი.

გადაცემული ინფორმაცია შეიძლება ასევე შეიცავდეს ფუნქციას.კომბინირებული ბრძანებების მუშაობის დასრულების შემდეგ, ტექსტის ფორმატში ინფორმაციის გადაყვანის ფუნქციას (მონაცემების სტრინგებად გადაქცევა) ეწოდება ტექსტის ფორმატირების გამოყენებით.

სკრიპტები

იმისდა მიუხედავად, რომ ჭურვი გაძლევთ მრავალი მოქმედების ავტომატიზირების საშუალებას, თქვენ უნდა შეიყვანოთ ბრძანებები ხელით, რაც არც თუ ისე მოსახერხებელია.

განსაკუთრებით მაშინ, როდესაც ერთი და იგივე ოპერაციები მუდმივად უნდა შესრულდეს.

და თქვენ არ შეგიძლიათ ადამიანური ფაქტორის გარეშე: ბეჭდვითი შეცდომები, შეცდომები, ღილაკების შემთხვევით დაჭერა კოდის ხაზების დაწერისას, სტრიქონის შესწორება ან ხელახლა აკრეფა მოითხოვს უფრო მეგობრულ დამოკიდებულებას.

მოქმედებების ერთფეროვანი ჯაჭვების შესასრულებლად, PS ახორციელებს სკრიპტებს - ტექსტურ ფაილებს შიგნით ბრძანებების თანმიმდევრობით, რომლებიც გასაგებია თარჯიმნისთვის.

PowerShell-ის სკრიპტები კიდევ უფრო გაამარტივებს და ავტომატიზირებს კომპიუტერზე მუშაობას და მის შენარჩუნებას, განსაკუთრებით თუ სკრიპტი შეიცავს ტოტებს, პირობებს, ლოგიკურ ოპერაციებს და მარყუჟებს.

მაგრამ აქ „ყველაფერი, რაც ბრწყინავს, არ არის ოქრო“: საკუთარი სცენარის დაწერა ან მზა სკრიპტის ატვირთვა (თუმცა ოდნავ მორგებული საკუთარ მიზნებზე) ასე მარტივად არ გამოდგება.

თუ შიგნითმაიკროსოფტიდაშვებული იყო რამდენი უბედურებაც არ უნდა იყოს გააკეთა სკრიპტებიPowerShell , დაწერილი თაღლითების და არაკეთილსინდისიერების მიერ ეგოისტური ან ხულიგნური მიზნებისთვის.

Windows PS-ზე გასაშვებად, თქვენ უნდა გაიაროთ მისი გაშვების კონტროლი.

თუ ის ვერ მოხერხდა და სკრიპტი უნდა შესრულდეს, თქვენ მოგიწევთ შეცვალოთ მაკროების უსაფრთხოებაზე პასუხისმგებელი ობიექტების კონფიგურაცია.

სკრიპტების გამოყენებამდე

VBS-ის გამოყენებისას წარმოიქმნება მრავალი პრობლემა, რომელთაგანაც PowerShell-ის დეველოპერებმა მთლიანად მოიცილეს თავი, თუ სკრიპტის უსაფრთხოება არ შემცირდა მომხმარებლის სკრიპტის მოთხოვნების დასაკმაყოფილებლად ან ოპერაციული სისტემის უსაფრთხოების დონესთან დაკავშირებული პრობლემების გადასაჭრელად.

ჩამოტვირთული სკრიპტის გაშვება მომხმარებლის აპარატზე მარტივი და ეფექტური ვარიანტია მავნე პროგრამული უზრუნველყოფის გასავრცელებლად ან თავდამსხმელების მიერ პირადი ინფორმაციის მოპარვისთვის.

ყველაფერი ხდება სკრიპტის ფაილის შინაარსის ძირითადი უცოდინარობის გამო (ps1)და სურვილი სწრაფად გადაჭრას საკუთარი პრობლემები სხვისი შრომის ხარჯზე. ობიექტები, რომლებიც აკონტროლებენ სკრიპტის შესრულების უსაფრთხოების დონეს, ქმნიან გარემოს, რომელშიც შეუძლებელია სკრიპტის გაშვება.

მაკროების მიზანმიმართული გაშვება ხდება უსაფრთხოების დონის შეცვლის შემდეგ, თუ მომხმარებელი ნებას რთავს, გააცნობიეროს რას აკეთებს და ზუსტად იცის, რა არის *.ps1 ფაილში.

იმის გამო, რომ უსაფრთხოების კონფიგურაცია მოუხერხებელია იმ ადამიანებისთვის, რომლებსაც სჭირდებათ საკუთარი სკრიპტების დანერგვა და გაშვება, შესაძლებელია კონფიგურაციის შეცვლა.

აქ შეგიძლიათ შეამციროთ დაცვა მინიმუმამდე, ან გონივრულად მართოთ მანევრირება შეღწევადობისთვის ხვრელების გახსნის უნარსა და PowerShell-თან მუშაობის მარტივობას შორის.

ჭურვი აქვს უსაფრთხოების სამი დონე:

  • ფაილები ps1 გაფართოებით არ არის იდენტიფიცირებული სისტემის მიერროგორც შესრულებადი და მითითებულია როგორც უცნობი ან ტექსტი (ორმაგი დაწკაპუნებით ისინი იხსნება ნაგულისხმევ ტექსტურ რედაქტორში, რომელიც გამოიყენება კომპიუტერში);
  • ჭურვი საშუალებას გაძლევთ შეასრულოთ სკრიპტები მათი სრული გზის მითითების შემდეგ, სკრიპტის ფაილები მიმდინარე დირექტორიაში არ იძებნება, რაც შეუძლებელს ხდის მიმდინარე დირექტორიაში მდებარე მაკროების შესრულებას;
  • ჩაშენებული Execution Policy სკრიპტის გაშვება, პასუხისმგებელია საჭირო სკრიპტების სიაში დამატებაზე.

არც კი იფიქროთ კონფიგურაციის შეცვლაზე, მისი დაწევა მინიმუმ მეორე დონეზე, საფუძვლების გაცნობის გარეშეPowerShellსანამ არ დაიწყებთ *-ის შინაარსის ზედაპირულად გაგებას.ps1.

ასევე არსებობს აღსრულების პოლიტიკის კონცეფცია, რომელიც შექმნილია სკრიპტების შემთხვევითი შესრულების თავიდან ასაცილებლად. გაშვების პოლიტიკის ხუთი პარამეტრია:

  • შეზღუდული -ნაგულისხმევად დაინსტალირებული, შესრულებულია მხოლოდ Microsoft-ის მიერ ხელმოწერილი სკრიპტები, რაც საშუალებას გაძლევთ მიიღოთ ინფორმაცია კომპიუტერის აპარატურის და პროგრამული უზრუნველყოფის შესახებ;
  • წაშლილი ფაილების ხელმოწერა– შეგიძლიათ შეასრულოთ ყველა მაკრო, მაგრამ ფოსტით გაგზავნილი ფაილები უნდა იყოს ხელმოწერილი;
  • ციფრულად ხელმოწერილი სანდო წყაროს მიერ- ყველა ხელმოწერილი სკრიპტი შესრულებულია;
  • შეუზღუდავი- გაუშვით ნებისმიერი მაკრო;
  • შემოვლითი– განკუთვნილია პროგრამისტებისთვის, რომლებიც ქმნიან საკუთარ უსაფრთხოების სისტემას, ვიდრე გამოიყენონ ჭურვიში წარმოდგენილი.

თქვენ შეგიძლიათ შეამოწმოთ შესრულების პოლიტიკის მიმდინარე მდგომარეობა „Get-ExecutionPolicy“ ბრძანების გამოყენებით.როგორიც არ უნდა იყოს უსაფრთხოების პოლიტიკა, მომხმარებელი ვერ შეძლებს სკრიპტის გაშვებას, რომელიც შეიცავს ბრძანებებს, რომელთა შესასრულებლად მას არ აქვს საკმარისი პრივილეგიები.

PowerShell-ის გაშვება

დროა გადავიდეთ თეორიიდან პრაქტიკაში. ასე რომ, სკრიპტების შესასრულებლად საჭიროა ციფრული ხელმოწერის მიღება ან (მეორე ვარიანტი უფრო მარტივია).

PowerShell ფანჯრის გასახსნელად რამდენიმე გზა არსებობს.

იგი წარმოდგენილია ორი ფორმით:

  • კლასიკური კონსოლი;

  • PowerShell ISE - ამატებს ჩანართების, სინტაქსის, კონტექსტური დახმარების, კონტექსტური და მთავარი მენიუების მხარდაჭერას, რაც მნიშვნელოვნად უწყობს ხელს თარჯიმანში მუშაობას.

დაწყება

PS-ზე დარეკვის უმარტივესი გზა Start-ია.

  1. გახსენით მენიუ(Windows 7-ში დააჭირეთ ღილაკს "ყველა პროგრამა").
  2. გადადით Windows PowerShell დირექტორიაშიდა დააწკაპუნეთ სასურველ ხატზე.

ბრინჯი. 4 – გაუშვით PS Start-ის საშუალებით

ასევე შეგიძლიათ დარეკოთ PS-ით ინტეგრირებული საძიებო სისტემა.

ბრძანების თარჯიმანი

მათთვის, ვისაც უყვარს არასტანდარტული და სწრაფი გაშვების მეთოდები, გამოიყენეთ Run ფანჯარა. ის იხსნება Start-ში ამავე სახელწოდების ღილაკით და Win + R ღილაკების კომბინაციით.

დიალოგურ ფანჯარაში ვწერთ "powershell"და დააჭირეთ "Enter".

Win + X

Windows 10-ში PS-ის გამოძახება შესაძლებელია WinX მენიუდან. ფაქტია, რომ სტანდარტულად ბრძანებაზე დაწკაპუნებით "ბრძანების ხაზი"გახსენით CMD. ის შეიძლება შეიცვალოს PowerShell-ით.

გახსენით Taskbar-ის "თვისებები", "ნავიგაციის" ჩანართში, დააყენეთ გამშვები ნიშანი ერთადერთი ვარიანტის გვერდით და შეინახეთ პარამეტრები.

შეგიძლიათ PowerShell-ს დარეკოთ ბრძანების სტრიქონიდან, მასში ჩაწერით „powershell“ ან გაუშვით შესრულებადი ფაილი გზაზე: %WINDIR%\ System32\ WindowsPowerShell\v1.0 32-ბიტიანი სისტემებისთვის და %WINDIR%\-ზე syswow64\ WindowsPowerShell\v1.0 ნებისმიერი გამოცემის 64-ბიტიანი Windows-ისთვის.

ბრინჯი. 8 – გაუშვით PS იმ დირექტორიადან, სადაც ინახება მისი შესრულებადი ფაილი

უსაფრთხოების პოლიტიკის დაყენება

ცოტა დატოვა– მიეცით PowerShell-ს სკრიპტების შესრულების უფლება. შეიყვანეთ ბრძანება "Set-ExecutionPolicy RemoteSigned" და დააჭირეთ "Y".

Სულ ეს არის. ახლა თქვენ შეგიძლიათ გაუშვათ ნებისმიერი cmdlet და სკრიპტი. ვცადოთ, მაგალითად, გამოვაჩინოთ აქტიური პროცესების სია „Get-Process“-ის შესრულებით.

გაშვებული სკრიპტები

თქვენ შეგიძლიათ შექმნათ სკრიპტები ნებისმიერში (უმჯობესია გამოიყენოთ Win, ან რაიმე მსგავსი, სინტაქსის ან ვალიდაციის მხარდაჭერით) ან PowerShell ISE პროგრამაში.

ეს უკანასკნელი უზრუნველყოფს cmdlet-ებზე მოსახერხებელ წვდომას, სკრიპტების გაშვების, გამართვისა და შენახვის შესაძლებლობას.

დავუშვათ, რომ თქვენ დაწერეთ თქვენი პირველი სკრიპტი (ეს არის გაშვებული პროცესების სიის მისაღებად), შეინახეთ ის მენიუში "ფაილი" და თქვენ უნდა გაუშვათ იგი. ეს კეთდება სამი გზით:

1 ჩვენ ვწერთ სკრიპტის სრულ გზას PowerShell-ში (ან ISE);

ბრინჯი. 13 – სკრიპტების გაშვება PowerShell ISE ფანჯრიდან

Მნიშვნელოვანიისე, რომ ფაილის გზაზე სივრცეები არ იყოს!

PowerShell– მძლავრი ინსტრუმენტი რუტინული ოპერაციების გასამარტივებლად სერვერზე 2008 და უფრო ახალზე. PowerShell-ის მნიშვნელოვანი უპირატესობა არის სკრიპტები და ხელმისაწვდომობა პროგრამის ვერსია გრაფიკული ინტერფეისით PS ISE. მასში შემავალი ბრძანებები წარმოდგენილია cmdlet-ების სახით, რაც შესაძლებელს გახდის გაეცნოთ გარსს და გაიგოთ თითოეული ბრძანების მნიშვნელობა. უსაფრთხოების პოლიტიკა არ დაუშვებს დამწყებს, ზიანი მიაყენოს კომპიუტერსუცნობი წყაროებიდან მიღებული სკრიპტები და გამართვის რეჟიმი, საკუთარი cmdlet-ების შექმნა, ფუნქციები და შეცდომების დამუშავების მექანიზმები შეუზღუდავ შესაძლებლობებს უხსნის პროგრამისტებს და ადმინისტრატორებს.

სკრიპტის გაშვების რამდენიმე განსხვავებული გზა არსებობს, ძირითადი მათგანი ქვემოთ მოცემულია:

  1. გაუშვით PowerShellდა გაუშვით მასში სკრიპტი (შეიყვანეთ ფაილის გზა და ფაილის სახელი, მაგალითად, ასე: C:\Scripts\test.ps1, ან გადადით სკრიპტის საქაღალდეში ბრძანებით cd C:\Scripts და გაუშვით. ბრძანებით.\test.ps1) ჭურვის პოვნა და გაშვება მრავალი გზით შეიძლება. ერთი გზა არის Start მენიუს მეშვეობით. Windows 7-ისთვის - თქვენ უნდა გადახვიდეთ "ყველა პროგრამაში" - "აქსესუარები" - "Windows PowerShell" და გაუშვით "Windows PowerShell" გარსი. Windows 10-ისთვის - თქვენ უნდა იპოვოთ ჯგუფი ასო "W"-ით და მასში იპოვით "Windows PowerShell".
  2. გაუშვით "Windows PowerShell ISE"არის პროგრამა - დეველოპერული გარემო, რომელიც საშუალებას გაძლევთ შეცვალოთ და გამართოთ PowerShell სკრიპტები, რომელიც ასევე ხელმისაწვდომია ნაგულისხმევად თვით PowerShell-თან ერთად. მისი გაშვების შემდეგ, თქვენ უბრალოდ უნდა დააჭიროთ ღილაკს "გახსნა" ან გადახვიდეთ მენიუში "ფაილი - გახსნა" და აირჩიეთ სასურველი სკრიპტი, შემდეგ დააჭირეთ ღილაკს "Run Script". შეგიძლიათ იპოვოთ Windows PowerShell ISE იმავე ადგილას PowerShell ჭურვი - Start მენიუში.
  3. გაუშვით სტანდარტული ბრძანების ხაზიდა ჩაწერეთ მასში:
    powershell -ფაილი<имя_скрипта> (მაგალითი: powershell -file myscript.ps1)

თუ აქამდე არ გაუშვით PowerShell სკრიპტები, სავარაუდოდ მიიღებთ შემდეგ შეტყობინებას: ფაილის გადმოწერა შეუძლებელია<имя_скрипта>, რადგან ამ სისტემისთვის სკრიპტის შესრულება აკრძალულია. აკრიფეთ "get-help about_signing" დამატებითი ინფორმაციისთვის. ეს გამოწვეულია იმით, რომ უსაფრთხოების მიზეზების გამო და მავნე კოდის შემთხვევითი შესრულების თავიდან ასაცილებლად, ყველა სკრიპტი ციფრულად უნდა იყოს ხელმოწერილი.

როგორ დავუშვათ ხელმოუწერელი PowerShell სკრიპტის შესრულება?

1. PowerShell-ში, სკრიპტის გაშვებამდე, გაუშვით ბრძანება, რათა დაუშვას ხელმოუწერელი სკრიპტების შესრულება მიმდინარე shell სესიისთვის:

Set-ExecutionPolicy RemoteSigned -Scope Process

2. გაშვებისას სტანდარტული ბრძანების ხაზიდანგამოიყენეთ -executionpolicy პარამეტრი, ე.ი. გაუშვით სკრიპტი ასე:

<имя_скрипта>

ორივე მეთოდი ადგენს პოლიტიკას მხოლოდ მიმდინარე სესიისთვის, ხოლო რეესტრში ჩაწერილი PowerShell სკრიპტების შესრულების უსაფრთხოების პოლიტიკა არ შეიცვლება და იგივე დარჩება. თუ გსურთ შეცვალოთ სკრიპტის შესრულების უსაფრთხოების პოლიტიკა „მუდმივზე“, მაშინ გამოიყენეთ ეს მეთოდი:

3. სამუდამოდ გაშვების დაშვება: გაუშვით PowerShell როგორც ადმინისტრატორი, შემდეგ გაუშვით ბრძანება:

Set-ExecutionPolicy RemoteSigned

Შენიშვნა:თუ სკრიპტი გადმოწერილი იყო ინტერნეტიდან, მაშინ იმისათვის, რომ თავიდან აიცილოთ გაშვების დადასტურების მოთხოვნა, RemoteSigned-ის ნაცვლად უნდა გამოიყენოთ Bypass - მთლიანად გამორთეთ ნებისმიერი მოთხოვნა და გაფრთხილება.

როგორ გავუშვათ PowerShell სკრიპტი ფონზე?

ამისათვის უბრალოდ გამოიყენეთ გაშვების პარამეტრი -WindowStyle, რომელსაც შეუძლია მიიღოს შემდეგი მნიშვნელობები: Normal, Minimized, Maximized და Hidden. ამრიგად, ხელმოუწერელი სკრიპტის ფონზე გასაშვებად, თქვენ უნდა შეასრულოთ ბრძანება:

powershell -executionpolicy RemoteSigned -WindowStyle დამალული -ფაილი<имя_скрипта>

თქვენ ასევე შეგიძლიათ დაამატოთ -NonInteractive თუ გსურთ, რათა სკრიპტმა არ დაუსვას კითხვები. ამრიგად, სკრიპტი შესრულდება მომხმარებლის მიერ შეუმჩნევლად. ფრთხილად იყავით ამ მეთოდის გამოყენებისას.

PowerShell სკრიპტის გაშვება პარამეტრებით

ფაქტობრივი გაშვება უნდა განხორციელდეს ისე, თითქოს რეგულარულ პროგრამას ან bat ფაილს გაუშვით პარამეტრებით. მაგალითად, ბრძანების სტრიქონიდან პარამეტრების მქონე სკრიპტის გასაშვებად, შეგიძლიათ დაწეროთ შემდეგი ბრძანება:

powershell -executionpolicy RemoteSigned -ფაილი<имя_скрипта>param1 param2 "სხვა ტექსტის პარამეტრი"

თავად სკრიპტში შეგიძლიათ მიიღოთ ეს პარამეტრები ასე:

პარამი ($var1, $var2, $var3) echo $var1, $var2, $var3

PowerShell ISE-ში შეგიძლიათ პარამეტრებთან ერთად სკრიპტის გაშვება იმავე გზით ბრძანების პანელის გამოყენებით.

როგორ გავუშვათ PowerShell სკრიპტი მალსახმობის გამოყენებით?

ეს დავალება შეიძლება შესრულდეს ორი გზით:

  1. შექმენით bat/cmd ფაილი, რომელშიც ჩაწერეთ ბრძანება სკრიპტის გასაშვებად (თქვენ წაიკითხეთ ზემოთ მოცემული პარამეტრები)
  2. შექმენით მალსახმობი PowerShell-ისთვის, რომელიც შეგიძლიათ იხილოთ საქაღალდეში c:\Windows\System32\WindowsPowerShell\v<версия>\ და "ობიექტის" ველში მალსახმობის თვისებებში დაამატეთ საჭირო პარამეტრები.

ამრიგად, მაგალითად, Powershell სკრიპტის გასაშვებად, როდესაც მომხმარებელი შედის სისტემაში, შეგიძლიათ უბრალოდ შექმნათ მალსახმობი, როგორც აღწერილია მე-2 პუნქტში და განათავსოთ იგი გაშვებაში. ასევე, მალსახმობის შექმნა ზემოთ მოყვანილი ერთ-ერთი მეთოდის გამოყენებით, საშუალებას მოგცემთ მარტივად გაუშვათ სკრიპტი როგორც ადმინისტრატორი ან როგორც ნებისმიერი სხვა მომხმარებელი, როგორც ჩვეულებრივი პროგრამა.

PowerShell სკრიპტირების ენა საკმაოდ მძლავრი ინსტრუმენტია სხვადასხვა პრობლემების გადასაჭრელად, მაგრამ მისი გამოყენება შესაძლებელია არა მხოლოდ კარგი, არამედ ცუდისთვისაც, ამიტომ გამოიყენეთ იგი გონივრულად ;)

PowerShell არის ალტერნატიული ბრძანების ხაზი ფართო ფუნქციონირებით. ბევრი კომპიუტერის მფლობელი, რომლებიც კარგად ერკვევიან სისტემურ პროცესებში, დაინტერესებულია მისი გამოყენების შესაძლებლობებით Windows 10 და ამ პროგრამის წინა ვერსიებზე, რათა შეცვალონ კონკრეტული პროცესები და კომპიუტერის პარამეტრები.

არაფერია რთული PowerShell-ის გამოყენებაში. უბრალოდ მიჰყევით ამ სტატიაში მოცემულ ყველა ინსტრუქციას და წარმატებას მიაღწევთ.

თუ თქვენ არ ხართ ამ თემის ექსპერტი, თქვენ ახლახან იწყებთ ბრძანების ხაზების შესწავლას და მათში შესასრულებელი მოქმედებების შესწავლას, სასარგებლო იქნება თქვენთვის იცოდეთ პასუხები მთავარ კითხვებზე ასეთი აპლიკაციის გამოყენების შესახებ. მაგალითად, როგორ გავუშვათ Windows PowerShell ISE Windows 10 და დავწეროთ და ვიმუშაოთ სკრიპტებთან.

როგორ გავხსნათ PowerShell?

ეს შეიძლება გაკეთდეს რამდენიმე შემდეგი გზით:

  • - აპლიკაციას ნახავთ კომპონენტების ზოგად სიაში ასო W-ს ქვეშ.
  • ამოცანების პანელში ძიების გამოყენებით - გახსენით და ჩაწერეთ სიტყვა PowerShell საძიებლად.
  • "Run" მენიუს გამოყენებით, გაუშვით იგი Win + R კომბინაციით და ჩაწერეთ კომუნალური პროგრამის სახელი, რის შემდეგაც ის გამოჩნდება სისტემაში.
  • Commander-ში დააყენეთ PowerShell მოქმედება - მაგრამ უნდა იცოდეთ, რომ აპლიკაციასთან იმუშავებთ უკვე გაშვებული ხაზის მეშვეობით და არა ცალკე ფანჯარაში.
  • Windows-ის პარამეტრებში აირჩიეთ Taskbar Properties და Start Menu. "ნავიგაციის" ჩანართში მონიშნეთ ყუთი "შეცვალეთ ბრძანების ხაზი PowerShell-ით...". ახლა თქვენ შეგიძლიათ ჩართოთ პროგრამა Win+X კომბინაციის გამოყენებით.

როგორ დავწეროთ და გავუშვათ სკრიპტები?

როგორ შევქმნათ PowerShell სკრიპტი და გავუშვათ იგი? ეს უბრალოდ შეიძლება გაკეთდეს ნოუთბუქში - მისი გამოყენებით, მიუთითეთ თქვენთვის საჭირო ბრძანებები ახალ დოკუმენტში. შემდეგ შეინახეთ, მაგრამ შეცვალეთ ფორმატი .ps1-ზე - ეს არის გაფართოება, რომელიც ამ სისტემის უტილიტას ფაილებს აქვთ.

თქვენ შეგიძლიათ დაწეროთ სკრიპტები თავად აპლიკაციაში შემდეგნაირად:

  • გაუშვით.
  • დააწკაპუნეთ პუნქტზე "შექმნა".
  • ან დააჭირეთ "ფაილს" და აირჩიეთ "შექმნა" სიიდან, რომელიც გამოჩნდება.
  • ჩაწერეთ ყველა ბრძანება, რომელიც უნდა შესრულდეს, შეინახეთ ფაილი.

სკრიპტების დაწერა და რედაქტირება ჯერ კიდევ შესაძლებელია FAR მენეჯერში, მაგრამ მათი გამოყენება პირდაპირ ასეთ აპლიკაციაში შეუძლებელია, რადგან ის აჩვენებს ამ ტიპის ფაილებს სტანდარტული cmd ხაზის მეშვეობით. თუმცა, სხვა მოქმედებები შესრულებულია ისევე, როგორც "მშობლიურ" პროგრამაში.

შეგიძლიათ სკრიპტის გაშვება ამ გზით:

  1. შედით PowerShell-ში, როგორც ადმინისტრატორი.
  2. გამოიყენეთ cd ბრძანებები საჭირო ფაილის ადგილმდებარეობის დასადგენად. მაგალითად, e: cd\ cd work .\ filename. Ps1, ან e: \work\filename.ps1
  3. ამ შემთხვევაში, e: არის მყარი დისკის სახელი, სადაც მდებარეობს ფაილი.
  4. დააჭირეთ Enter.

პროგრამა აუცილებლად გაჩვენებთ შეტყობინებას ტექსტით „ფაილი ___ .Ps1 ვერ ჩაიტვირთება, რადგან ამ სისტემაზე სკრიპტის შესრულება აკრძალულია...“ ბრძანების პირველად გაშვებისას. ფაქტია, რომ Windows აღჭურვილია ჩარევისგან დაცვით დეველოპერების წყალობით, ამიტომ არცერთ მომხმარებელს ნაგულისხმევად არ აქვს წვდომა ასეთი ქმედებების შესასრულებლად. მაგრამ ამ შეზღუდვის თავიდან აცილება ძალიან მარტივად შეიძლება.

Როგორ? ტექსტი, რომელიც გამოჩნდება შეცდომით, გირჩევთ გაუშვათ ბრძანება get-help about_signing მეტი ინფორმაციის მისაღებად. შეგიძლიათ მიჰყვეთ ამ ინსტრუქციებს, ან გამოიყენოთ Set-ExecutionPolicy დისტანციური დიზაინის კომბინაცია - მასში შეყვანის შემდეგ საჭირო იქნება დადასტურება და შეზღუდვა მოიხსნება.

სხვა კითხვები გამოყენების შესახებ

ბევრ ადამიანს აქვს შეკითხვა: როგორ გავარკვიოთ PowerShell-ის ვერსია? ამისათვის გააკეთეთ შემდეგი:

  1. შეიყვანეთ $PSVersionTable.
  2. თუ ეს არაფერზე არ მიგვიყვანს, მაშინ თქვენ გაქვთ ვერსია 1.0 - ამისთვის არის $host.version ბრძანება.
  3. წინააღმდეგ შემთხვევაში, გამოჩნდება დეტალური ინფორმაცია იმის შესახებ, თუ რომელი აპლიკაციის ვერსიაა დაინსტალირებული კომპიუტერზე.

1. სცენარის დაწერა

PowerShell სკრიპტი (არ აქვს მნიშვნელობა რომელი ვერსია) არის ტექსტური ფაილი *.ps1 გაფართოებით.

აქ არის მარტივი Power Shell სკრიპტის მაგალითი (ფაილი systemInfo.ps1):

# მიიღეთ WMI ობიექტი ოპერაციული სისტემისთვის

Get-WmiObject Win32_OperatingSystem

ამ ფაილის შექმნა და რედაქტირება შესაძლებელია, მაგალითად, FAR მენეჯერში.

შენიშვნარომ FAR მენეჯერი, მიუხედავად იმისა, რომ მას შეუძლია მუშაობა Power Shell-ის კონსოლში, ახორციელებს სკრიპტებს ქვემოდან ჩვეულებრივი Windows კონსოლის გარემოში.სმდ . ანუ FAR მენეჯერის გამოყენება შესაძლებელია მხოლოდ PowerShell სკრიპტების შესაქმნელად და რედაქტირებისთვის, მაგრამ არა მათი გასაშვებად. მაგრამ სანამ იმედგაცრუებული იქნებით, წაიკითხეთ პუნქტი 3.

2. სკრიპტის გაშვება

სკრიპტი უნდა შესრულდეს Power Shell-ის კონსოლიდან და არა ჩვეულებრივი Windows-ის კონსოლიდან. Power Shell-ის კონსოლში თქვენ უნდა გადახვიდეთ დირექტორიაში, სადაც მდებარეობს სკრიპტი (ბრძანებებით CD ), და შემდეგ გაუშვით თავად სკრიპტი, დარწმუნდით, რომ შეიცავთ მის წინ არსებულ სიმბოლოებს".\" . მაგალითად, ჩვენ გვაქვს გზა სკრიპტის ფაილისკენ d:\work\systemInfo.ps1 . შემდეგ გაშვების ბრძანებები ასე გამოიყურება:

cd\

cd ნამუშევარი

.\systemInfo.ps1

ან ასე (უბრალოდ მიუთითეთ სკრიპტის სრული გზა):

d:\work\systemInfo.ps1

სავარაუდოდ, შემდეგი შეცდომა გამოჩნდება სკრიპტის გაშვებისას:

ფაილი D:\work\systemInfo.ps1 ვერ ჩაიტვირთება, რადგან სკრიპტის შესრულება დაუშვებელია ამ სისტემაში. აკრიფეთ "get-help about_signing" დამატებითი ინფორმაციისთვის.

ხაზი: 1 სიმბოლო: 18

CategoryInfo: NotSpecified: (:), PSSecurityException

FullyQualifiedErrorId: RuntimeException

შეცდომა ჩნდება იმის გამო, რომ ნაგულისხმევად Power Shell-ს აქვს ჩართული უსაფრთხოების მაქსიმალური პოლიტიკა, რომელიც საშუალებას გაძლევთ გაუშვათ PowerShell ბრძანებები ბრძანების ხაზზე, მაგრამ არ გაძლევთ უფლებას გაუშვათ სკრიპტი PowerShell ბრძანებებით იმავე ბრძანების ხაზზე.

PowerShell სკრიპტების შესრულების გასააქტიურებლად, თქვენ უნდა შექმნათ *.bat ფაილი, მაგალითად enableScript.bat შემდეგი შინაარსით:

powershell -Command Set-ExecutionPolicy RemoteSigned

ეს *.bat ფაილი შეიძლება შესრულდეს ნებისმიერ კონსოლში: PowerShell-ში ან ჩვეულებრივ კონსოლშისმდ . ამ ფაილის შესრულების შემდეგ, PowerShell სკრიპტები იმუშავებს PowerShell-ის კონსოლში.

3. PowerShell სკრიპტის გაშვება ჩვეულებრივი Windows cmd კონსოლიდან

PowerShell სკრიპტი ასევე შეიძლება შესრულდეს ჩვეულებრივი Windows კონსოლიდან. ამისათვის შეგიძლიათ გამოიყენოთ ბრძანება:

Powershell -File ./systemInfo.ps1

ამ გზით თქვენ შეგიძლიათ შეასრულოთ სკრიპტები პირდაპირ FAR მენეჯერიდან და ისინი იმუშავებენ.

მაგრამ აქ არის მცირე დახვეწილობა. Პარამეტრი-ფაილი მხოლოდ ადგილობრივ ბილიკებზე ხანძრის, თუნდაც გზა ფარდობითი იყოს"./" . ანუ თუ *.ps1 - ფაილი ლოკალურ დისკზეა C: ან D: , მაშინ ასეთი ზარი იმუშავებს. მაგრამ თუ თქვენ ცდილობთ შეასრულოთ სკრიპტი, რომელიც მდებარეობს დომენის რესურსზე, სკრიპტი ვერ მოიძებნება. შესაძლოა ეს გამოსწორდეს PowerShell-ის მომავალ ვერსიებში.