我解決了這個通過創建一個運行PowerShell命令和讀取結果信息回的過程:
Process p = new ProcessBuilder()
.command("powershell", "invoke-command", "-computerName", "MYCOMPUTER", "-filepath", ".\\someScript.psl")
.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
p.waitFor();
List<String> results = new LinkedList();
String line;
while ((line == reader.readLine()) != null) results.add(line);
results
現在包含您創建的過程中的所有結果的輸入。下面是包含在someScript.psl
文件中的腳本:
$sched = New-Object -Com "Schedule.Service"
$sched.connect()
$out = @()
$sched.GetFolder("\").GetTasks(0) | % {
$xml = [xml]$_.xml
$out += New-Object psobject -Property @{
"Name" = $_.Name
"Status" = switch($_.State) {0 {"Unknown"} 1 {"Disabled"} 2 {"Queued"} 3 {"Ready"} $ {"Running"}}
"NextRunTime" = $_.NextRunTime
"LastRunTime" = $_.LastRunTime
"LastRunResult" = $_.LastTaskResult
"Author" = $xml.Task.Principals.Principal.UserID
"Created" = $xml.Task.RegistrationInfo.Date
}
}
$out | fl Name, Status, NextRunTime, LastRunTime, LastRunResult, Author, Created
在發佈之前,您是否嘗試過在Stack Overflow或Google上尋找可能的幫助?根據你當前的問題,有人不太可能會給你所需的完整代碼。 –