簡體   English   中英

Powershell 腳本使用 S.no 停止和啟動 windows 服務

[英]Powershell script to Stop and start windows Service using S.no

我在文本文件中列出了我的 Windows 服務名稱,我添加了代碼以通過在名稱前面添加 S.no 來顯示它,

Listofservices.txt 包含

打印后台處理程序

Windows 更新

遠程桌面服務

Get-Content 'C:\Services\Listofservices.txt' | ForEach-Object  { $i = 1 } { "$i.$_" ; $i++ }

結果

  1. 打印后台處理程序
  2. Windows 更新
  3. 遠程桌面服務

現在我想停止,只輸入 S.no 來啟動服務,我不想輸入確切的全名

$userinput = read-host -prompt "Enter the S.no to Stop/Start"
Stop-Service -Name "$userinput" -Force -Confirm

例如,如果我輸入數字 1,Print Spooler 服務將停止

這是您可以按照已有代碼執行此操作的一種方法,但如評論中所述,使用Out-GridView -PassThru執行此操作要簡單得多。 另請注意,對於這些服務,PowerShell 進程很可能需要提升。

$file = Get-Content path\to\file.txt
$file | ForEach-Object  { $i = 1 } { "$i.$_" ; $i++ }
$userinput  = Read-Host "Enter the S.no to Stop/Start"
try {
    $choice = $file[-1 + $userinput]
    if(-not $choice) {
        throw 'Invalid selection..'
    }

    $service = Get-Service $choice
    if('Running' -eq $service.Status) {
        $service.Stop()
        "$($service.Name) has been stopped.."
        return # end the script here
    }

    $service.Start()
    "$($service.Name) has been started.."
}
catch {
    if($_.Exception.InnerException.InnerException.NativeErrorCode -eq 5) {
        return "Process needs to be elevated."
    }
    "An error ocurred: $_"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM