<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: run powercli function  as job in VMware PowerCLI Discussions</title>
    <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967233#M111859</link>
    <description>&lt;P&gt;this is the loop where call the vm and pass the the info to the Job,&amp;nbsp; i ca not see where it is passing blank,&amp;nbsp;&lt;/P&gt;&lt;P&gt;$jobs = @()&lt;/P&gt;&lt;P&gt;foreach ($vmName in $vmNames) {&lt;BR /&gt;&lt;BR /&gt;Write-Host " Processing $vmName Vm...." -ForegroundColor Green&lt;BR /&gt;&lt;BR /&gt;$vm = Get-VM -Name $vmName -server $vCentre&lt;BR /&gt;&lt;BR /&gt;$job = Start-Job -Name $vm.Name -ArgumentList $vm.Name -ScriptBlock ${function:Update-VM}&lt;/P&gt;&lt;P&gt;$jobs += $job&lt;BR /&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 08 May 2023 10:05:03 GMT</pubDate>
    <dc:creator>plaman</dc:creator>
    <dc:date>2023-05-08T10:05:03Z</dc:date>
    <item>
      <title>run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967217#M111854</link>
      <description>&lt;P&gt;I have multi vCenters I need to run yum update to all Linux servers, on all sites, so I have written an update function&lt;/P&gt;&lt;P&gt;I need to run that inside a job script, and return the result, the job is stuck at running&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;function Update-VM {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; [CmdletBinding()]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Param(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [Parameter(Mandatory = $true, ValueFromPipeline = $true)]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $vm&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Import-Module VMware.VimAutomation.Core&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; # Take a snapshot of the virtual machine&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Write-Host "Taking a Sbapshot For $vm..." -ForegroundColor Green&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $snapshot = New-Snapshot -VM $vm -Name $snapshotName -Description "Snapshot taken before update" -Confirm:$false&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; # Update the virtual machine using yum&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $updateCommand = " yum update -y"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; $Push=(Invoke-VMScript -VM $vm -GuestCredential $LinCredentials -ScriptText $updateCommand -ScriptType Bash).ScriptOutput&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; # Restart the virtual machine&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Restart-VMGuest -VM $vm -Confirm:$false&lt;/P&gt;&lt;P&gt;&amp;nbsp;Write-Host "passed 3"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; # Wait for VMware Tools to start&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; do {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $CheckPower=Check-Connection -IP $Ip -vmname $vm -vCentre $vCentre -ConnectionRequest "STARTINGUP"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $PingStatus&amp;nbsp;&amp;nbsp;&amp;nbsp; =$CheckPower[0]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $VMPowerStatus =$CheckPower[1]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; } until ($PingStatus -eq "Reachable")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; # Check if the virtual machine is running&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if ((Get-VM -Name $vm).PowerState -eq "PoweredOn") {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create a test directory on the virtual machine&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $testDir = "/etc/checkarcher"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $testCommand = "mkdir $testDir"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Invoke-VMScript -VM $vm -GuestCredential $LinCredentials -ScriptText $testCommand -ScriptType Bash&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Check if the test directory exists&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $testDirExists = Invoke-VMScript -VM $vm -GuestCredential $LinCredentials -ScriptText " ls -d $testDir &amp;gt;/dev/null 2&amp;gt;&amp;amp;1 &amp;amp;&amp;amp; echo ""Directory exists"" || echo ""Directory does not exist"""&amp;nbsp; -ScriptType Bash | Select-Object -ExpandProperty ScriptOutput&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $testDirExists= $testDirExists.Trim()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Remove the test directory if it exists&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ($testDirExists -eq "Directory exists") {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $removeCommand = "rm -r $testDir"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Invoke-VMScript -VM $vm -GuestCredential $LinCredentials -ScriptText $removeCommand -Server&amp;nbsp; $vCentre -ScriptType Bash&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host "Virtual machine $($vm) successfully updated and restarted."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Warning "Virtual machine $($vm) failed to start after update."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; } else {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Warning "Virtual machine $($vm) failed to restart after update."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 08:29:46 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967217#M111854</guid>
      <dc:creator>plaman</dc:creator>
      <dc:date>2023-05-08T08:29:46Z</dc:date>
    </item>
    <item>
      <title>Re: run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967220#M111855</link>
      <description>&lt;P&gt;How do you start the jobs?&lt;BR /&gt;And how do you pass that function in the jobs?&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 08:58:34 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967220#M111855</guid>
      <dc:creator>LucD</dc:creator>
      <dc:date>2023-05-08T08:58:34Z</dc:date>
    </item>
    <item>
      <title>Re: run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967224#M111856</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Start-Job -Name $vm.Name -Argument List $vm.Name -Script Block ${function: Update-VM}&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 09:23:16 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967224#M111856</guid>
      <dc:creator>plaman</dc:creator>
      <dc:date>2023-05-08T09:23:16Z</dc:date>
    </item>
    <item>
      <title>Re: run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967229#M111857</link>
      <description>&lt;P&gt;Why do you have those blanks in &lt;STRONG&gt;-ArgumentList&lt;/STRONG&gt; and &lt;STRONG&gt;function:Update-VM&lt;/STRONG&gt;?&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 09:47:18 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967229#M111857</guid>
      <dc:creator>LucD</dc:creator>
      <dc:date>2023-05-08T09:47:18Z</dc:date>
    </item>
    <item>
      <title>Re: run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967230#M111858</link>
      <description>&lt;P&gt;Also, if the $vm variable is not defined inside your Start-Job script, you will have to use the using: qualifier.&lt;BR /&gt;The Start-Job creates a new PS environment, your current local variables are not known in that environment.&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;Start-Job -Name $vm.Name -ArgumentList $using:vm.Name -ScriptBlock ${function: Update-VM}&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 09:57:00 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967230#M111858</guid>
      <dc:creator>LucD</dc:creator>
      <dc:date>2023-05-08T09:57:00Z</dc:date>
    </item>
    <item>
      <title>Re: run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967233#M111859</link>
      <description>&lt;P&gt;this is the loop where call the vm and pass the the info to the Job,&amp;nbsp; i ca not see where it is passing blank,&amp;nbsp;&lt;/P&gt;&lt;P&gt;$jobs = @()&lt;/P&gt;&lt;P&gt;foreach ($vmName in $vmNames) {&lt;BR /&gt;&lt;BR /&gt;Write-Host " Processing $vmName Vm...." -ForegroundColor Green&lt;BR /&gt;&lt;BR /&gt;$vm = Get-VM -Name $vmName -server $vCentre&lt;BR /&gt;&lt;BR /&gt;$job = Start-Job -Name $vm.Name -ArgumentList $vm.Name -ScriptBlock ${function:Update-VM}&lt;/P&gt;&lt;P&gt;$jobs += $job&lt;BR /&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 10:05:03 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967233#M111859</guid>
      <dc:creator>plaman</dc:creator>
      <dc:date>2023-05-08T10:05:03Z</dc:date>
    </item>
    <item>
      <title>Re: run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967240#M111860</link>
      <description>&lt;P&gt;is there anyway where avoid adding&amp;nbsp;Connect-VIServer $vCentre in the function ? use a $Globale one&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 10:32:05 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967240#M111860</guid>
      <dc:creator>plaman</dc:creator>
      <dc:date>2023-05-08T10:32:05Z</dc:date>
    </item>
    <item>
      <title>Re: run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967242#M111861</link>
      <description>&lt;P&gt;No, you can use the Session parameter to connect to an existing session in the Start-Job codeblock.&lt;BR /&gt;See for example&amp;nbsp;&lt;A href="https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Pass-vCenter-connection-to-a-Job/m-p/1868847/highlight/true#M64510" target="_blank"&gt;Solved: Re: Pass vCenter connection to a Job - VMware Technology Network VMTN&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 10:50:28 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967242#M111861</guid>
      <dc:creator>LucD</dc:creator>
      <dc:date>2023-05-08T10:50:28Z</dc:date>
    </item>
    <item>
      <title>Re: run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967667#M111921</link>
      <description>&lt;P&gt;Using the &lt;SPAN&gt;using: qualifier worked thank you, my challenge now I&amp;nbsp; need to return more that one item in an object&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;$UpdateHistory=@"&lt;BR /&gt;yum updateinfo list&lt;BR /&gt;"@&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Invoke-VMScript -VM $Using:VMName -GuestCredential $Using:LinCredentials -ScriptText $UpdateHistory -ScriptType Bash).ScriptOutput&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 May 2023 07:02:19 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967667#M111921</guid>
      <dc:creator>plaman</dc:creator>
      <dc:date>2023-05-10T07:02:19Z</dc:date>
    </item>
    <item>
      <title>Re: run powercli function  as job</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967672#M111922</link>
      <description>&lt;P&gt;I often format the output (in the function) as a CSV file.&lt;BR /&gt;When the function returns I then convert the text (ScriptOutput) with ConvertFrom-Csv&lt;BR /&gt;&lt;BR /&gt;See for example&amp;nbsp;&lt;A href="https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Invoke-VMscript-Network/m-p/1868058/highlight/true#M64422" target="_blank"&gt;Re: Invoke-VMscript (Network) - VMware Technology Network VMTN&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 May 2023 07:16:39 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/run-powercli-function-as-job/m-p/2967672#M111922</guid>
      <dc:creator>LucD</dc:creator>
      <dc:date>2023-05-10T07:16:39Z</dc:date>
    </item>
  </channel>
</rss>

