So schreibe ich Windows Update'r-Automat in Java. Für das Abrufen benötigten Daten aus Windows-Server ich verwende jPowerShell und ich habe stamble apon seltsames Problem während dieses SkriptVerschiedene PowerShell-Skript Verhalten in verschiedenen Konsole
$pw = ConvertTo-SecureString 'password' -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentList domein\login, $pw
Enter-PSSession -ComputerName IP -Credential $cred
$UpdateSession = [activator]::CreateInstance([type]::GetTypeFromProgID("Microsoft.Update.Session"))
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
$SearchResult = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")
$Critical = $SearchResult.updates | where { $_.MsrcSeverity -eq "Critical" }
$important = $SearchResult.updates | where { $_.MsrcSeverity -eq "Important" }
$other = $SearchResult.updates | where { $_.MsrcSeverity -eq $nul}
$totalUpdates = $($SearchResult.updates.count)
if($totalUpdates -gt 0)
{
$updatesToInstall = $true
}
else { $updatesToInstall = $false }
$other
$totalUpdates
$updatesToInstall
Java Aufruf Powershell-Skript
PowerShell ps = PowerShell.openSession();
PowerShellResponse response;
response = ps.executeScript("C:\\Users\\Prezes\\Desktop\\IsUpdateToInstal.ps1");
System.out.println(response.getCommandOutput());
Powershell-Skript ausführen, wenn ich dies ausführen Skript Zeile für Zeile in PowerShell-Standard-Consol-Everyting funktioniert gut und ordnungsgemäßer Wert zurückgegeben werden. Aber wenn ich dieses Skript in Powershell ISE Zeile für Zeile ausführen oder ausführen von Java bemerke ich ein Problem mit dieser Linie
$UpdateSession = [activator]::CreateInstance([type]::GetTypeFromProgID("Microsoft.Update.Session"))
, während ich diese Zeile und drücken Sie die Eingabetaste enter i in ISE sehen „bereits einen Befehl ausgeführt wird, Bitte warten Sie "wenn ich ein paar Minuten warte, ist die Kommunikation gleich und nichts ändert sich, aber wenn ich die Enter-Taste drücke, wird der Befehl sofort ausgeführt. Wenn von ihnen jetzt ich Rest des Drehbuchs laufen lasse, arbeite ich gut.
Wenn ich versuche, in ISE vollständige Skript excecute Ich bin geting diesem Fehler
Exception form HRESULT: 0x80072EE2
At C:\Users\Prezes\Desktop\IsUpdateToInstal.ps1:6 char:1
+ $SearchResult = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 a ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], COMException
+ FullyQualifiedErrorId : System.Runtime.InteropServices.COMExceptio
Java gibt mir null sagen, dass ich nicht auf Null-Objekt methond laufen reffering bis $ UpdateSearcher
Ich bin sehr früh beginer mit PowerShell und Skript, das ich benutze, ist reine Form einige Beispiel in Google gefunden.
Unter welchem Konto läuft das Java-Programm? – Persistent13
Mein Domein-Konto Windows 10 Home Premium –
Können Sie das Skript erfolgreich auf einem anderen Computer ausführen? – Persistent13