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

თქვენ შეგიძლიათ მართოთ მოწინავე SQL Server მოვლენები SQL Server PowerShell პროვაიდერის გამოყენებით.   XEvent ქვეფოლტერი მდებარეობს SQLSERVER დისკზე.   თქვენ შეგიძლიათ საქაღალდეზე წვდომა შემდეგი შემდეგი გზით.

XEvent საქაღალდის ხეში, შეგიძლიათ ნახოთ არსებული გაფართოებული ღონისძიებების სესიები და მათთან დაკავშირებული მოვლენები, მიზნები და პროგნოზები.   მაგალითად, თუ თქვენ შეიყვანთ cd სესიებს PS SQLSERVER- ში: \\ XEvent \\ ServerName \\ InstanceName\u003e საქაღალდე, დააჭირეთ Enter- ს, აკრიფეთ dir, და შემდეგ დააჭირეთ Enter- ს, შეგიძლიათ იხილოთ ამ შემთხვევაში შენახული სესიების სია.   თქვენ ასევე შეგიძლიათ შეამოწმოთ მიმდინარეობს სესიის ჩატარება (და თუ ეს ასეა, მაშინ რამდენ ხანს), და დანიშნულია თუ არა სხდომა, რომ დაიწყოს ინსტალაცია.

მოვლენების, მათი პრედიკატებისა და სესიასთან დაკავშირებული მიზნების სანახავად შეგიძლიათ შეცვალოთ დირექტორიების სახელები სესიის სახელზე და შემდეგ ნახოთ ან ღონისძიების საქაღალდე ან მიზნების საქაღალდე.   მაგალითად, სანახავი მოვლენების და მათი პრედიკატების შესახებ, რომლებიც დაკავშირებულია სისტემის ჯანმრთელობის მონიტორინგის სტანდარტულ სხდომაზე, PS SQLSERVER: \\ XEvent \\ ServerName \\ InstanceName \\ Sessions\u003e საქაღალდე, ჩაწერეთ cd system_health \\ მოვლენები, დააჭირეთ Enter- ს, აკრიფეთ დირექტორი და შემდეგ დააჭირეთ Enter- ს. .

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

    სკრიპტები უნდა შესრულდეს PS SQLSERVER მდებარეობიდან: \\\u003e (მასზე მისასვლელად, ჩაწერეთ ბრძანების სტრიქონი  კვ.სმ).

    სკრიპტები იყენებენ SQL სერვერის სტანდარტულ მაგალითს.

    სკრიპტები უნდა შეინახოთ PS1 გაფართოებით.

    PowerShell– ის შესრულების პოლიტიკა უნდა დაუშვას სკრიპტის შესრულებას.   აღსრულების პოლიტიკის დასაყენებლად გამოიყენეთ cmdlet მითითებული მოქმედება.   (დამატებითი ინფორმაციისთვის, შეიყვანეთ get-help set- შესრულების პოლიტიკა - შედგენილია  და დააჭირეთ Enter.)

შემდეგი სკრიპტი ქმნის ახალ სესიას სახელწოდებით "TestSession".

# სცენარი სესიის შესაქმნელად. cd XEvent $ h \u003d მასპინძელი სახელი cd $ h # გამოიყენეთ სტანდარტული ინსტალაცია. $ მაღაზია \u003d dir | სადაც ($ _. DisplayName -ieq "ნაგულისხმევი") $ სესიას \u003d ახალი ობიექტი Microsoft.SqlServer.Management.XEvent.Session -argumentlist $ მაღაზია, "TestSession" $ event \u003d $ session.AddEvent ("sqlserver.file_written") $ event.AddAction ("pack0.callstack") $ სესიის შექმნა. შექმნა ()

შემდეგი სკრიპტი დაამატეთ Ring Buffer- ის მიზანს წინა მაგალითში შექმნილ სესიაზე.   (ეს მაგალითი გვიჩვენებს მეთოდის გამოყენებას ალტერ.   გახსოვდეთ, რომ შეგიძლიათ მხოლოდ დაამატოთ მიზანი სესიის შექმნის შემდეგ.)  # სცენარი სესიის შესაქმნელად. cd XEvent $ h \u003d მასპინძელი სახელი cd $ h # გამოიყენეთ სტანდარტული ინსტალაცია. $ მაღაზია \u003d dir | სადაც ($ _. DisplayName -ieq "ნაგულისხმევი") $ სესიას \u003d ახალი ობიექტი Microsoft.SqlServer.Management.XEvent.Session -argumentlist $ მაღაზია, "TestSession2" $ event \u003d $ session.AddEvent ("sqlserver.file_written") # შექმენით მტაცებელი "თანაბარი_ი_უნისკოდი_სტრინგი (ბილიკი, N" c: \\ temp.log ")". $ სვეტი \u003d $ store.SqlServerPackage.EventInfoSet ["file_written"]. DataEventColumnInfoSet ["ბილიკი"] $ operand \u003d new-ობიექტი Microsoft.SqlServer.Management.XEvent.PredOperand -argumentlist $ სვეტი $ ღირებულება \u003d ახალი-ობიექტი Microsoft.S მენეჯმენტი.XEvent.PredValue -argumentlist "c: \\ temp.log" $ համեմատ \u003d $ store.Package0Package.PredCompInfoSet ["თანაბარი_i_unicode_string"] $ predicate \u003d new-ობიექტი Microsoft.SqlServer.Management.XEvent.PredFunctionExpr -argumentlist ოპერანდი, $ ღირებულება $ event.SetPredicate ($ პრედიქტი) $ სესიის შექმნა. შექმნა ()

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

რა არის PowerShell და რა არის კარგი

UNIX– ისა და Linux– ის მომხმარებლებმა და გარკვეული მომენტიდან და macOS შეეგუვნენ იმ ფაქტს, რომ Bash ყოველთვის ხელთ არის - ცოტა მოძველებული, მაგრამ უნივერსალური და ძლიერი საშუალება, რომლითაც შეგიძლიათ რამდენიმე საოცარი რამ გააკეთოთ მხოლოდ რამდენიმე ხაზით. თქვენ დარეგისტრირდით ახალ სკრიპტერზე cron - და თქვენ დასრულდა, ის უკვე მუშაობს თქვენს კომპიუტერში ან სერვერზე და ჩუმად აკეთებს რაიმე სასარგებლო.

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

Windows PowerShell  - ეს არის გაფართოებული ავტომატიზაციის ინსტრუმენტი, ღია წყაროებით, რომელიც შედგება ჭურვის (ბრძანების ხაზის) და სკრიპტირების ენისაგან. იგი პირველად 2003 წელს იქნა ნაჩვენები (შემდეგ მას ერქვა მონად). PowerShell 2.0 მოვიდა Windows 7 და Windows სერვერი  2008 R2 და მას შემდეგ არის Windows– ში როგორც სტანდარტული კომპონენტი. ის Windows XP SP3- შიც კი შედიოდა. PowerShell აგებულია და ინტეგრირებულია .NET Framework- ით. PowerShell- ს შეუძლია COM, WMI და ADSI წვდომა და რა თქმა უნდა, ასრულებს კონსოლის ბრძანებებს.

ზოგადად, "posik" აქვს ძლიერი კავშირები Microsoft- ის პროდუქტებთან, იქნება ეს Active Directory ან Exchange mail სერვერი. ეს საშუალებას გაძლევთ მისასვლელად მიიღოთ ისინი კონსოლთან და გამოსცემთ ბრძანებებს სერვერის Snap-in- ზე დაკავშირების გარეშე.

თუ ადრე არ იყო დაინტერესებული PowerShell– ით, მაშინ, ალბათ, გაქვთ მეორე ვერსია. გირჩევთ განაახლოთ მინიმუმ მესამეზე - ის შეიცავს ბევრად მეტ მახასიათებლებს და სასარგებლო მახასიათებლებს. დეტალების გაცნობის გარეშე, PowerShell 2.0 მოიცავს ათეულობით მოდულს და დაახლოებით 350 ბრძანებას, ხოლო PowerShell 3.0 – ს უკვე აქვს დაახლოებით 2,300 სმმდე 70 – ზე მეტი მოდულისგან. ჰაკერმა ასევე დაწერა იმაზე, თუ როგორ განსხვავდება Windows 10-ის უახლესი PowerShell ვერსია 5.

შეარჩიეთ განვითარების გარემო და ინსტრუმენტები

ახლა მოდით გაერკვნენ, სადაც ყველაზე მოსახერხებელია კოდის დაწერა. თქვენ, რა თქმა უნდა, შეგიძლიათ Notepad– ში, Notepad ++– ში ან Sublime– ში. მაგრამ ეს ამ შემთხვევაში არ არის რედაქტორის ყველაზე კომპეტენტური არჩევანი. უმჯობესია დაიწყოს PowerShell, შეიარაღებული შეფუთვებით.



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

მიუხედავად ამისა, PowerShell ISE- ს ასევე აქვს ღირსეული კონკურენტები. ერთ-ერთი მათგანია.

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



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



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



რამდენიმე სასარგებლო ხრიკი

რედაქტორის გაცნობის შემდეგ, შეგიძლიათ დაიწყოთ კოდის წერა. PowerShell არის მარტივი ენა და ვფიქრობ, რომ სწრაფად გაერკვნენ, რა არის. აქ ბრძანებებს cmdlets ეწოდება და თითოეულ მათგანს ორი ნაწილისგან შეადგენენ. პირველი მოქმედება მოდის, მაგალითად მიიღეთ, დაყენება, დამატება, გამოძახება, წაშლა. შემდეგ ეს მიუთითებს, თუ რა მოქმედების მიზანია: სერვისი, VM, AzureAccount, DHCPServerSetting. თითოეული ნაწილი ერთმანეთისგან განცალკევებულია თხრილით. გამოდის, მაგალითად, მიღება-პროცესი. ეს, სხვათა შორის, სასარგებლო ბრძანებაა, რომელიც აჩვენებს პროცესების ჩამონათვალს. თქვი თუ წერთ

მიიღეთ - დამუშავება BadTh *

ჩვენ ვნახავთ მსგავსი რამ:

სახელურები NPM (K) PM (K) WS (K) VM (M) CPU (s) Id პროცესორის სახელი

------------------------

28 4 - 210844 - 201128 - 163 25.67 2792 BadThread

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

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

თქვენ ასევე შეგიძლიათ გაუშვათ

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

მიიღეთ - AdUser - ფილტრი * - Properties OfficePhone | FT OfficePhone, UserPrincipalName

PowerShell წინააღმდეგ bat

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

PowerShell cmdlets გამომავალი

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

ამ cmdlets სანახავად, შეასრულეთ ბრძანება:

Get-Command-Verb Out

მასპინძელი

Out-Host cmdlet ეკრანზე აჩვენებს მონაცემებს. მაგალითად:

მიღება-პროცესის უფლებამოსილება | მასპინძელი

ამასთან, ბრძანების ბოლოს Out-Host- ის დამატება არასავალდებულოა. მილსადენის ბოლოს, Out-Default cmdlet განთავსებულია ნაგულისხმევი, რაც გადამისამართებს ყველაფერს Out-Host- ზე. ე.ი. წინა ბრძანება უდრის ბრძანებას:

მიღება-პროცესის უფლებამოსილება | ნაგულისხმევი

რაც თავის მხრივ არის ბრძანების ექვივალენტი:

მიიღეთ პროცესის უფლებამოსილება

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

მიიღეთ პროცესის უფლებამოსილება

რეალურად ასრულებს ბრძანებას:

მიღება-პროცესის უფლებამოსილება | ფორმატი-ცხრილი | მასპინძელი


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

მიღება-პროცესი | გარეთ – მასპინძელი – პეიჯინგი


Out-File cmdlet გადამისამართებს გამომავალს მითითებულ ფაილზე, მაგალითად:

მიღება-პროცესის უფლებამოსილება | ფაილი proc.txt

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

მიღება-პროცესის უფლებამოსილება | Out-File proc.txt –გამოცემა


თქვენ შეგიძლიათ გამოიყენოთ shorthand სინტაქსი ფაილზე გამოსასვლელად. მაგალითად, ჩაწერა:

მიიღეთ-პროცესის შესაძლებლობები\u003e proc.txt

ან დაამატეთ ფაილის ბოლოს:

მიიღეთ პროცესის შესაძლებლობები \u003e\u003e proc.txt

გარეგნული ხედი

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

მიღება-პროცესი | Out-GridView- სათაურის პროცესები


PowerShell Out-GridView- ის მესამე ვერსიის საწყისი გასაღები წარმოადგენს პასტრუუმიღებული მონაცემების მილსადენზე გადატანა საშუალებას გაძლევთ. მაგალითად, შეგიძლიათ პროცესების სია აჩვენოთ, გრაფიკულ ვაგონში შეარჩიოთ აუცილებელი და გადაიტანოთ ისინი Stop-Process cmdlet- ში, რაც შეაჩერებს არჩეულ პროცესებს:

მიღება-პროცესი | Out-GridView -PassThru | პროცესის შეჩერება


Out-Null cmdlet გამოიყენება, თუ გამომავალი არ არის საჭირო. იგი მიღებულ მონაცემებს აგზავნის NULL მოწყობილობაში, ანუ. შლის მათ. მაგალითად, მიიღეთ შემდეგი ბრძანება:

$ პროცესი \u003d Get-WmiObject win32_process -Filter ″ Name \u003d ′ Notepad.exe ′
$ პროცესი. განსაზღვრა ()

ძირითადი მოქმედების გარდა (პროცესის შეჩერება), იგი აჩვენებს უამრავ არასაჭირო ინფორმაციას. ამის თავიდან ასაცილებლად, გამოაგზავნეთ გამომავალი Out-Null– ზე, მაგალითად, მაგალითად:

$ process.Terminate () | ნული

$ process.Terminate ()\u003e $ null


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

მაგალითად, ჩვენ გამომდინარეობს პროცესს, შეინახეთ იგი ცვლადში $ a და შევხედოთ მონაცემთა ტიპს:

$ a \u003d მიიღეთ პროცესის უფლებამოსილება
  $ a.GetType ()

შემდეგ შესანახი Out-String შინაარსი და შეინახეთ გამომავალი ცვლადი $ b:

$ b \u003d $ a | გარე სიმებიანი
  $ b.Get-Type ()

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


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

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

მაგალითად, ჩვენ ჩამოვთვლით სისტემურ სერვისებს ყველა მახასიათებლით და მას ფორმატის სახით ვადგენთ ცხრილის სახით:

მიღება-მომსახურება | ფორმატი - ცხრილი - საკუთრება * -ზომილებიანი

ვინაიდან კონსოლის სიგანე შემოიფარგლება 80 სიმბოლოსთან, მონაცემების უმეტესი ნაწილი მოიჭრება, რაც არც თუ ისე ჯანმრთელია.


იმისათვის, რომ არ გამოხვიდეთ გამომავალი, მიმართეთ მას Out-String- ზე და გაზარდეთ სიგანე:

მიღება-მომსახურება | ფორმატი – ცხრილი – საკუთრება * –AutoSize | გარეთ სიმებიანი - სიგანე 1024

ახლა ყველა მონაცემი ეკრანზეა, მაგრამ მაინც არ გამოიყურება ძალიან კარგი.


შეასწორეთ სიტუაცია Out-String– ის გამომავალი ფაილის cmdlet– ზე გადასვლის გზით:

მიღება-მომსახურება | ფორმატი – ცხრილი – საკუთრება * –AutoSize | გარეთ სიმებიანი - სიგანე 1024 | ფაილური მომსახურება.txt

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


Out-Printer cmdlet გადამისამართებს გამომავალ პრინტერს. მაგალითად:

მიღება-მომსახურება | ფორმატი – ცხრილი – საკუთრება * –AutoSize | Out-File service.txt – სიგანე 1024
მიიღეთ შინაარსის სერვისი.txt | პრინტერი

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

10/10/2010 - Xaegr

ამას წინათ შევხვდი ამ პოსტს. ამაზე მოცემულია რამდენიმე საინტერესო მაგალითი. ”პერლის მსგავსად, კოდირების ერთ ან ორ ხაზს შეუძლია სხვა პროგრამირების ენაზე ათზე მეტი სტრიქონის გაკეთება.”  Seemed მეჩვენებოდა, რომ საინტერესო იქნება შედარება, თუ როგორ გამოიყურება ეს მაგალითები PowerShell– ზე და რაც მთავარია, ეს შეიძლება სასარგებლო იყოს მათთვის, ვინც პერლს უკვე იცნობს, მაგრამ ახლა სწავლობენ PS- ს.

მოგეხსენებათ, PowerShell ძალიან ახალგაზრდა ენაა და, რა თქმა უნდა, მან მემკვიდრეობით მიიღო სხვა ენების მრავალი ელემენტი და, შესაბამისად, ზოგიერთ ადგილას მსგავსია მრავალი მათგანისთვის. ხშირად მესმის ფრაზები, როგორიცაა "ოჰ, მათ მოიპარეს PHP!" და "ეს არის C # უფრო მარტივი სინტაქსი" PowerShell კოდი. მაგრამ, ჩემი აზრით, ყველაზე მეტად, PowerShell მსგავსია პერლისთვის. ეს გასაკვირი არ არის - პერლი იყო PS– ის ავტორთა ერთ – ერთი საყვარელი ენა და ეს შესანიშნავია - პერლზე ჩვენ ბევრ კარგ მახასიათებელს ვიქნებით.

სუპერვარსკვლავი ლარი Wall and Perl– ს ძალიან ცოტა ადამიანი და ტექნოლოგიები აქვთ, რომლებმაც გავლენა იქონიეს (პოზიტიური 🙂) ზემოქმედების შედეგად ამ 2-მა ინდუსტრიაზე. სამყარო უკეთესი ადგილია, რადგან ეს ბიჭი დაიბადა!

ეს იყო საბაბი 😉 ახლა მოდით გადავიდეთ კოდიზე

დაუყოვნებლივ უნდა ვთქვა - მეჩვენება, რომ ეს უბრალოდ კარგი შერჩევაა, მოვახერხე PS– ზე მრავალი მაგალითის ჩაწერა ბევრად უფრო მოკლე, და რაც მთავარია - უფრო მკაფიოდ (სუბიექტურად, რა თქმა უნდა). ამ ბევრ რეგიონში, პერლი მარტივად მისცემს PowerShell– ს \u200b\u200bკომპაქტური კოდის თვალსაზრისით, შესაძლოა, ამ Perl- ს ზოგიერთი მაგალითებიც კი უფრო ლამაზად იყოს დაწერილი, ამიტომ მოხარული ვიქნები, თუ ადამიანები, რომლებიც Perl– ს იცნობენ, დატოვონ თავიანთი კონსტრუქციული კომენტარები

მე ციტირებს მხოლოდ აღწერილობებს, პერლის კოდი შეგიძლიათ იხილოთ თავდაპირველ პოსტში.

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

# ჩამონტაჟებული განცხადება შეიცავს  $ მასივი - შეიცავს $ ელემენტს

2. @arr მასივიდან ამოიღეთ ის ელემენტები, რომლებიც @skip მასივშია.

# კითხვის ნიშანი - სახელი, სად  $ arr | ? ($ გამოტოვება - არ შეიცავს $ _)

მე –3 წერტილის ნაცვლად, დავწერე მშვენიერი (სუბიექტურად, რა თქმა უნდა 😉) ფილტრი:

   ფილტრის შეცვლა-სიტყვები (foreach ($ arg in $ args)) ($ წყვილი \u003d $ arg. გაყოფა ("\u003d", 2) # არგუმენტი დაყავით 2 ნაწილად ნიშნით   $ _ \u003d $ _-შეცვალეთ $ წყვილი [0], $ წყვილი [1] # შეცვალეთ მოვლენები სტრიქონში } $_ # ჩვენ ვაწარმოებთ შედეგად სიმებს }

გამოიყენეთ მაგალითად, მაგალითად:

   $ text \u003d მიიღეთ-შინაარსი. \\ test1.txt $ text | შეცვალეთ სიტყვები ცუდი \u003d კარგი ვაშლი \u003d მსხალი  | მითითებული შინაარსი. \\ Test1.txt

4. ჩამოთვალეთ ფაილებისა და დირექტორიების სახელები მოცემულ დირექტორიაში, დაალაგეთ ბოლო შესვლის თარიღი. გლობუსი, როგორც წესი, ალაგებს ჩამონათვალს ფაილისა და დირექტორიის სახელის მიხედვით. ბოლო ცვლილების თარიღის დასალაგებლად, შეცვალეთ ნომერი 8 – ით 9 – ით.

ალბათ ყველას გსმენიათ PowerShell- ის შესახებ, მაგრამ ალბათ ყველას არ ჰქონდა ამის შესაძლებლობა იმუშავა. მათთვის, ვინც ახლახან იწყებს PowerShell- ის ჯუნგლებში, ჩვენ გთავაზობთ თარგმანის პოსტს, რომელიც გამოქვეყნებულია 4sysops.com– ზე. საუბარია 7 ბრძანებაზე, რაც მათ დაეხმარება, ვინც ახლახან დაიწყეს PowerShell– ით მუშაობა. დეტალებისთვის - კეთილი იყოს თქვენი კატა.

დახმარება-დახმარება

პირველი და ყველაზე მნიშვნელოვანი PowerShell cmdlet არის დახმარების ზარი. Get-Help cmdlet– ის გამოყენებით შეგიძლიათ შეამოწმოთ სინტაქსი, იხილეთ გამოყენების მაგალითები და ნებისმიერი PowerShell cmdlet პარამეტრების დეტალური აღწერა. ეს cmdlet აღსანიშნავია იმით, რომ თქვენ უბრალოდ შეგიძლიათ აკრიფოთ Get-Help სერვისები, რომ მიიღოთ ყველა cmdlet სია, რომლებიც შესაფერისია სამსახურებთან მუშაობისთვის.
  მაგალითი:
  PS C: \\\u003e მიიღეთ დახმარების სერვისი

თქვენ შეგიძლიათ აირჩიოთ ნებისმიერი cmdlet ზემოთ მოყვანილი მოთხოვნით ნაჩვენები სიიდან, რომ მიიღოთ დახმარება ამის შესახებ. მაგალითად
  PS C: \\\u003e მიღება-დახმარება - სახელის მიღება
  თქვენ იღებთ ყველა ინფორმაციას Get-Service cmdlet- ის შესახებ (შემდეგ განხილვა).


მიიღეთ შინაარსი

  ფაილების შინაარსის კითხვა ყველაზე გავრცელებული მოთხოვნაა დამწყებთათვის, რომლებიც ცდილობენ PowerShell ისწავლონ. PowerShell- ით ფაილების წაკითხვის პროცესი გამარტივებულია. თუნდაც ერთი ადამიანი შეიძლება წაიკითხოს ფაილის შინაარსი, უბრალოდ მასზე გადასატან cmdlet- ში.
  მაგალითი.
  PS C: \\\u003e მიღება-შინაარსის C: \\ სკრიპტები \\ კომპიუტერები.txt mytestpc1 techibee.com dummynotresolvinghost.com PS C: \\\u003e

გჭირდებათ მეტი ინფორმაცია cmdlet- ს შესახებ? გამოიყენეთ Get-Help:
  PS C: \\\u003e მიღება-დახმარების მიღება-შინაარსის შეცვლა

მიღება-მომსახურება

  ამ cmdlet ჩამოთვლის კომპიუტერში დამონტაჟებულ ყველა სერვისს. თქვენ შეგიძლიათ გამოიყენოთ ის, რომ მიიღოთ ინფორმაცია კონკრეტული სერვისის, სერვისების ერთობლიობის, ან უბრალოდ კომპიუტერში არსებული ყველა მომსახურების შესახებ.
  მაგალითი:
  PS C: \\\u003e Get-service wwansvc, spooler სტატუსის სახელი სახელი სახელი სახელი ------ ---- ----------- გაშვებული spooler ბეჭდვა სპულიერი შეჩერებულია wwansvc WWAN AutoConfig PS C: \\\u003e



  აქვე მოვითხოვეთ ინფორმაცია ორი სერვისის wwansvc და spooler- ის შესახებ
  ცხრილში ნაჩვენებია სამსახურის სტატუსი, მისი სახელი და დისპლეის სახელი.
  ვხედავთ, რომ სპულიერის მომსახურება მუშაობს და wwansvc შეჩერებულია

შეჩერება და სერვისი

  სამუშაოების დაწყება და შეჩერება საკმაოდ მნიშვნელოვანი პუნქტია სამუშაოში ვინდოუსის ადმინისტრატორი. PowerShell– ს \u200b\u200bაქვს ჩამონტაჟებული cmdlets, რომლებიც ამარტივებენ ადმინისტრატორის მუშაობას MMC– ს გახსნის გარეშე. ამ cmdlets გამოყენებით, თქვენ შეგიძლიათ შეაჩეროთ / დაიწყოს მომსახურება როგორც ადგილობრივ, ისე დისტანციურ კომპიუტერებზე.
  მაგალითები:
მომსახურების დაწყება / შეჩერება ადგილობრივ კომპიუტერზე (მაგალითად, სპულიერის სერვისის გამოყენებით):
  PS C: \\\u003e Stop-Service - სახელი Spooler PS C: \\\u003e Start-service- სახელი Spooler

სერვისის დაწყება / შეჩერება დისტანციური კომპიუტერი  (სპულიერი):
  PS C: \\\u003e $ ServiceObj \u003d მიღება-მომსახურება -კომპიუტერის სახელი MyPC1 - სახელი spooler PS C: \\\u003e Stop-Service -InputObj $ ServiceObj PS C: \\\u003e Start-Service -InputObj $ ServiceObj

მიღება-პროცესი

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

PS C: \\\u003e მიღება-პროცესი


შეიყვანეთ შემდეგი cmdlet, რომ დეტალური ინფორმაცია მიიღოთ მიმდინარე პროცესების შესახებ
  PS C: \\\u003e მიღება-პროცესი | ფორმატი-სია * –ფორტის

ინფორმაციის მიღება დისტანციური კომპიუტერიზე მიმდინარე პროცესების შესახებ:
  PS C: \\\u003e მიღება-პროცესი -კომპიუტერის სახელი MYPC1 | ფორმატი-სია * –ფორტის

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

შეჩერების პროცესი

  ეს cmdlet აჩერებს პროცესს ადგილობრივ ან დისტანციურ კომპიუტერზე. იგი იღებს სახელს ან ამუშავებს პირადობის მოწმობას და წყვეტს პროცესს. ეს გამოსადეგია, როდესაც განაცხადს არ პასუხობს.
  მაგალითი:
შეაჩერე პროცესი ID 22608 ადგილობრივ კომპიუტერზე:
  PS C: \\\u003e გაჩერების პროცესი - 22608
შეჩერეთ ყველა Excel პროცესი ადგილობრივ კომპიუტერზე:
  PS C: \\\u003e Stop-Process -name Excel

რჩევა: მიუხედავად იმისა, რომ Stop-Process cmdlet– ს არ გააჩნია –კომპიუტერის სახელის პარამეტრი, თქვენ კვლავ შეგიძლიათ გამოიყენოთ იგი დისტანციური პროცესების დასრულების მიზნით, ქვემოთ მოცემულ წინადადებაზე:
  PS C: \\\u003e $ ობიექტი \u003d მიღება-პროცესის-სახელი სახელი Excel-Computer Name MYPC1 PS C: \\\u003e Stop-process -InputObject $ Obj

განახლება:
  პოსტში მოცემულია სტატიის თარგმანი პორტალიდან