質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

3回答

7645閲覧

PowerShellのタスクスケジューラ登録コマンドレットでエラー

dai3922

総合スコア34

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2017/10/17 04:50

Windows10では下記コマンドレットでタスクスケジューラへの
タスク登録を正常に行うことが出来ますが、
Windows7では登録する方法はないのでしょうか?

New-ScheduledTask
New-ScheduledTaskTrigger
New-ScheduledTaskSettingsSet

MicrosoftのDeveloperNetwork(https://technet.microsoft.com/ja-jp/library/jj649821(v=wps.630).asp...)を確認したところ、
いずれのコマンドレットも「Windows Server 2012 R2 and Windows 8.1」と
明記されておりWindows7対応はしていないと考えております。
なお、Win10もWin7でも共にPowerShellバージョンは5.1です。

Win7でも現在のスクリプトを活用できればベストですが、
出来ない場合は他のコマンドレットを探しております。

ご存じの方がいらっしゃいましたらお教え頂けないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こんにちは。
gitya107 さんが答えている通りWindows7で

  • New-ScheduledTask
  • New-ScheduledTaskTrigger
  • New-ScheduledTaskSettingsSet

を使う方法はありません。
これは、これらのコマンドレットがPowerShellではなく新しいOSのWMIに依存しているためです。

Windows 7標準機能としてはschtasks.exe使うしか方法はありません。


どうしてもPowerShellを使いたい、ということであればこのへんのインターフェイスをC#などで実装しAdd-Typeするといった事はできそうですが、正直まったくお勧めできません。

【ちょっと追記】

未検証ですがこちらのライブラリ(Task Scheduler Managed Wrapper)でPowerShellを使ったサンプルがありました。

https://github.com/dahall/TaskScheduler/wiki/PowerShell

これを試してみるのも一つの解かもしれません。

投稿2017/10/17 07:14

編集2017/10/17 07:26
stknohg

総合スコア796

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dai3922

2017/10/23 00:55

返信の順序が前後してしまいますが、ご回答頂き、ありがとうございます。 タスクスケジューラ登録のコマンドレットが「OSのWMIに依存」という言葉を 頂き、腑に落ちました。 ここで頂いた情報は私の学習不足で難解でした。 せっかく良いテーマを頂きましたので折を見てこちらの方法もトライしてみようと思います。 ありがとうございました。
guest

0

自己解決

お二方、さっそくご親切な回答を頂きありがとうございます。

PowerShellで実現、と前提しておきながら大変恐縮ですが、
schtasksコマンドで実現することが出来ました。
前置きが長くなりますが、shtasksではノートパソコンなどでAC電源に接続していない場合に
動作させることが仕様上不可能で、PowerShellに行き着きました。

しかしながら、お二方の回答をヒントに調べていたところ
下記のサイトで似た悩みを持つ方がユニークな方法で自己解決されていたので
紹介させて頂きます。

リンク内容

任意に設定したタスクをxmlにエクスポートし、schtasksでインポート・登録させる方法です。
この方法ならば任意の設定を自由に行うことが可能です。
ユニークというか、発想がなかったので目からうろこでした。

ご協力頂き、ありがとうございました。

投稿2017/10/19 02:36

編集2017/10/19 02:37
dai3922

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

stknohg

2017/10/19 04:24

解決した様でよかったです。 schtasks /xmlは結構便利なのでWindows7であればそれを使うのがベストだと思います。 私はPowerShellから以下の様なコードを書いて使う事が多いです。 # XMLからタスク追加 @" <?xml version="1.0" encoding="UTF-16"?> <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>$(Get-Date -Format "yyyy-MM-ddTHH:mm:ss")</Date> <Author>$env:username</Author> </RegistrationInfo> <!-- 以下略 --> </Task> "@ -replace "`n", "`r`n" | Out-File $xmlPath $args = "/Create /TN ""{0}"" /XML {1} /F" -F $taskName, $xmlPath Start-Process "SchTasks.exe" -ArgumentList @($args) -Wait -NoNewWindow # 使ったXMLファイルを削除 if( Test-Path $xmlPath -PathType Leaf ) { Remove-Item $xmlPath }
dai3922

2017/10/23 00:52

ご回答頂きありがとうございました。 ご連絡が遅くなりすみません、返信を書いたつもりが投稿できていませんでした。 重ね重ね、参考コードまで頂きありがとうございます。 内容を理解しながらスクリプトをブラッシュアップしていきたいと思います。 どうもありがとうございました。
guest

0

軽く調べた限りはダメな感じですね
下記ブログに対応方法が載っていました。こちらでどうでしょうか。
http://nasunoblog.blogspot.jp/2015/01/powershell-how-to-execute-remote-task-from-the-local.html

投稿2017/10/17 05:04

gitya107

総合スコア706

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dai3922

2017/10/23 00:48

ご回答頂き、ありがとうございました。 機会を見つけてこちらの方法も試してみます。 とても参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問