2017-10-01 12 views
0

このスクリプトには、パラメータ(サービスを停止する)を受け入れる機能があります。スクリプトを次のように実行しました。しかし、サービスは止まらないでしょう。何らかの理由でコンソールに何も書き込まれていません。書き込みホストはどこに書き込まれていますか?私はWindows 8 OSでPowershell Version 4.0を使用しています。Windowsサービスが動作しないようにするPowershellスクリプト。エラーはスローされません

.\MywindowsService.ps1 Dhcp -force 

    function StopWindowsService 
    { 
     Param([string] $ServiceName) 
     $aService = Get-Service -Name $ServiceName 
     if ($aService.Status -ne "Stopped") 
     { 
       Stop-Service $ServiceName 
       Write-Host "Stopping " $ServiceName " service" 
       " ---------------------- " 
       " Service is now stopped" 
     } 

     if ($aService.Status -eq "stopped"){ 
      Write-Host "$ServiceName service is already stopped" 
     } 

    } 
+1

'function'宣言を削除します。' StopWindowsService'は決して呼び出されません。 – sodawillow

+0

。\ MywindowsService.ps1 StopWindowsService Dnscache -force。まだ動作しません。サービスコンソールからそのサービスを停止しようとしました。私は "内部エラー"を取得します。私はコンピュータを再起動して、再度powershell機能を試してみる必要があるかもしれません。ところで、 "Write-Host"がコンソールに書き込めない理由を知っていますか? – Jason

答えて

1

あなたはこれを試みることができる - mywindowsservice.ps1:

Param([string] $ServiceName) 

$aService = Get-Service -Name $ServiceName 

if ($aService.Status -ne "Stopped") { 
    Stop-Service $ServiceName 
    Write-Host "Stopping " $ServiceName " service" 
    " ---------------------- " 
    " Service is now stopped" 
} 

if ($aService.Status -eq "stopped") { 
    Write-Host "$ServiceName service is already stopped" 
} 

コール:

.\mywindowsservice.ps1 dhcp 

function StopWindowsServiceの宣言は、あなたが実際にPS1ファイル内StopWindowsServiceをコールする必要があることを意味コードを実行します。ここでは必要ありません。

+0

私はdidnの方法で間違っている – Jason

+0

@ジェイソン私は説明を追加しました – sodawillow

関連する問題