ค้นหาเว็บไซต์

Set-Service (Microsoft.PowerShell.Management)


Set-Service

โมดูล :
Microsoft.PowerShell.Management

เริ่ม หยุด และระงับบริการ และเปลี่ยนแปลงคุณสมบัติ

ไวยากรณ์

Set-Service
   [-Name] <String>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-Status <String>]
   [-SecurityDescriptorSddl <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Service
   [-InputObject] <ServiceController>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-SecurityDescriptorSddl <String>]
   [-Status <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

คำอธิบาย

cmdlet นี้ใช้ได้เฉพาะบนแพลตฟอร์ม Windows เท่านั้น

Set-Service cmdlet จะเปลี่ยนคุณสมบัติของบริการ เช่น สถานะ, คำอธิบาย, ชื่อที่แสดง และ ประเภทการเริ่มต้น Set-Service สามารถเริ่ม หยุด ระงับ หรือหยุดบริการชั่วคราวได้ หากต้องการระบุบริการ ให้ป้อนชื่อบริการหรือส่งออบเจ็กต์บริการ หรือส่งชื่อบริการหรือออบเจ็กต์บริการลงไปที่ Set-Service

ตัวอย่าง

ตัวอย่างที่ 1: เปลี่ยนชื่อที่แสดง

ในตัวอย่างนี้ ชื่อที่แสดงของบริการมีการเปลี่ยนแปลง หากต้องการดูชื่อที่แสดงเดิม ให้ใช้ รับบริการ

Set-Service -Name LanmanWorkstation -DisplayName "LanMan Workstation"

Set-Service ใช้พารามิเตอร์ ชื่อ เพื่อระบุชื่อของบริการ LanmanWorkstation พารามิเตอร์ DisplayName ระบุชื่อที่แสดงใหม่ LanMan Workstation

ตัวอย่างที่ 2: เปลี่ยนประเภทการเริ่มต้นของบริการ

ตัวอย่างนี้แสดงวิธีการเปลี่ยนประเภทการเริ่มต้นของบริการ

Set-Service -Name BITS -StartupType Automatic
Get-Service BITS | Select-Object -Property Name, StartType, Status

Name  StartType   Status
----  ---------   ------
BITS  Automatic  Running

Set-Service ใช้พารามิเตอร์ ชื่อ เพื่อระบุชื่อของบริการ BITS พารามิเตอร์ StartupType ตั้งค่าบริการเป็น อัตโนมัติ

Get-Service ใช้พารามิเตอร์ ชื่อ เพื่อระบุบริการ BITS และส่งออบเจ็กต์ไปตามไปป์ไลน์ Select-Object ใช้พารามิเตอร์ Property เพื่อแสดงสถานะของบริการ BITS

ตัวอย่างที่ 3: เปลี่ยนคำอธิบายของบริการ

ตัวอย่างนี้เปลี่ยนคำอธิบายของบริการ BITS และแสดงผลลัพธ์

Get-CimInstance cmdlet ถูกใช้เนื่องจากส่งคืนออบเจ็กต์ Win32_Service ที่มี Description ของบริการ

Get-CimInstance Win32_Service -Filter 'Name = "BITS"'  | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth. If the service is
              disabled, then any applications that depend on BITS, such as Windows Update or MSN
              Explorer, will be unable to automatically download programs and other information.

Set-Service -Name BITS -Description "Transfers files in the background using idle network bandwidth."
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth.

Get-CimInstance ส่งออบเจ็กต์ไปตามไปป์ไลน์ไปที่ Format-List และแสดงชื่อและคำอธิบายของบริการ เพื่อวัตถุประสงค์ในการเปรียบเทียบ คำสั่งจะถูกรันก่อนและหลังการอัปเดตคำอธิบาย

Set-Service ใช้พารามิเตอร์ ชื่อ เพื่อระบุบริการ BITS พารามิเตอร์ คำอธิบาย ระบุข้อความที่อัปเดตสำหรับคำอธิบายของบริการ

ตัวอย่างที่ 4: เริ่มบริการ

ในตัวอย่างนี้ บริการจะเริ่มต้นขึ้น

Set-Service -Name WinRM -Status Running -PassThru

Status   Name               DisplayName
------   ----               -----------
Running  WinRM              Windows Remote Management (WS-Manag...

Set-Service ใช้พารามิเตอร์ ชื่อ เพื่อระบุบริการ WinRM พารามิเตอร์ สถานะ ใช้ค่า กำลังทำงาน เพื่อเริ่มบริการ พารามิเตอร์ PassThru ส่งออกออบเจ็กต์ ServiceController ที่แสดงผลลัพธ์

ตัวอย่างที่ 5: ระงับบริการ

ตัวอย่างนี้ใช้ไปป์ไลน์เพื่อหยุดให้บริการชั่วคราว

Get-Service -Name Schedule | Set-Service -Status Paused

Get-Service ใช้พารามิเตอร์ Name เพื่อระบุบริการ Schedule และส่งออบเจ็กต์ไปตามไปป์ไลน์ Set-Service ใช้พารามิเตอร์ สถานะ เพื่อตั้งค่าบริการเป็น หยุดชั่วคราว

ตัวอย่างที่ 6: หยุดบริการ

ตัวอย่างนี้ใช้ตัวแปรเพื่อหยุดบริการ

$S = Get-Service -Name Schedule
Set-Service -InputObject $S -Status Stopped

Get-Service ใช้พารามิเตอร์ ชื่อ เพื่อระบุบริการ กำหนดการ วัตถุถูกเก็บไว้ในตัวแปร $S Set-Service ใช้พารามิเตอร์ InputObject และระบุวัตถุที่เก็บไว้ $S พารามิเตอร์ สถานะ ตั้งค่าบริการเป็น หยุด

ตัวอย่างที่ 7: หยุดบริการบนระบบรีโมต

ตัวอย่างนี้หยุดบริการบนคอมพิวเตอร์ระยะไกล สำหรับข้อมูลเพิ่มเติม โปรดดูที่ เรียกใช้คำสั่ง

$Cred = Get-Credential
$S = Get-Service -Name Schedule
Invoke-Command -ComputerName server01.contoso.com -Credential $Cred -ScriptBlock {
  Set-Service -InputObject $S -Status Stopped
}

Get-Credential แจ้งชื่อผู้ใช้และรหัสผ่าน และจัดเก็บข้อมูลประจำตัวไว้ในตัวแปร $Cred Get-Service ใช้พารามิเตอร์ Name เพื่อระบุบริการ Schedule วัตถุถูกเก็บไว้ในตัวแปร $S

Inrigger-Command ใช้พารามิเตอร์ ComputerName เพื่อระบุคอมพิวเตอร์ระยะไกล พารามิเตอร์ ข้อมูลประจำตัว ใช้ตัวแปร $Cred เพื่อลงชื่อเข้าใช้คอมพิวเตอร์ ScriptBlock เรียก Set-Service พารามิเตอร์ InputObject ระบุวัตถุบริการที่เก็บไว้ $S พารามิเตอร์ สถานะ ตั้งค่าบริการเป็น หยุด

ตัวอย่างที่ 8: เปลี่ยนข้อมูลประจำตัวของบริการ

ตัวอย่างนี้เปลี่ยนข้อมูลประจำตัวที่ใช้ในการจัดการบริการ

$credential = Get-Credential
Set-Service -Name Schedule -Credential $credential

Get-Credential แจ้งชื่อผู้ใช้และรหัสผ่าน และจัดเก็บข้อมูลรับรองไว้ในตัวแปร $credential Set-Service ใช้พารามิเตอร์ ชื่อ เพื่อระบุบริการ Schedule พารามิเตอร์ ข้อมูลประจำตัว ใช้ตัวแปร $credential และอัปเดตบริการ กำหนดการ

ตัวอย่างที่ 9: เปลี่ยน SecurityDescriptor ของบริการ

ตัวอย่างนี้เปลี่ยน SecurityDescriptor ของบริการ

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL

SecurityDescriptor ถูกจัดเก็บไว้ในตัวแปร $SDDL Set-Service ใช้พารามิเตอร์ ชื่อ เพื่อระบุบริการ BITS พารามิเตอร์ SecurityDescriptorSddl ใช้ $SDDL เพื่อเปลี่ยน SecurityDescriptor สำหรับบริการ BITS

ตัวอย่างที่ 10: ตั้งค่าประเภทการเริ่มต้นสำหรับบริการต่างๆ

Set-Service cmdlet ยอมรับชื่อบริการครั้งละหนึ่งชื่อเท่านั้น อย่างไรก็ตาม คุณสามารถไปป์บริการหลายรายการไปที่ Set-Service เพื่อเปลี่ยนการกำหนดค่าของบริการหลายรายการ

Get-Service SQLWriter,spooler |
    Set-Service -StartupType Automatic -PassThru |
    Select-Object Name, StartType

Name      StartType
----      ---------
spooler   Automatic
SQLWriter Automatic

พารามิเตอร์

-Confirm

แจ้งให้คุณยืนยันก่อนเรียกใช้ Set-Service

พิมพ์ :

SwitchParameter

นามแฝง :

cf

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Credential

ระบุบัญชีที่ใช้โดยบริการเป็นบัญชีเข้าสู่ระบบบริการ

พิมพ์ชื่อผู้ใช้ เช่น User01 หรือ Domain01\User01 หรือป้อนออบเจ็กต์ PSCredential เช่น ออบเจ็กต์ที่สร้างโดย Get - cmdlet ข้อมูลรับรอง หากคุณพิมพ์ชื่อผู้ใช้ cmdlet นี้จะพร้อมท์ให้คุณใส่รหัสผ่าน

ข้อมูลประจำตัวจะถูกจัดเก็บไว้ในวัตถุ PSCredential และรหัสผ่านจะถูกจัดเก็บเป็น SecureString

บันทึก

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปกป้องข้อมูล SecureString โปรดดู SecureString มีความปลอดภัยเพียงใด

พารามิเตอร์นี้ถูกนำมาใช้ใน PowerShell 6.0

พิมพ์ :

PSCredential

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Description

ระบุคำอธิบายใหม่สำหรับบริการ

คำอธิบายบริการปรากฏใน การจัดการคอมพิวเตอร์ บริการ คำอธิบาย ไม่ใช่คุณสมบัติของออบเจ็กต์ Get-Service ServiceController หากต้องการดูรายละเอียดบริการ ให้ใช้ Get-CimInstance ที่ส่งคืนออบเจ็กต์ Win32_Service ที่แสดงถึงบริการ

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-DisplayName

ระบุชื่อที่แสดงใหม่สำหรับบริการ

บันทึก

โดยทั่วไปแล้ว Set-Service จะทำงานบนบริการของ Windows เท่านั้น ไม่ใช่ไดรเวอร์ อย่างไรก็ตาม หากคุณระบุชื่อของไดรเวอร์ Set-Service จะสามารถกำหนดเป้าหมายไดรเวอร์ได้

พิมพ์ :

String

นามแฝง :

DN

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Force

ระบุโหมดหยุดของบริการ พารามิเตอร์นี้ใช้งานได้เฉพาะเมื่อมีการใช้ -Status Stopped หากเปิดใช้งาน Set-Service จะหยุดบริการที่ต้องพึ่งพาก่อนที่บริการเป้าหมายจะหยุดทำงาน ตามค่าเริ่มต้น ข้อยกเว้นจะเกิดขึ้นเมื่อบริการที่ทำงานอยู่อื่นๆ ขึ้นอยู่กับบริการเป้าหมาย

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-InputObject

ระบุวัตถุ ServiceController ที่แสดงถึงบริการที่จะเปลี่ยนแปลง ป้อนตัวแปรที่มีออบเจ็กต์ หรือพิมพ์คำสั่งหรือนิพจน์ที่ได้รับออบเจ็กต์ เช่น คำสั่ง Get-Service คุณสามารถใช้ไปป์ไลน์เพื่อส่งออบเจ็กต์บริการไปที่ Set-Service

พิมพ์ :

ServiceController

ตำแหน่ง:

0

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

False

-Name

ระบุชื่อบริการของบริการที่จะเปลี่ยนแปลง ไม่อนุญาตให้ใช้อักขระตัวแทน คุณสามารถใช้ไปป์ไลน์เพื่อส่งชื่อบริการไปที่ Set-Service

บันทึก

โดยทั่วไปแล้ว Set-Service จะทำงานบนบริการของ Windows เท่านั้น ไม่ใช่ไดรเวอร์ อย่างไรก็ตาม หากคุณระบุชื่อของไดรเวอร์ Set-Service จะสามารถกำหนดเป้าหมายไดรเวอร์ได้

พิมพ์ :

String

นามแฝง :

ServiceName, SN

ตำแหน่ง:

0

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

False

-PassThru

ส่งกลับวัตถุ ServiceController ที่แสดงถึงบริการที่มีการเปลี่ยนแปลง ตามค่าเริ่มต้น Set-Service จะไม่สร้างเอาต์พุตใดๆ

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SecurityDescriptorSddl

ระบุ SecurityDescriptor สำหรับบริการในรูปแบบ Sddl บัญชีที่เรียก Set-Service ด้วยพารามิเตอร์นี้ต้องมีสิทธิ์ WRITE_DAC และ WRITE_OWNER สำหรับข้อมูลเพิ่มเติม โปรดดูที่ ความปลอดภัยของบริการและสิทธิ์การเข้าถึง

พิมพ์ :

String

นามแฝง :

sd

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-StartupType

ระบุโหมดเริ่มต้นของบริการ

ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้มีดังนี้:

  • อัตโนมัติ - บริการเริ่มต้นหรือเริ่มต้นโดยระบบปฏิบัติการเมื่อเริ่มต้นระบบ หากบริการที่เริ่มต้นโดยอัตโนมัติขึ้นอยู่กับบริการที่เริ่มต้นด้วยตนเอง บริการที่เริ่มต้นด้วยตนเองจะเริ่มต้นโดยอัตโนมัติเมื่อเริ่มต้นระบบด้วย
  • AutomaticDelayedStart - เริ่มต้นไม่นานหลังจากที่ระบบบู๊ต
  • ปิดใช้งาน - บริการถูกปิดใช้งานและไม่สามารถเริ่มต้นโดยผู้ใช้หรือแอปพลิเคชัน
  • InvalidValue - ไม่มีผลกระทบ cmdlet ไม่ส่งคืนข้อผิดพลาด แต่ไม่มีการเปลี่ยนแปลง StartupType ของบริการ
  • ด้วยตนเอง - บริการเริ่มต้นด้วยตนเองเท่านั้น โดยผู้ใช้ ใช้ Service Control Manager หรือโดยแอปพลิเคชัน
พิมพ์ :

บริการStartupType

นามแฝง :

StartMode, SM, ST, StartType

ค่าที่ยอมรับ:

อัตโนมัติ, AutomaticDelayedStart, ปิดการใช้งาน, InvalidValue, Manual

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Status

ระบุสถานะของการบริการ

ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้มีดังนี้:

  • หยุดชั่วคราว ระงับการให้บริการ
  • กำลังวิ่ง เริ่มบริการ
  • หยุดแล้ว หยุดบริการ
พิมพ์ :

String

ค่าที่ยอมรับ:

หยุดชั่วคราว วิ่ง หยุด

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-WhatIf

แสดงสิ่งที่จะเกิดขึ้นหาก Set-Service ทำงาน cmdlet ไม่ทำงาน

พิมพ์ :

SwitchParameter

นามแฝง :

wi

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

อินพุต

ตัวควบคุมบริการ

คุณสามารถไปป์วัตถุบริการไปยัง cmdlet นี้

สตริง

คุณสามารถไปป์สตริงที่มีชื่อบริการไปยัง cmdlet นี้

เอาท์พุต

ไม่มี

ตามค่าเริ่มต้น cmdlet นี้จะส่งกลับไม่มีผลลัพธ์

ตัวควบคุมบริการ

เมื่อคุณใช้พารามิเตอร์ PassThru cmdlet นี้จะส่งกลับวัตถุ ServiceController

หมายเหตุ

cmdlet นี้ใช้ได้เฉพาะบนแพลตฟอร์ม Windows เท่านั้น

Set-Service ต้องใช้สิทธิ์ระดับสูง ใช้ตัวเลือก เรียกใช้ในฐานะผู้ดูแลระบบ

Set-Service สามารถควบคุมบริการได้เมื่อผู้ใช้ปัจจุบันมีสิทธิ์ในการจัดการบริการเท่านั้น หากคำสั่งทำงานไม่ถูกต้อง คุณอาจไม่มีสิทธิ์ที่จำเป็น

หากต้องการค้นหาชื่อบริการหรือชื่อที่แสดง ให้ใช้ Get-Service ชื่อบริการอยู่ในคอลัมน์ ชื่อ และชื่อที่แสดงอยู่ในคอลัมน์ ชื่อที่แสดง

บทความที่เกี่ยวข้อง