Get-WMIObject
パラメータを受け入れ-Credential
ます。スクリプト内で資格情報をプレーン テキストのままにしておくべきではないため、プロンプトを表示する必要があります。
$creds = get-credential;
(Get-WmiObject -Computer myCompName Win32_Service -Filter "Name='myServiceName'" -credential $creds).InvokeMethod("Stop-Service",$null)
リモート システムで PSRemoting を有効にしている場合は、WMI を使用せずにこれを行うことができます。
$creds = get-credential;
Invoke-Command -computername myCompName -credential $creds -scriptblock {(get-service -name myServiceName).Stop()};
コメントに基づいて更新
これはスケジュールされたジョブとして実行しているため、資格情報を保存したり、プロンプトを表示したりする必要はまったくありません。必要なユーザー アカウントで実行するように (スケジュールされたタスクを介して) スケジュールされたジョブ自体を構成すると、次のいずれかが機能するはずです。
# Your original code
(Get-WmiObject -Computer myCompName Win32_Service -Filter "Name='myServiceName'").InvokeMethod("Stop-Service",$null)
# If you have remoting enabled
Invoke-Command -computername myCompName -scriptblock {(get-service -name myServiceName).Stop()};