よろしくお願いします。

やりたいこと
あるURLをリクエストするとファイルが自動的にダウンロードされます。
この処理を自動化してWindowsのタスクスケジューラーに登録したいと考えています。

下記のシェルを記述してPOWERSHELL ISEでは問題なく動いたのですが、バッチファイルから
呼び出すと以下の部分でエラーが出ます。同様にPOWERSHELLのコマンドプロンプトから実行しても同じエラーが出ます。3日ほど悩んだのですが理由が分からずお分かりになるかとのコメントを頂けると助かります。

やっていることはIEのダウンロードダイヤログボックスで保存ボタンをSendKeyで処理しようとしています。

[System.Windows.Forms.SendKeys]::SendWait("%({S})")

スクリプト

$url = "https://hoge.com/?un=userID&pass=password?file=00O7F00000AnYio?export=1"
$shell = New-Object -ComObject Shell.Application

# IE起動
$ie = New-Object -ComObject InternetExplorer.Application

# 可視化
$ie.Visible = $true

# URLオープン(キャッシュ無効)
$ie.Navigate($url,4)

While($ie.Busy)
{ Start-Sleep -s 1 }                                      

Start-Sleep 2 

[System.Windows.Forms.SendKeys]::SendWait("%({S})")

Start-Sleep 2 

$ie.Quit()

実行例

C:\TEST>powershell -ExecutionPolicy Unrestricted -File c:\TEST\sample.ps1
型 [System.Windows.Forms.SendKeys] が見つかりません。
発生場所 C:\TEST\sample.ps1:21 文字:1
+ [System.Windows.Forms.SendKeys]::SendWait("%({S})")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Windows.Forms.SendKeys
   :TypeName) []、RuntimeException
    + FullyQualifiedErrorId : TypeNotFound

C:\TEST>pause
続行するには何かキーを押してください . . .