Tôi không chắc liệu có cần gọi đa luồng, dựa trên công việc hay không đồng bộ, nhưng về cơ bản tôi có hàm Powershell cần vài tham số và cần phải gọi nó nhiều lần với các tham số khác nhau và có các lệnh này song song.Làm thế nào để thực hiện chức năng Powershell nhiều lần song song
Hiện nay, tôi gọi hàm như thế này:
Execute "param1" "param2" "param3" "param4"
Làm thế nào tôi có thể gọi đây là nhiều lần mà không cần chờ đợi cho mỗi cuộc gọi đến Execute trở lại cho người gọi?
Hiện nay tôi đang chạy v2.0 nhưng tôi có thể cập nhật nếu cần thiết
EDIT: đây là những gì tôi có cho đến nay, mà không làm việc:
$cmd = {
param($vmxFilePath,$machineName,$username,$password,$scriptTpath,$scriptFile,$uacDismissScript,$snapshotName)
Execute $vmxFilePath $machineName $username $password $scriptTpath $scriptFile $uacDismissScript $snapshotName
}
Start-Job -ScriptBlock $cmd -ArgumentList $vmxFilePath, $machineName, $username $password, $scriptTpath, $scriptFile, $uacDismissScript, $snapshotName
tôi nhận được một lỗi:
cannot convert 'system.object[]' to the type 'system.management.automation.scriptblock' required by parameter 'initializationscript'. specified method is not supported
EDIT2: Tôi đã sửa đổi tập lệnh nhưng vẫn gặp lỗi được đề cập ở trên. Đây là mod của tôi:
$cmd = {
param($vmxFilePath,$machineName,$username,$password,$scriptTpath,$scriptFile,$uacDismissScript,$snapshotName)
Execute $vmxFilePath $machineName $username $password $scriptTpath $scriptFile $uacDismissScript $snapshotName
}
Start-Job -ScriptBlock $cmd -ArgumentList $vmxFilePath, $machineName, $username $password, $scriptTpath, $scriptFile, $uacDismissScript, $snapshotName
Tôi vẫn đang gặp khó khăn lập bản đồ giải pháp của bạn để có được kịch bản của riêng tôi để làm việc. Tôi sẽ bắt đầu đơn giản, và chỉ cố gắng để có được Start-Job chạy scriptblock của tôi với các đối số mà hàm tùy chỉnh của tôi, Execute, yêu cầu. Có lẽ bạn có thể mở rộng? Là $ foo một tham số ngoài các tham số được chỉ định bởi param ($ a, $ b)? – JohnZaj
Tôi thấy bây giờ, cảm ơn. Tôi vẫn nhận được lỗi mặc dù. Nếu bạn không chắc chắn điều này có thể là gì, tôi sẽ chỉ tạo bài đăng/câu hỏi riêng. – JohnZaj
Đối với mục đích thử nghiệm, thay thế cuộc gọi của hàm 'Execute()' bằng mã chỉ lặp lại các tham số. Điều đó có hiệu quả không? Nếu có, vấn đề nằm ở hàm bạn muốn gọi. –