Ich schreibe einige ziemlich einfache Skripte in PowerShell 32-Bit und sie funktionieren gut.Powershell-Skripte funktionieren nicht mit Jenkins-Plugin unter Windows
Zum Beispiel möchte ich Internet Explorer zu einer Webseite öffnen und mit der Eingabe von Schlüsseln beginnen. Der folgende Code funktioniert einwandfrei, wenn ich ihn in Powershell ISE ausführe.
Add-Type –AssemblyName System.Windows.Forms
$url = "http://WebAddress"
$ie = New-Object -com "InternetExplorer.Application"
$ie.Navigate($url)
sleep 30
[System.Windows.Forms.SendKeys]::SendWait("{2}{tab}{H}{E}{L}{L}{O}")
Ich habe ein Windows PowerShell plugin heruntergeladen und haben den gleichen Code durchgeführt und erhielt die folgenden Fehler:
Building on master in workspace C:\Program Files\Jenkins\workspace\Jenkins Test
[Jenkins Test] $ powershell.exe -NonInteractive -ExecutionPolicy ByPass "& 'C:\WINDOWS\TEMP\hudson257018662776252417.ps1'"
New-Object : Creating an instance of the COM component with CLSID {0002DF01-000
0-0000-C000-000000000046} from the IClassFactory failed due to the following er
ror: 80004005.
At C:\WINDOWS\TEMP\hudson257018662776252417.ps1:4 char:17
+ $ie = New-Object <<<< -com "InternetExplorer.Application"
+ CategoryInfo : ResourceUnavailable: (:) [New-Object], COMExcept
ion
+ FullyQualifiedErrorId : NoCOMClassIdentified,Microsoft.PowerShell.Comman
ds.NewObjectCommand
You cannot call a method on a null-valued expression.
At C:\WINDOWS\TEMP\hudson257018662776252417.ps1:5 char:13
+ $ie.Navigate <<<< ($url)
+ CategoryInfo : InvalidOperation: (Navigate:String) [], RuntimeE
xception
+ FullyQualifiedErrorId : InvokeMethodOnNull
Exception calling "SendWait" with "1" argument(s): "Access is denied"
At C:\WINDOWS\TEMP\hudson257018662776252417.ps1:9 char:42
+ [System.Windows.Forms.SendKeys]::SendWait <<<< ("{2}{tab}{H}{E}{L}{L}{O}")
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
Gibt es einen Grund, warum mein Code nicht durch Jenkins arbeiten, wie es in Powershell tut ? Ich habe ein paar einfache Echoskripten ausprobiert, die gut funktionierten, aber komplizierter und es wurde ein Fehler ausgegeben.
Möglicherweise sind Abhängigkeiten auf Ihrem Build-Server vorhanden, die diese Fehler verursachen. –
Welchen Benutzer verwenden Sie zum Ausführen des jenkins-Agenten? Fehlende Berechtigungen können zu Problemen führen. COM-Objekte haben auch andere Berechtigungen zugeordnet. – JamesD
Könnten Sie näher auf diesen Anthony eingehen? Ich bin ein bisschen neu für Jenkins und wie man anfängt, die Situation zu verbessern. – LeChuck