<?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: Hardening ESXi Script in VMware PowerCLI Discussions</title>
    <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hardening-ESXi-Script/m-p/2305641#M82339</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1. With 'hosts' do you mean VMs or ESXi nodes? &lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;ESXi NODES&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;2. How will you provide the 'desired settings'? &lt;STRONG style="color: #408c52;"&gt;like the parametre that I added to VMs in the script&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;Foreach ($VMHost in Get-VMHost ) { $ESXCli = Get-EsxCli -VMHost $VMHost $ESXCli.software.acceptance.Set("PartnerSupported") }&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;$NTPServers = "pool.ntp.org", "pool2.ntp.org" Get-VMHost | Add-VmHostNtpServer $NTPServers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;3. I suspect you mean '&lt;STRONG&gt;not&lt;/STRONG&gt; set'? &lt;STRONG style="color: #408c52;"&gt;Yep you are right&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;4. What should be in that report? Juste one excel file which inclue worksheet | one for VMs - One for Node and they should include the below details in column&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;vcenter&lt;/STRONG&gt; &lt;STRONG&gt;Node&lt;/STRONG&gt; &lt;STRONG&gt;VM&amp;nbsp;&amp;nbsp;&amp;nbsp; ParametreName&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;OldValue&amp;nbsp;&amp;nbsp;&amp;nbsp; NewValue &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5.2 Why would there be VMs remaining to be hardened? &lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;my bad, I mean nombre of VMs hardned and number of nodes hardned&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #303030;"&gt;for sure output log is required, espacialy if something happen&lt;STRONG&gt; &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.vmware.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;&lt;SPAN lang="en"&gt;&lt;SPAN style="color: #303030;"&gt;if you have any other suggestion, I am interested. after all I'm trying to do something that could be of use to the community.&lt;/SPAN&gt;&lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.vmware.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 16 Sep 2020 13:46:34 GMT</pubDate>
    <dc:creator>SCharchouf</dc:creator>
    <dc:date>2020-09-16T13:46:34Z</dc:date>
    <item>
      <title>Hardening ESXi Script</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hardening-ESXi-Script/m-p/2305639#M82337</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;With LucD help I created this script in order to secure ESXi based on VMware recommandation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;I will need assistance and collaboration in order to:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG style="font-size: 12pt;"&gt;Get existant value for hosts&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG style="font-size: 12pt;"&gt;Add advanced settings for Hosts&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG style="font-size: 12pt;"&gt;if the required value is set, script must have the ability to compare existant value with the desired and made the required change&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG style="font-size: 12pt;"&gt;get report&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG style="font-size: 12pt;"&gt;Receive an email with information how many &lt;/STRONG&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG style="font-size: 12pt;"&gt;Hardened VMs &amp;amp; Hardned Hosts&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG style="font-size: 12pt;"&gt;Remaining VMs &amp;amp; Host to hardned&lt;/STRONG&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Connect-VIServer -Server "vcenter1", "vcenter2"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;# vCenter Login&lt;/P&gt;&lt;P&gt;$vCUser="login"&lt;/P&gt;&lt;P&gt;$vCPass="password"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$StartTime = Get-Date&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$report = @()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Foreach ($Host in Get-VMHost)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $tab = @{}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $date=Get-Date -format "ddMMyy_HHmm"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-AdvancedSetting -Entity $Host | ForEach-Object -Process {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $tab.Add($_.Name,$_.Value)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$NTPServers = "NTP1", "NTP2" Get-VMHost | Add-VmHostNtpServer $NTPServers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Foreach ($vm in Get-VM)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $tab = @{}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $date=Get-Date -format "ddMMyy_HHmm"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get-AdvancedSetting -Entity $vm | ForEach-Object -Process {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $tab.Add($_.Name,$_.Value)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.device.edit.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.device.connectable.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.copy.disable -Value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.paste.disable -Value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.ghi.autologon.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.bios.bbs.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.ghi.protocolhandler.info.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.unity.taskbar.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.unityActive.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.unity.windowContents.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.unity.push.update.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.vmxDnDVersionGet.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.guestDnDVersionSet.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.ghi.host.shellAction.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.dispTopoRequest.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.trashFolderState.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.ghi.trayicon.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.unity.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.unityInterlockOperation.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.getCreds.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.hgfsServerSet.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.ghi.launchmenu.change -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.memSchedFakeSampleStats.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.copy.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.dnd.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.setGUIOptions.enable -value FALSE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.paste.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name RemoteDisplay.vnc.enabled -value FALSE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name svga.vgaOnly -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name mks.enable3d -value FALSE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.diskShrink.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.diskWiper.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name isolation.tools.vixMessage.disable -value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name log.keepOld -value 10 -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name tools.guestlib.enableHostInfo -value FALSE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name log.rotateSize -value 102400 -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name Remove-FloppyDrive -Value TRUE -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; New-AdvancedSetting -Entity $vm -Name tools.setInfo.sizeLimit -value 1048576 -Confirm:$False -Force:$True | select @{N='VM';E={$_.Entity.Name}},Name,Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # repeat for other settings&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $report += Get-AdvancedSetting -Entity $vm |&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select @{N='VM';E={$vm.Name}},Name,@{N='OldValue';E={$tab[$_.Name]}},@{N='NewValue';E={$_.Value}}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$report | Export-Csv -Path "Settings_$($date).csv" -NoTypeInformation -UseCulture&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;$EndTime = Get-Date&lt;/P&gt;&lt;P&gt;$duration = [math]::Round((New-TimeSpan -Start $StartTime -End $EndTime).TotalMinutes,2)&lt;/P&gt;&lt;P&gt;Write-Host "================================"&lt;/P&gt;&lt;P&gt;Write-Host "Hardening VMs By vCenter Completed!" -Foregroundcolor "Green"&lt;/P&gt;&lt;P&gt;Write-Host "Hardening Hosts By vCenter Completed!" -Foregroundcolor "Cyan"&lt;/P&gt;&lt;P&gt;Write-Host "StartTime: $StartTime"&lt;/P&gt;&lt;P&gt;Write-Host "EndTime: $EndTime"&lt;/P&gt;&lt;P&gt;Write-Host "Duration: $duration minutes"&lt;/P&gt;&lt;P&gt;Write-Host "================================"&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Sep 2020 12:53:03 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hardening-ESXi-Script/m-p/2305639#M82337</guid>
      <dc:creator>SCharchouf</dc:creator>
      <dc:date>2020-09-16T12:53:03Z</dc:date>
    </item>
    <item>
      <title>Re: Hardening ESXi Script</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hardening-ESXi-Script/m-p/2305640#M82338</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1. With 'hosts' do you mean VMs or ESXi nodes?&lt;BR /&gt;2. How will you provide the 'desired settings'?&lt;BR /&gt;3. I suspect you mean '&lt;STRONG&gt;not&lt;/STRONG&gt; set'?&lt;/P&gt;&lt;P&gt;4. What should be in that report?&lt;/P&gt;&lt;P&gt;5.2 Why would there be VMs remaining to be hardened?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Sep 2020 13:18:00 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hardening-ESXi-Script/m-p/2305640#M82338</guid>
      <dc:creator>LucD</dc:creator>
      <dc:date>2020-09-16T13:18:00Z</dc:date>
    </item>
    <item>
      <title>Re: Hardening ESXi Script</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hardening-ESXi-Script/m-p/2305641#M82339</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1. With 'hosts' do you mean VMs or ESXi nodes? &lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;ESXi NODES&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;2. How will you provide the 'desired settings'? &lt;STRONG style="color: #408c52;"&gt;like the parametre that I added to VMs in the script&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;Foreach ($VMHost in Get-VMHost ) { $ESXCli = Get-EsxCli -VMHost $VMHost $ESXCli.software.acceptance.Set("PartnerSupported") }&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;$NTPServers = "pool.ntp.org", "pool2.ntp.org" Get-VMHost | Add-VmHostNtpServer $NTPServers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;3. I suspect you mean '&lt;STRONG&gt;not&lt;/STRONG&gt; set'? &lt;STRONG style="color: #408c52;"&gt;Yep you are right&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;4. What should be in that report? Juste one excel file which inclue worksheet | one for VMs - One for Node and they should include the below details in column&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;vcenter&lt;/STRONG&gt; &lt;STRONG&gt;Node&lt;/STRONG&gt; &lt;STRONG&gt;VM&amp;nbsp;&amp;nbsp;&amp;nbsp; ParametreName&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;OldValue&amp;nbsp;&amp;nbsp;&amp;nbsp; NewValue &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5.2 Why would there be VMs remaining to be hardened? &lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;my bad, I mean nombre of VMs hardned and number of nodes hardned&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #303030;"&gt;for sure output log is required, espacialy if something happen&lt;STRONG&gt; &lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.vmware.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #408c52;"&gt;&lt;STRONG&gt;&lt;SPAN lang="en"&gt;&lt;SPAN style="color: #303030;"&gt;if you have any other suggestion, I am interested. after all I'm trying to do something that could be of use to the community.&lt;/SPAN&gt;&lt;img id="smileyhappy" class="emoticon emoticon-smileyhappy" src="https://communities.vmware.com/i/smilies/16x16_smiley-happy.png" alt="Smiley Happy" title="Smiley Happy" /&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Sep 2020 13:46:34 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hardening-ESXi-Script/m-p/2305641#M82339</guid>
      <dc:creator>SCharchouf</dc:creator>
      <dc:date>2020-09-16T13:46:34Z</dc:date>
    </item>
    <item>
      <title>Re: Hardening ESXi Script</title>
      <link>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hardening-ESXi-Script/m-p/2305642#M82340</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could do, similar to the VM script, something like this.&lt;/P&gt;&lt;P&gt;This only shows 1 Advanced setting, the others will have to follow the same structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Not sure how you are going to document changes beyond Advanced settings (for example the NTP servers).&lt;/P&gt;&lt;P&gt;Btw, this has been an issue in all attempts to write a script that handles all security hardening guidelines&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;DIV&gt;&lt;SPAN style="color: #4876d6;"&gt;$report&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;@&lt;/SPAN&gt;() &lt;BR /&gt;&lt;P&gt;&lt;SPAN style="color: #4876d6;"&gt;$date&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;Get-Date&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;format &lt;SPAN style="color: #111111;"&gt;"&lt;/SPAN&gt;&lt;SPAN style="color: #c96765;"&gt;ddMMyy_HHmm&lt;/SPAN&gt;&lt;SPAN style="color: #111111;"&gt;"&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;SPAN style="color: #0c969b;"&gt;Get-VMHost&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;PipelineVariable esx &lt;SPAN style="color: #0c969b;"&gt;|&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;ForEach-Object&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Process {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #4876d6;"&gt;$tab&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;@&lt;/SPAN&gt;{}&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0c969b;"&gt;Get-AdvancedSetting&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Entity &lt;SPAN style="color: #4876d6;"&gt;$esx&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;|&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;ForEach-Object&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Process {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #4876d6;"&gt;$tab.Add&lt;/SPAN&gt;($_&lt;SPAN style="color: #4876d6;"&gt;.Name&lt;/SPAN&gt;&lt;SPAN style="color: #0c969b;"&gt;,&lt;/SPAN&gt;$_&lt;SPAN style="color: #4876d6;"&gt;.Value&lt;/SPAN&gt;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #4876d6;"&gt;$changed&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="color: #aa0982;"&gt;0&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0c969b;"&gt;Get-AdvancedSetting&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Entity &lt;SPAN style="color: #4876d6;"&gt;$esx&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Name UserVars.DcuiTimeOut &lt;SPAN style="color: #0c969b;"&gt;|&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #994cc3; font-style: italic;"&gt;where&lt;/SPAN&gt;{$_&lt;SPAN style="color: #4876d6;"&gt;.Value&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-ne&lt;/SPAN&gt; &lt;SPAN style="color: #aa0982;"&gt;600&lt;/SPAN&gt;} &lt;SPAN style="color: #0c969b;"&gt;|&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;ForEach-Object&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Process {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0c969b;"&gt;Set-AdvancedSetting&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;AdvancedSetting $_ &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Value &lt;SPAN style="color: #aa0982;"&gt;600&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Confirm:&lt;SPAN style="color: #4876d6;"&gt;$False&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;|&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;Out-Null&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #4876d6;"&gt;$changed&lt;/SPAN&gt;&lt;SPAN style="color: #994cc3;"&gt;++&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #989fb1;"&gt;#&lt;/SPAN&gt;&lt;SPAN style="color: #989fb1; font-style: italic;"&gt; Other settings with similar structure&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0c969b;"&gt;Write-Host&lt;/SPAN&gt; &lt;SPAN style="color: #111111;"&gt;"&lt;/SPAN&gt;&lt;SPAN style="color: #c96765;"&gt;On $(&lt;/SPAN&gt;&lt;SPAN style="color: #4876d6;"&gt;$esx.Name&lt;/SPAN&gt;&lt;SPAN style="color: #c96765;"&gt;) there were &lt;/SPAN&gt;&lt;SPAN style="color: #4876d6;"&gt;$changed&lt;/SPAN&gt;&lt;SPAN style="color: #c96765;"&gt; changes.&lt;/SPAN&gt;&lt;SPAN style="color: #111111;"&gt;"&lt;/SPAN&gt;&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #4876d6;"&gt;$report&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;+=&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;Get-AdvancedSetting&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Entity &lt;SPAN style="color: #4876d6;"&gt;$esx&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;|&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Select &lt;SPAN style="color: #994cc3;"&gt;@&lt;/SPAN&gt;{&lt;SPAN style="color: #4876d6;"&gt;N&lt;/SPAN&gt;&lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #111111;"&gt;'&lt;/SPAN&gt;&lt;SPAN style="color: #c96765;"&gt;VMHost&lt;/SPAN&gt;&lt;SPAN style="color: #111111;"&gt;'&lt;/SPAN&gt;;&lt;SPAN style="color: #4876d6;"&gt;E&lt;/SPAN&gt;&lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt;{&lt;SPAN style="color: #4876d6;"&gt;$esx.Name&lt;/SPAN&gt;}}&lt;SPAN style="color: #0c969b;"&gt;,&lt;/SPAN&gt;Name&lt;SPAN style="color: #0c969b;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="color: #994cc3;"&gt;@&lt;/SPAN&gt;{&lt;SPAN style="color: #4876d6;"&gt;N&lt;/SPAN&gt;&lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #111111;"&gt;'&lt;/SPAN&gt;&lt;SPAN style="color: #c96765;"&gt;OldValue&lt;/SPAN&gt;&lt;SPAN style="color: #111111;"&gt;'&lt;/SPAN&gt;;&lt;SPAN style="color: #4876d6;"&gt;E&lt;/SPAN&gt;&lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt;{&lt;SPAN style="color: #4876d6;"&gt;$tab&lt;/SPAN&gt;[$_&lt;SPAN style="color: #4876d6;"&gt;.Name&lt;/SPAN&gt;]}}&lt;SPAN style="color: #0c969b;"&gt;,&lt;/SPAN&gt;&lt;SPAN style="color: #994cc3;"&gt;@&lt;/SPAN&gt;{&lt;SPAN style="color: #4876d6;"&gt;N&lt;/SPAN&gt;&lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt;&lt;SPAN style="color: #111111;"&gt;'&lt;/SPAN&gt;&lt;SPAN style="color: #c96765;"&gt;NewValue&lt;/SPAN&gt;&lt;SPAN style="color: #111111;"&gt;'&lt;/SPAN&gt;;&lt;SPAN style="color: #4876d6;"&gt;E&lt;/SPAN&gt;&lt;SPAN style="color: #994cc3;"&gt;=&lt;/SPAN&gt;{$_&lt;SPAN style="color: #4876d6;"&gt;.Value&lt;/SPAN&gt;}}&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;}&lt;/P&gt;&lt;BR /&gt;&lt;P&gt;&lt;SPAN style="color: #4876d6;"&gt;$report&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;|&lt;/SPAN&gt; &lt;SPAN style="color: #0c969b;"&gt;Export-Csv&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;Path &lt;SPAN style="color: #111111;"&gt;"&lt;/SPAN&gt;&lt;SPAN style="color: #c96765;"&gt;Settings_$(&lt;/SPAN&gt;&lt;SPAN style="color: #4876d6;"&gt;$date&lt;/SPAN&gt;&lt;SPAN style="color: #c96765;"&gt;).csv&lt;/SPAN&gt;&lt;SPAN style="color: #111111;"&gt;"&lt;/SPAN&gt; &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;NoTypeInformation &lt;SPAN style="color: #994cc3;"&gt;-&lt;/SPAN&gt;UseCulture&lt;/P&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 17 Sep 2020 08:51:07 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Hardening-ESXi-Script/m-p/2305642#M82340</guid>
      <dc:creator>LucD</dc:creator>
      <dc:date>2020-09-17T08:51:07Z</dc:date>
    </item>
  </channel>
</rss>

