Ik tracht op een Windows domein de VM's geautomatiseerd te voorzien van de laatste VMwaretools.
Daar deze VMWare tools geregeld updaten en ik er toch wat controle over wil houden wil ik eigenlijk de tools zo nu en dan downloaden en klaar zetten in een share bv \\server1\vmwaretools
Hierin staat dan de setup.exe voor de tools. Met bv setup.exe /S /v "/qn REBOOT=R ADDLOCAL=ALL REMOVE=Hgfs" kan ik dan vmwaretools updaten op de desbetreffende host.
Omdat de setup enkel moet draaien als de tools op de machine out-dated zijn wil ik een versie check inbouwen met powershell, als volgt:
if ((get-item "C:\Program Files\VMware\VMware Tools\vmtoolsd.exe").VersionInfo.ProductVersion -ne "10.2.0 build-7253323") {setup.exe /S /v "/qn REBOOT=R ADDLOCAL=ALL REMOVE=Hgfs"}
(de eerste regel checkt de versie van vmwaretools.exe, als deze versie niet gelijk is (NE=Not Equal) aan een door mij gedefinieerde versie dan moet de setup.exe incl parameters gaan draaien.
Het idee is om een willekeurige VM een scheduled task te maken, en bij system startup bovengenoemde onliner draaien.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
if ((get-item "C:\Program Files\VMware\VMware Tools\vmtoolsd.exe").VersionInfo.ProductVersion -ne "10.2.0 build-7253323") {setup.exe /S /v "/qn REBOOT=R ADDLOCAL=ALL REMOVE=Hgfs"}
Maar dit faalt. Powershell start wel, maar de setup.exe kan niet gevonden worden. Logisch, deze staat remote op een fileshare namelijk \\server1\vmwaretools
Hoe krijg ik dit werkend?? Hoe kan ik de setup incl parameters aftrappen vanaf de share op de lokale VM
Nog mooier zou zijn als er ook een wmi query aan vooraf zou gaan welke checkt of de lokale VM een VMWare machine is. (zo nee, stop script)
Indien ja, ga door..... check vervolgens de versie van C:\Program Files\VMware\VMware Tools\vmtoolsd.exe
Als deze NIET gelijk is aan versie xxxxx (zelf te defineren) draai vervolgens van \\server1\vmwaretools de setup incl parameters.
Hoe krijg ik dit alles voor elkaar? Iemand hier een slim idee?
Daar deze VMWare tools geregeld updaten en ik er toch wat controle over wil houden wil ik eigenlijk de tools zo nu en dan downloaden en klaar zetten in een share bv \\server1\vmwaretools
Hierin staat dan de setup.exe voor de tools. Met bv setup.exe /S /v "/qn REBOOT=R ADDLOCAL=ALL REMOVE=Hgfs" kan ik dan vmwaretools updaten op de desbetreffende host.
Omdat de setup enkel moet draaien als de tools op de machine out-dated zijn wil ik een versie check inbouwen met powershell, als volgt:
if ((get-item "C:\Program Files\VMware\VMware Tools\vmtoolsd.exe").VersionInfo.ProductVersion -ne "10.2.0 build-7253323") {setup.exe /S /v "/qn REBOOT=R ADDLOCAL=ALL REMOVE=Hgfs"}
(de eerste regel checkt de versie van vmwaretools.exe, als deze versie niet gelijk is (NE=Not Equal) aan een door mij gedefinieerde versie dan moet de setup.exe incl parameters gaan draaien.
Het idee is om een willekeurige VM een scheduled task te maken, en bij system startup bovengenoemde onliner draaien.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
if ((get-item "C:\Program Files\VMware\VMware Tools\vmtoolsd.exe").VersionInfo.ProductVersion -ne "10.2.0 build-7253323") {setup.exe /S /v "/qn REBOOT=R ADDLOCAL=ALL REMOVE=Hgfs"}
Maar dit faalt. Powershell start wel, maar de setup.exe kan niet gevonden worden. Logisch, deze staat remote op een fileshare namelijk \\server1\vmwaretools
Hoe krijg ik dit werkend?? Hoe kan ik de setup incl parameters aftrappen vanaf de share op de lokale VM
Nog mooier zou zijn als er ook een wmi query aan vooraf zou gaan welke checkt of de lokale VM een VMWare machine is. (zo nee, stop script)
Indien ja, ga door..... check vervolgens de versie van C:\Program Files\VMware\VMware Tools\vmtoolsd.exe
Als deze NIET gelijk is aan versie xxxxx (zelf te defineren) draai vervolgens van \\server1\vmwaretools de setup incl parameters.
Hoe krijg ik dit alles voor elkaar? Iemand hier een slim idee?
Het leven is net een dolfijn...... meestal dol, maar soms ook fijn.