İlk gönderi ancak düzenli ziyaretçi. Bir .csv dosyasındaki vSphere makinelerinin bir listesindeki kapanmaları başlatmak için bir powershell komut dosyasını birlikte çalmaya çalışıyorum. vSphere, 5.1u2 sürümündedir ve vcenter, 2008 R2 üzerinde çalışır. Ben ps komut dosyasının başında powercli şeyler yüklüyorum.Kapatmak için Powershell betiği VMS - erros
Gereksinimlerime tam olarak uyuyor gibi görünen bir komut dosyası buldum, ancak birkaç sorunu var gibi görünüyor. Orijinaline bağlantılar gönderebileceğimden emin değilim, bu yüzden burada gider.
Çalışmaya başladım. Powershell kullanılır, böylece belirli bir durum tespit edildiğinde izleme araçları tarafından başlatılabilir.
Bu durumda satır 12 karakter 44'teki bir ifade ifadesi hatası verir. Yine de, komut dosyasında yanlış olandan çok daha fazlası var gibi görünüyor ve farklı şeyler denemek de dahil olmak üzere çeşitli hatalar verdi "Import-csv terimi terimi değil cmdlet olarak tanınır.
Herhangi bir işaretçi için minnettarım - Tehlikeli kod ekleme için üzgünüm!
# Adds the base cmdlets needed to use powershell directly. Note the location of the powercli environment ps1 script - this may change in future releases of vsphere
Add-PSSnapin VMware.VimAutomation.Core
Add-PSSnapin VMware.VumAutomation
. "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"
#The next line is only relevant and needs running once if you get an invalid ssl related message
#Set-PowerCLIConfiguration -InvalidCertificateAction Ignore
connect-viserver vc5
#Get the names of VMs from a .csv then shut down gracefully - assumes we have vmware to be effective on all
Import-Csv C:\CLIout\listofcriticalvms.csv |
foreach {
$strNewVMName = $_.name #Generate a view for each vm to determine power state
$vm = Get-View -ViewType VirtualMachine -Filter @{"Name" = $strNewVMName}
#If vm is powered on then VMware Tools status is checked
if ($vm.Runtime.PowerState -ne "PoweredOff") {
if ($vm.config.Tools.ToolsVersion -ne 0) {
Write-Host "VMware tools installed. Graceful OS shutdown ++++++++ $strNewVMName ----"
Shutdown-VMGuest $strNewVMName -Confirm:$false
#For generating email
$Report += $strNewVMName + " --- VMware tools installed. Graceful OS shutdown `r`n"
}
else {
Write-Host "VMware tools not installed. Force VM shutdown ++++++++ $strNewVMName ----"
Stop-VM $strNewVMName -Confirm:$false
$Report += $strNewVMName + " --- VMware tools not installed. Force VM shutdown `r`n"
}
}
}
$Report | export-csv "C:\CLIout\GraceorHardfromcriticaloutput.csv"
HI - Elle aynı sonucu yazdım. $ strNewVMName - tırnak işaretleri içinde olması gerekiyor mu? Bunu yapmak, orijinal hatayı kaldırır ancak komut dosyası, 'Import-Csv C: \ myfile \ here.csv' teriminin tanınmaması ve cmdlet'in, işlevinin, komut dosyasının veya çalıştırılabilir programın adıyla ilgili olarak şikayette bulunur. Export-Csv daha sonra açık ve boş bir nesne hakkında şikayet ediyor. Benim csv dosyam bu "İsim" "eski test makinesi" gibi görünüyor – tvirus