PowerShell  - PART3
 

در ادامه معرفی Windows PowerShell به برخی دیگر از موارد موجود در این محیط می پردازیم .

در این بخش با Script نویسی در این محیط  آشنا می شویم .

در شروع برای نمونه یک Script ساده را در محیط PS اجرا می کنیم .

در اینجا توسط Code 1 ما می خواهیم سرویسهایی که نام آنها بر روی یک فایل Text بنام Services می باشد را Start و Stop کنیم و یا Startup Mode

آنها را تغییر دهیم .سرعت بالای اجرای Script ها  و دقت آن برای Admin می تواند بسیار مهم باشد .

 

foreach ($service in get-content services.txt) {
set-service $service -startuptype Automatic
"startuptype Automatic: $service" }

Code 1 - PSScript.PS1

برای این کار نام سرویسهای مد نطر خود را درون فایل Services.txt نوشته همانند شکل Figure 1 و نیز Code 1 را بر روی یک

فایل با پسوند PS1 کپی می کنیم.در کد بالا ما سرویسهای خود راکه در شکل 1 نامشان را می بینید در حالت Automatic قرار می دهیم بعد از اجرا .

  

      Figure 1: Services.txt

برای اجرا کد قبل از شروع باید هر دو فایل را در یک آدرس داشته باشید همانند شکل 2 دراینجا نام فایل Script ما PSScript.ps1 می باشد .

  

      Figure 2: Services.txt , PSScript.ps1

بر روی محیط PS شما نمی توانید یک Script را اینگونه اجرا کنید به همین دلیل قبل از اجرای آن باید دستور زیر را در محیط PS اجرا کنید:

  • Set-executionPolicy remoteSigned

مراحل اجرا را در شکل 3 می توانید مشاهده کنید برای اجرا فایل PS1 شما باید قبل از نام فایل دو علامت مشخص در شکل 3 را قرار دهید .

شما می توانید با دستور Set-Location به آدرس PSTestScripts بروید .

  • Set-Location c:\PSTestScripts

  

      Figure 3: PS - PSScript.PS1 (output)

شما همانند شکل 4 مشاهده می کنید که دو سرویس NetLogon و QoS RSVP به حالت Automatic درآمده اند بعد ار اجرای Script.

  

      Figure 4: Services

در مرحله بعد ما می خواهیم Script ما زمانی که اجرا می شود سرویسهای ما را Start کند و نوع آنها را نیز Automatic کند . برای این کار Code 2

را بر روی یک فایل بنام PSScript3.ps1 کپی می کنیم .

foreach ($service in get-content services.txt) {
set-service $service -startuptype Automatic
start-service $service
$name = get-wmiobject -query "select * from win32_service where name = '$service'"
if (get-service $service | where-object {$_.Status -eq "Running"} ) { "SRV Status = Running: $service ==> $name " }
}

Code 2 - PSScript3.ps1

بعد ار اجرای کد 2 همانند شکل 5 خروجی خواهید داشت البته در اینجا نام چند Service جدید دیگخ نیز به فایل Services.txt اضافه شده .

   

      Figure 5: PSScript3.ps1

نام هر سرویس را می توانید با Property گرفتن از آن سرویس مشاهده کنید همانند شکل 6 .

  

      Figure 6: Services - dmadmin (Logical Disk Manager Administrative Service) - Properties

بعد از اجرا مشاهده می کنید که سرویس DMADMIN بصورت Automatic درآمده و Start نیز شده.

همانند شکل 7 شما می توانید قایل PSSCript3.PS1 رامساهده کنید .

  

 

از این کد شما می توانید استفاده کنید برای سروهای خود و هر زمان که نیاز داشتید سرویسهای مختلف را بنا به سیساست خود و

کاری که Server باید انجام بدهد بر روی سرور  Automatic, Manual , Stop , Start  و یا Disable کنید با سرعت بالا و دقت کافی .

  foreach ($service in get-content services.txt) {
set-service $service -startuptype
Manual
Stop-service $service
$name = get-wmiobject -query "select * from win32_service where name = '$service'"
if (get-service $service | where-object {$_.Status -eq "Stop"} ) { "SRV Status = Stop: $service ==> $name " }
}

دو قسمتی که در کد بالا قرمز می باشد جاهایی می باشد که بکی از 5 مورد بالا را می توانید در آن قراردهید برای این کار دستورات زیر وجود دارد :

  •  Stop or Start Service

    • Stop-Service

    • Start-Service

    • Restart-Service

    • Suspend-Service

    • Resume-Service

  • - Startuptype

    • Disabled

    • Manual

    • Automatic

Last Updated: February 1, 2007

Winteacher.com
Expert Zone > PowerShell - PART3

 © 2003-2007 Winteacher.com . All rights reserved