Hallo Leute,
ich versuche folgendes:
Über Powershell eine Liste generieren die im ResourcePool mit dem Namen "STAGING" liegen.
Soweit wunderbar. Das Portshell:
Set-executionpolicy unrestricted -force
$ErrorActionPreference="SilentlyContinue"
Add-PSSnapin VMware.VimAutomation.Core
Connect-VIServer -server $VIServer -user $VIUserName -Password $VIPassWord -Force
$MyStagingPoolVMS=Get-ResourcePool -Name STAGING | Get-VM
in der "$MyStagingPoolVMS", stehen nun alle VMS drinnen. Perfekt!
Nun wollte ich im Workflowstudio, für jede VM in der Liste einen Task erstellen lassen, welcher an die verantwortlichen geht...
Ich dachte nun an einen ForEach. Allerdings meckert mich das Ding immer wegen den Datentypen an. Egal welchen ich nun auch verwende...
Was übersehe ich denn nu schon wieder?
Danke!!
Danke!
Workflowstudio -> ForEach?!?
Re: Workflowstudio -> ForEach?!?
was gibt er denn bei $MyStagingPoolVMS.GetType() zurück?
Hatte mal ähnliche Probleme, da musste ich vor die Variable den Typ (String Array) explizit festlegen.
Also
[string[]] $MyStagingPoolVMS=Get-ResourcePool -Name STAGING | Get-VM
Hatte mal ähnliche Probleme, da musste ich vor die Variable den Typ (String Array) explizit festlegen.
Also
[string[]] $MyStagingPoolVMS=Get-ResourcePool -Name STAGING | Get-VM
Tria-media - IT Solutions
Re: Workflowstudio -> ForEach?!?
Hi,Sven_Puth wrote:was gibt er denn bei $MyStagingPoolVMS.GetType() zurück?
Hatte mal ähnliche Probleme, da musste ich vor die Variable den Typ (String Array) explizit festlegen.
Also
[string[]] $MyStagingPoolVMS=Get-ResourcePool -Name STAGING | Get-VM
Danke für die Anwort. Werde den mal angehen.
Das WF, konnte ich aber dazu bewegen, zumindest kein rotex X auszugeben, nachdem ich den datentyp auf "System.Management.Automation.PSObject"
Dann war aber der Feierabend schon erreicht. Habe alos nicht weiter gemacht...
Re: Workflowstudio -> ForEach?!?
Hallo,
hatte nun endlich Zeit hier weiter zu machen. Soweit so gut. Kann nun für jede VM in dem SATGING POOL einen Task generieren.
Ohne dem Tip von Sven_Puth, gings aber nicht.
Kann mir nun einer sagen, wie ich im WF, auf die Daten des Arrays zu greifen kann?
Ich müsste jetzt noch für jedes Item aus dem Array Details aus dem VC abholen...
In der Powershell, mache ich das so:
$MyVM=Get-ResourcePool -Name STAGING | Get-VM | Select Name
ForEach ($PSItem in $MyVM)
{
$MyVM=Get-VM $PSItem.Name | Select-Object -Property *
$VMUUID=Get-VM $PSItem.Name| %{(Get-View $_.Id).config.uuid}
$VISerialTemp= $VMUUID.Replace("-",$Null).Insert(2," ").Insert(5," ").Insert(8," ").Insert(11," ").Insert(14," ").Insert(17," ").Insert(20," ").Insert(23,"-").Insert(26," ").Insert(29," ").Insert(32," ").Insert(35," ").Insert(38," ").Insert(41," ").Insert(44," ")
$VISerial="VMware-"+"$VISerialTemp"
$MyVMName=$MyVM.name
$MyVMVersion=$MyVm.Version
Write-Host $MyVMName + $MyVMVersion + $VISerial
}
Ich müsste es jetzt noch schaffen, das dem WF bei zu bringen, damit ich dann sinnvolle Tasks generieren kann.
-> Pro VM, einen task, mit den detailierten Informationen zu dieser VM.
Im WF, wird mir die Variable so ausgespuckt:
@{Name=trlsrv}, @{Name=TH0310WIN7X86},...
Ich müsste pro Item auf den Namen kommen und den an ein weiteres Powershell übergeben, welches sich dann die Details abholt.
Kann einer helfen?
Danke!!
hatte nun endlich Zeit hier weiter zu machen. Soweit so gut. Kann nun für jede VM in dem SATGING POOL einen Task generieren.
Ohne dem Tip von Sven_Puth, gings aber nicht.
Kann mir nun einer sagen, wie ich im WF, auf die Daten des Arrays zu greifen kann?
Ich müsste jetzt noch für jedes Item aus dem Array Details aus dem VC abholen...
In der Powershell, mache ich das so:
$MyVM=Get-ResourcePool -Name STAGING | Get-VM | Select Name
ForEach ($PSItem in $MyVM)
{
$MyVM=Get-VM $PSItem.Name | Select-Object -Property *
$VMUUID=Get-VM $PSItem.Name| %{(Get-View $_.Id).config.uuid}
$VISerialTemp= $VMUUID.Replace("-",$Null).Insert(2," ").Insert(5," ").Insert(8," ").Insert(11," ").Insert(14," ").Insert(17," ").Insert(20," ").Insert(23,"-").Insert(26," ").Insert(29," ").Insert(32," ").Insert(35," ").Insert(38," ").Insert(41," ").Insert(44," ")
$VISerial="VMware-"+"$VISerialTemp"
$MyVMName=$MyVM.name
$MyVMVersion=$MyVm.Version
Write-Host $MyVMName + $MyVMVersion + $VISerial
}
Ich müsste es jetzt noch schaffen, das dem WF bei zu bringen, damit ich dann sinnvolle Tasks generieren kann.
-> Pro VM, einen task, mit den detailierten Informationen zu dieser VM.
Im WF, wird mir die Variable so ausgespuckt:
@{Name=trlsrv}, @{Name=TH0310WIN7X86},...
Ich müsste pro Item auf den Namen kommen und den an ein weiteres Powershell übergeben, welches sich dann die Details abholt.
Kann einer helfen?
Danke!!
Who is online
Users browsing this forum: No registered users and 5 guests