2

REST API 呼び出しを呼び出してサーバーから証明書を取得する Powershell スクリプトがあります。マシンから手動でトリガーすると、スクリプトは問題なく実行されます。ただし、次の手順を使用して開始時に実行するようにスクリプトをセットアップすると: http://blogs.technet.com/b/heyscriptingguy/archive/2014/05/14/use-powershell-to-create-job-that- runs-at-startup.aspxの場合、スクリプトはまったく実行されません。

上記の記事で説明したように、同じ StartUp フォルダーの下に .bat スクリプトをセットアップすると、正常に実行されます。

問題の解決またはデバッグに役立つポインタや提案は役に立ちます。

編集:これがスクリプトです

# Fake the Certificate Validation as we are using a HTTPS request without a real cert
 Add-Type @"
     using System.Net;
    using System.Security.Cryptography.X509Certificates;
     public class TrustAllCertsPolicy : ICertificatePolicy {
         public bool CheckValidationResult(
             ServicePoint srvPoint, X509Certificate certificate,
             WebRequest request, int certificateProblem) {
             return true;
         }
     }
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

$uri = "https://10.X.Y.Z/webapp-rest/login?&user=user1&pw=super_secure"
$res = Invoke-WebRequest -Uri $uri -Method Post

$headers = @{}
$headers.Add('Authorization', $res.Headers.Authorization)


$uri1 = "https://10.X.Y.Z/webapp-rest/certificate"   
$sm = Invoke-RestMethod -Uri $uri1 -Headers $headers -ContentType application/x-x509-ca-cert -OutFile "cert.pem"

Move-Item C:\cert.pem C:\Users\Administrator\Downloads -Force
4

1 に答える 1

1

問題の解決策を見つけたら、この質問を完全に忘れていました。応答/回答を出す - 誰かがこの質問にたどり着いたり、同様の問題に直面した場合に備えて。

Windows 7 では、スケジュールされたタスクを起動時に実行するように設定するときに、*** 設定にこのような問題があります。3 番目のタブの [アクション] には、[設定] セクションの下に 3 つのフィールドがあります: プログラム/スクリプト、引数の追加 (オプション)、開始 (オプション)。

「Start in(optional)」フィールドはオプションではありません。

[Program/script] フィールド (例: C:\Test\test.bat) でスクリプトへのパスを指定し、[Start in(optional)] フィールドを [C:\] に設定しました。

その後、すべてが魅力のように機能しました。

于 2016-12-26T17:35:18.103 に答える