Configuring a syslog folder is convenient for troubleshooting ESXi. But it’s a pain you-know-where to configure manually across all your ESXi servers. Luckily, PowerCLI can help out. This script creates a folder on the local datastore and configures ESXi to write the syslog in that folder.
Enjoy!
Hugo
#Folder name you like $syslogFolderName = "syslog" #Connect to vCenter Connect-VIServer vcenter.domain.local #Loop through hosts ForEach ($vmhost in Get-VMHost) { #Get only the first part of the FQDN (only if you used the FQDN to add the ESX server to vCenter) $hostname = $vmhost.name.split(".")[0].ToUpper() #Local datastore name (equal to hostname in my case) $datastorename = $hostname #Make the local datastore accessible as a PSdrive New-PSDrive -Name $hostname -Root \ -PSProvider VimDatastore -Datastore (Get-Datastore $datastorename) -Scope global #Access the new PSDrive Set-Location $hostname":" #Create the syslog folder New-Item $syslogFolderName -ItemType directory #Set the advanced parameter to configure the syslog on the local datastore $value = "[$datastorename] $syslogFoldername/$hostname.log" Set-VMHostAdvancedConfiguration -VMHost $vmhost -Name "Syslog.Local.DatastorePath" -Value $value #Cleanup Set-Location $PSHOME Remove-PSDrive $hostname Clear-Variable hostname -ErrorAction SilentlyContinue Clear-Variable datastorename -ErrorAction SilentlyContinue Clear-Variable value -ErrorAction SilentlyContinue } #Disconnect from vCenter Disconnect-VIServer -confirm:$false |