[英]powershell vmware powerCLI automatic script
我正在制作一個腳本,以在vmware的powershell(powerCLI)中運行。 我試圖做一個自動報告導出到一個CSV文件,但我不知道如何解決幾個問題。
我不知道如何導出它們的所有參數。
“虛擬機的工作位置”我可以在mashine中導出磁盤,但是我不知道如何導出文件夾的所有路徑。
域/工作組
計算機名稱當我嘗試導出名稱時,我會獲得帶有域名“ name.domainname.com”的名稱(這很奇怪,因為我的VM不在域中,在工作組中存在) 名稱是指OS內部的名稱,而不是esxi ,因為我從中獲得vm的esxi名稱
$ name =(get-vm name_maschine |選擇對象名稱).name
或簡單,當in loop參數是mashine的名稱時,我僅導出一個參數
不太重要的參數
4。 主機正在運行的vcenter的名稱
碼:
connect-viserver -server IP-ADDRES -user root -password PASSWORD
Get-View -ViewType VirtualMachine | %{
New-Object PSObject -Property @{
# mashine name
'Mashine name' = $_.Name
#date when edited
'Date' = Get-Date
# resource pull
'pull' = (Get-VM $_.Name | Get-ResourcePool | select-object name).name
#disk where is mashine
'Datastore' = [system.String]::Join(",",($_.Storage.PerDatastoreUsage | %{Get-View $_.Datastore} | %{$_.Name}))
}
}
我添加了除域/工作組之外的其他參數。 為此,您需要為每個虛擬機執行Invoke-VMScript
(使用本地管理員憑據),並結合(Get-WmiObject Win32_ComputerSystem).Domain
$guestUser = "administrator"
$guestPass = "yourpass"
Get-View -ViewType VirtualMachine | %{
New-Object PSObject -Property @{
# machine name
'Machine name' = $_.Name
# machine name from vmware tools
'Guest name' = $_.Guest.HostName
# machine name from WMI
'Guest name(WMI)' = (Invoke-VMScript -VM $_.Name -GuestUser $guestUser -GuestPassword $guestPass -ScriptText {(Get-WmiObject Win32_ComputerSystem).Domain}).ScriptOutput
#date when edited
'Date' = Get-Date
# resource pool
'pool' = (Get-VM $_.Name | Get-ResourcePool | select-object name).name
#disk where is mashine
'Datastore' = [system.String]::Join(",",($_.Storage.PerDatastoreUsage | %{Get-View $_.Datastore} | %{$_.Name}))
# physical location
'VM Location' = $_.Config.DataStoreURL.URL
# vm host
'VM Host' = (Get-VM $_.Name).VMHost
# datacenter
'Datacenter' = (Get-Datacenter -VM $_.Name).Name
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.