带有REST API调用的Powershell脚本不会在Startup上运行

时间:2015-08-03 19:02:56

标签: rest powershell startupscript

我有一个Powershell脚本,它调用REST API调用以从服务器获取证书。如果我从机器手动触发脚本,脚本运行正常。但是,当我使用以下步骤设置脚本以在Start运行时: 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

1 个答案:

答案 0 :(得分:0)

一旦我找到问题的解决方案,我就完全忘记了这个问题。提出答复/答案 - 以防有人提出此问题或面临类似问题。

在设置计划任务以在启动时运行时,Windows 7在***设置中真的很痛苦。第三个选项卡Action在Settings部分下有三个字段:Program / script,Add arguments(可选)和Start in(可选)。

'开始(可选)'字段不是可选的。

我在Program / script字段下指定了脚本的路径(例如 - C:\ Test \ test.bat),然后将'Start in(optional)'字段设置为'C:\'。

一切都像是一种魅力。