最初の投稿ですが定期的な訪問者です。 私は、.csvのvSphereマシンのリストでシャットダウンを開始するためにpowershellスクリプトを一緒にしようとしています。 vSphereのバージョンは5.1u2、vcenterのバージョンは2008 R2です。 psスクリプトの最初にpowercliを読み込んでいます。PowershellスクリプトでVMSをシャットダウンする - erros
私のニーズに正確に合うように見えるスクリプトが見つかりましたが、問題がいくつかあるようです。私はオリジナルへのリンクを投稿できるかどうかわからないので、ここに行く。
ここに私の試行を試みます。 Powershellは、特定の状態が検出されたときにツールを監視することによって開始することができるように使用されます。
この状態では、12行目の文字44でassigment expression errorが返されます。このスクリプトではそれ以上の問題があるようですが、「import-csvという用語はコマンドレットとして認識されます "。
私はどんなポインタにも感謝しています - ドッジコードの挿入については申し訳ありません!
# 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 - 同じ結果を手動で入力しました。 $ strNewVMName - 引用符で囲む必要がありますか?そうすることで元のエラーは取り除かれますが、「Import-Csv C:\ myfile \ here.csv」という用語は認識されず、コマンドレット、関数、スクリプトファイル、または実行可能なプログラムの名前は認識されません。 Export-Csvは、明らかにして、ヌルオブジェクトについて文句を言います。私のCSVファイルはこのような "名前" "古いテストマシン" – tvirus