0

ドキュメントによると、get-scheduledjobは、所有者が現在のユーザーであるスケジュールされたジョブのみを返します。set-scheduledjobなどの他のスケジュールされたジョブコマンドレットも、所有者が現在のユーザーであるスケジュールされたジョブに対してのみ機能します。これにより、所有者以外の人がジョブのステータスを取得したり、ジョブを変更したり(他の資格情報を設定するなど)することができなくなります。

適切なIT組織では、これらのジョブがさまざまな管理者からの管理を可能にすることが重要であると言えます。

(所有者のappdataでPowerShell出力ファイルを直接確認する以外に)結果を管理、確認する方法がありませんか?

明確にするために-私は、ScheduledJobsを作成および管理するPowershellを操作する方法を探しています。UI、schtask、またはその他のスケジュールされたタスク固有のツールを使用してスケジュールされたジョブを実行するスケジュールされたタスクを変更すると、予期しない結果が発生します。所有者/クレデンシャルを変更すると、スケジュールされたタスクは失敗します。UI / schtasksを使用すると、問題を発生させることなくスケジュールを変更できます。所有者を変更するだけでなく、ジョブの進行状況を監視するためにget-jobの結果を取得したいと思います。

4

2 に答える 2

1

Powershellを使用してこれを機能させることができた唯一の方法は、schtask.exeユーティリティを呼び出すことでした。

注:「/ U」はローカル管理用で、「/ RU」はリモート管理用です。また、「/S」はローカルでの作業には必要ありません。

以前にタスクスケジューラからエクスポートされたXMLをインポートして作成します

[string]$string = 'schtasks.exe /create /RU yourdomain\username /RP $password /TN Task-Name /XML "D:\Path\To\ExportedXML.xml" /S ServerName'

消去:

[string]$string = 'schtasks.exe /delete /RU yourdomain\username /P $password /TN Task-Name /S ServerName /F'

クエリ:

[string]$string = 'schtasks.exe /query /RU yourdomain\username /P $password'

ローカルで実行:

Invoke-Expression -Command $string

リモートで実行:

Invoke-Command -ScriptBlock {$string}
于 2013-03-06T22:10:57.947 に答える
0

スケジュールされたタスクを管理するための PowerShell スクリプトをいくつか作成しました (それらは TaskService COM オブジェクトを使用します)。

Windows 7、Windows Server 2008、および Windows Vista でスケジュールされたタスクの名前を変更する

ハウツー: PowerShell を使用してスケジュールされたタスクをレポートする

スケジュールされたタスクの資格情報の更新

明細書

于 2013-03-07T00:30:35.370 に答える