Just like in 2017 and 2018 I have been named a Nutanix Technology Champion for 2019. While I haven’t been involved with the tech as much as in 2017 at least I tried to keep up to speed in 2018 by playing with the community Edition. Besides that I started two things on the Nutanix front in 2018: getting an NPX bootcamp to The Netherlands which I attended in September and trying to start a Nutanix User Group in The Netherlands and that will have it’s first meeting the 1st quarter of 2019! Besides that I attended the Nutanix .Next on tour event in Utrecht and of course .Next EU 2019 in London.
Being an NTC is for me all about the vCommunity, we try to help others but if we need a hand others will help you as well. Just ask Nutanix’ awesome community manager Angelo Luciani and he will tell you all about it 😉
2018 has been awesome but I am 100% sure that 2019 will be even better!
The VMware Workspace ONE Provisioning Tool helps you test and validate your applications (exported as a .ppkg file) and the special-purpose unattend.xml configuration file as part of the Dell Provisioning for Workspace ONE offer. This tool simplifies the testing and validation of this process in your own environment before these files are sent and applied in the Dell factory.
Highlights
Simple UI to easily enable the IT admin to validate their ppkg and unattend.xml files in their own environment, mimicking what Dell is doing in the factory.
Supports PPKGs and unattend.xmls generated with Workspace ONE UEM Console 1811 or newer.
Highly flexible. Allows IT admins to specify the configurations for tool in a text based config file in order to change things like tool timeout and report location, to name a few.
Generates a detailed final summary report with client details and app installation results. This file is saved in C:\ProgramData\Airwatch\UnifiedAgent\Logs\PPKGFinalSummary.log after the “Full Process” button is clicked.
Halts the process if any steps fails for the given operation, giving the ability to IT admins to view & debug the state of the machine and the apps.
Supported Operations
Apply Apps Only – Given a ppkg, this tool deploys the applications on a test windows machine
Apply Full process – Given a ppkg and xml file, this tool deploys the applications on a test windows machine followed by Workspace ONE enrollment and Sysprep.
[sta_anchor id=”dispatchsolo” /]
Dispatch-Solo
The Dispatch-Solo fling actually is a prepackaged VM to get you started with dispatch as easily as possible.
Dispatch-Solo is lean version of Dispatch which has been packaged as VM appliance. The goals of Dispatch-Solo are simple:
Lower the barrier to entry – get started with Dispatch in a matter of minutes
Support nearly the full Dispatch feature set – API compatibility
Explore use-cases – get user feedback and iterate
Because Dispatch and serverless is still in its infancy, understanding use cases is the highest priority. It therefore makes sense to continue to focus on getting Dispatch in as many hands as possible and making it as easy as possible to get started exploring its usage. By packaging Dispatch-Solo as a VM appliance, getting started is quick and predictable.
This Android Device Pre-Verification Suite Fling reduces the time to perform a preliminary test on any Android device from any OEM. Pre-verification result decides whether the device is eligible for a full device verification program or not. This eliminates the TAT (turnaround time) for basic test failures during the initial phase of verification from VMware. Customers/Partners can run this tool at their premise and check whether the device passes the device verification program entry criteria.
[sta_anchor id=”powerclivmc” /]
PowerCLI for VMware Cloud on AWS
If you are using VMware Cloud on AWS the PowerCLI for VMware Cloud on AWS fling will give you an preview on what to expect from PowerCLI to automate VMC.
This Fling provides a community preview of the upcoming PowerCLI commands for managing VMware Cloud on AWS. It comes in the form of a single PowerCLI module and integrates with existing PowerCLI modules.
All commands have been automatically generated. They are still in development, contain known issues, and will change in the future.
Updated
[sta_anchor id=”powercliextensions” /]
PowerCLI Extensions
The PowerCLI extensions fling gives you a preview on what to expect in the official PowerCLI releases.
Changelog
Version 3.0.0.11173018
Updated PowerCLI.Extensions Module to be compatible with VMware PowerCLI 11.0.0
[sta_anchor id=”hcibench” /]
HCIBench
This one should be known by now, the HCIBench is made for benchmarking your hyperconverged infrastucture. Ideal for things like vSAN but please be aware that it could also possibly be tuned for that.
Changelog
Version 1.6.8.7
Enhanced easy-run, put original 4k,70% read as the first test case, then 4k, 100% read and 256k, 100% write
Enhanced tvm deployment validation
Added Checksum into easy-run consideration
Updated guest VM template with increased ring_pages and disk scheduler
Added DNS configuration guidance into welcome message
Version 1.6.8.5
Added 2 more test cases into easy-run, 4k 100% random read and 256k 100% sequential write
Batch deployment will be involved if deploying more than 8 VMs to speed up deployment process
Allow user to choose IP prefix when using static IP
Optimized UI to allow user to review the results by single click
Fixed regression issue when placing Datacenter/Cluster in the folder
If you have used the VMware.hv.helper the title of this blog post might sound strange since the set-hvmachine already has a way to set maintenance mode. When Ryan Butler asked me the question this week though I didn’t think of that and dived into the api’s immediately. The machines.Machine_EnterMaintenanceMode method looked good to me and than I though of the vmware.hv.helper and noticed that with
Set-HVMachine -Maintenance ENTER_MAINTENANCE_MODE
it was also possible so set maintenance mode. The usage though made me think immediately that this was not actually using a proper api call but the update function. A quick look at the function itself confirmed this. It sets that status of the virtual machine by directly setting the status.
If you are below version 7.5 of Horizon view it’s probably of no use to continue with the rest of this blog post. The api explorer only mentions the relevant functions since 7.5! They have been tried against 7.0.3 and 6.2 and there they don’t work.
So back to the drawing board it was and I needed to look at the API explorer, there are 4 relevant methods for maintenance mode.
As usual there are methods for multiple machines that use an array of id’s (with machines in the name) and methods for single machines id’s (without the machines in the name).
Since I usually use instant clones these days I created a small pool with three linked clones. With get-hvmachine I can show you their names and state.
Okay so we now know how this works but I don’t want to use to vmware.hv.helper module for this at all because I want to be able to use a list of machines or based on part of the name. That can be done using a query. The query entitytype to use is MachineSummaryView and if you use queryfiltercontains it’s also possible to use only a part of the name for a kind of wildcard selection. Combine several of these in with queryfilteror and it gives the opportunity to select them from a list.
The vSphere PKS Plugin provides a user interface for managing and monitoring Kubernetes cluster deployments for the PKS platform. Using the vSphere PKS Plugin you can view details about your Kubernetes clusters, including master and worker nodes as well as networking configuration.
Features
The vSphere PKS Plugin:
Provides a graphical interface to visualize the Kubernetes clusters deployed and managed by PKS
Provides visibility into underlying infrastructure such as VMs, network objects and storage objects that are created when a Kubernetes cluster is deployed in a vSphere environment
Provides a centralized launch point for viewing components deployed with the Kubernetes cluster, including nodes and network objects such as routers, logical switches, load balancers
Provides a simple user interface to get easy access to the cluster using the kubectl interface and the cluster Dashboard
Remember registered site information (without password)
Easily retry a previously attempted task in case of failures
Search box for keyword filtering of migration task history
Option to clear task history by removing completed tasks
Added documentation and other links under the help menu
Partial fix for an issue related to duplicate network names
Workspace ONE Configuration Tool for Provisioning
[sta_anchor id=”wsoneconfig” /]
The Workspace ONE Configuration Tool for Provisioning assists in building unattend.xml configuration files that can be used by Dell (or others when more provide the service) when delivering systems from the factory to set them up for your environment.
Changelog
Release Update – Version 2.0.0
Improvements
The version number is shown in the window title
The version number is shown as a comment in the generated XML
The product key is now validated to conform with the 11111-11111-11111-11111-11111 pattern
Split the locale settings into ‘Operating System Language’, and ‘Region and Keyboard Settings’.
‘Operating System Language’ maps to the language of the operating system installation media, and ‘Region and Keyboard Settings’ maps to the locale settings available to the user during OOBE
‘Operating System Language’ is now a required field as it is needed for certain customizations, such as adding a user to the administrators group
Removed the ability to set a custom computer name. The computer name now defaults to ‘*’, which causes the Windows OS to generate a random name, taking up to seven characters from the ‘Registered Organization’ field plus eight random characters. This change makes sure every computer has a unique name on the network.
The ‘Auto Admin Logon’ feature is no longer selectable. Instead, it will be activated when it is required by the deployment scenario.
All deployment scenarios now allow for the creation of a local user.
Moved the node from the ‘oobeSystem’ pass to the ‘specialize’ pass
to be consistent with the node
Bug Fixes
Auto Admin Logon would only work with an unattend XML generated for an en-US installation image
Enabled the ASSIGNEDTOLOGGEDINUSER=Y flag to enable the WS1 agent to correctly enroll the user in the ‘Workgroup’ deployment scenario
Fixed an issue where the ‘Show Privacy Settings’ option would have no effect
The second day of .Next London started with a good keynote mainly about IoT and what Nutanix brings to the table in that area of expertise. There where some issues before the keynote started but everything ended up really going smoothly. Session wise I did two sessions, both about VDI: deepdive into Xi Frame and the VDI supersession at the end of the day. In between there was a really inspirational keynote with Julie O’Brien interviewing Dr Jane Goodall. At age 85 she still travels the world convincing people they need to work at keeping our world healthy. In between all of this I spent some time at the Community lounge and browsing the solution expo.
The VDI supersession was a good mix of Horizon and Citrix that was very open for questions of the audience. It covered two time slots with a short break in between and it was good to see a couple of former EUC Champions + a Nutanix NTC on stage. The day ended for me walking into a restaurant that had a table filled with speakers & audience of the VDI supersession who immediately invited me over to join them.
please remember this is article is written while I was still waking and sobering up from last nights party at The Tobacco Dock.
The last couple of days where a blast. I came in on the Eurostar on Tuesday and while others had issues with flights being cancelled I had no issues crossing The Channel by train. At 3 PM we started the rehearsals for Wednesdays opening act where we had to juggle a bit with balls. We where being trained by 4 pro’s including brand new World Champion Aguska Mnich that showed how things are done on stage. Too bad they didn’t have a lot of time on stage because backstage they where showing some amazing tricks.
Watch Aguska winning the championship from about minute 49
After this I finished the evening meeting some great community people at the Welcome reception and a dinner with some Dutch Nutanix employees and customers.
Wednesday started at 7.30 am with the last rehearsals for our opening act. It was great fun doing this though the stage was even warmer than the keynote room (usually keynote rooms are cold due to their size, over calling it warm was an understatement). When the keynote ended I went out to Angelo’s awesome community lounge before we went out to the NTC lunch where it was great meeting all the other ntc’s. It was quite a big group this time compared to last year.
In the afternoon I visited my first breakout about Nutanix files and it’s awesome to see how this product has grown over the years. It’s a full-fledged nas replacement now that’s just as easy to scale out as a Nutanix cluster with the same performance.
closing keynote was by Bear Grylls. I expected a bit more energetic person on stage but in fast he even looked a bit shy at some points. His main point: never give up!
This years party had an old style circus theme at the Tobacco Dock and while some of the music and smells where a total sensory overload for me I ended up in the saloon enjoying the (mostly) acoustic music.
This post is fairly similar to my posts for .Next Nice in 2017 and VMworld US of this year. For security reasons I decided to go with the XD Design Bobby again. Since it’s a lot harder to open when on my back I feel it’s a bit more secure while travelling on the London Underground. A couple of other changes also have been made, the bubm bag was replaced by a bit smaller pouch from the same maker and my Sony headset has gone to my wife since I settled on the Jabra Move I got from Cohesity at VMworld. The Jabra just sits a bit more comfortable for me and fits perfectly in it’s own bubm case.
For the rest there are the usual suspects: Xiaomi 10k battery pack, HP Probook 440 G5, Microsoft designer mouse, Roundcube Rewirable USB Travel adapter and some various bits & pieces. My suitcase is simply packed with lots of stroopwafels and all the Nutanix NTC gear I have.
Like I said in part two I wanted to do that first before going to method’s since for some methods you actually need the output from a query. I posted an example of that in the meanwhile with my post about sending messages to users. The get-hvglobalsession and get-hvlocalsession are based on queries that are used for the Session_SendMessages method of the session service.
The obvious way of finding available methods is by looking into the API Explorer.
It’s a complete list but it’s hard to find all the methods that belong to a service. It’s easier to do a get-method on a service.
$services1.connectionserverhealth | gm
So, in here we have two methods: ConnectionServerHealth_Get and ConnectionServerHealth_List. Even my wide PowerShell window is not big enough to show what’s needed to with the ConnectionServerHealth_Get method. For that we can use service.method without any brackets.
The required input for the method’s is visible between the brackets. The _Get method requires an id of the type vmware.hv.connectionserverid and the list doesn’t even need an input. I will keep the first one to use for later while I run the latter one.
The ones where you see a property that has a definition that starts with vmware.hv…. has more content hidden. It is possible to access these by putting the entire line between brackets followed by .membername for example
Please be aware that this can go multiple levels deep for some methods. To avoid unneeded api calls it’s wise to declare a variable from the method and use that to access the data.
Now to show the use of the _get method I could use the id that I received from the _list method but that would be cheating. What I will do is put a list of all connectionservers into an array (even though I only have 1) and do a foreach with the _get method.
$connectionservers=$services1.ConnectionServer.ConnectionServer_List()
foreach ($connectionserver in $connectionservers){$services1.ConnectionServerHealth.ConnectionServerHealth_get($connectionserver.id)}
This is the basic usage for method’s. For some method’s a spec is required for input please take a look at this post about adding an instantclone administrator for an example. I will show some more details about that one in here. Let’s take a look at what the method requires as input.
You can see that a spec is required of the type VMware.Hv.InstantCloneEngineDomainAdministratorSpec. The API Explorer will show that this actually is a bit weird one since it one contains a base.
If you click on the base you’ll see whats required in there.
These levels actually show that we need to declare multiple objects to build the actual spec. You can create the basic object with new-object objecttype
As you see the base is empty and doesn’t know what data it can contain. This shows that we need to declare the object for every level where we need to enter some information.
First I tried this using the class that’s shown in the API explorer, this obviously didn’t work so I use the data object name.
In the link I posted above you should be able to find what’s required to create an actual instantcloneadministrator. With this I have covered most of the method’s and how they work. Please don’t assume that _list nevers needs an id or that _get always needs one because that’s not true. Sometimes it will also say ids like with my previous post about sending messages that means it needs an array of id’s most possibly generated by a query or an _list method.
This tool helps to migrate WS One profiles between various environments.
The Workspace ONE UEM Profile Migration Utility aides in moving Profiles between Workspace ONE UEM Consoles. This can be very helpful to programmatically migrate complex Profiles from UAT to PROD environments.
Note: Not all Profile payloads are supported within the AirWatch API.
Updated
[sta_anchor id=”daasmig” /]
Horizon DaaS Migration Tool
The Horizon DAAS Migration Tool is targeted to Service Providers that run an Horizon DAAS environment and that want to upgrade that environment.
Changelog
Version 2.0.0
Added functionality for VMware tool upgrade;
Added progress statistics;
Added support for 32 bit VM;
Added support for Windows 10, 7 and 8;
Added resoulution for blank screen;
Added logging enhancements.
[sta_anchor id=”truessodiag” /]
True SSO Diagnostic Utility
With the True SSO Diagnostic Utility you can validate the Horizon certificates used by the Enrollment Server.
Changelog
Version 2.0
Updated to support VMware Horizon 7.4 and later
Added LogonTest method; Performs basic validation of generated certificates
Display expiry time for Enrollment and CA certificates
Display additional information of generated certificates
[sta_anchor id=”xvcutil” /]
Cross vCenter Workload Migration Utility
The Cross vCenter Workload Migration Utility allows you to move VM’s between vCenter servers using a gui. It now also supports migrating within the same vCenter so you can manage all vmotions with this tool.
Changelog
Version 2.3, October 18, 2018
Added support for migration within a single vCenter server
[sta_anchor id=”vropsrestnot” /]
vRealize Operations REST Notifications Helper
vRealize Operations REST Notifications Helper helps vRealize Operations Manager users improve and customize the REST notifications of alerts. It collects the most useful information about an alert, creates a new payload by user configuration, and sends it to third parties.
Changelog
Version 1.1.3
Added “recommendations” value to the final payload
All recommendations of the alert are added to the payload as a single string, separated with “\n”.
[sta_anchor id=”html5″ /]
vSphere HTML5 Web Client
It’s already fully featured in vSphere 6.7 u1 but that doesn’t stop the VMware engineers from updating the fling as well.
Changelog
Fling 3.42 – Build 10321112
New Features
Dark theme mode for vSphere Client
Go to User menu and click on Switch theme to switch over to Dark theme mode of vSphere Client
vCenter Authentication Proxy UI is added to vCenter -> Configure -> Authentication Proxy
System configuration displays the summary of vCenter (multiple vCenters in case of linked mode) and PSC node (in case of external PSC) and also show them as links. Clicking on these links will open the VAMI UI for these nodes.
Update content library item
Clone vApp to a vApp template in content library
New vApp from a vApp template in content library
Improvements
If there are multiple vCenter servers in vSphere Client connected using linked mode, then certain operations like Deploy OVF across different vCenters will result in a certificate warning asking users to open the vSphere Client for the different vCenter than the one you are using. This warning dialog is updated to give the URL of the vCenter server as a link (Refer this reddit post for reported issue)
Bug fixes
Performance fix for loading actions menu when fling appliance is pointed to a 6.5 vCenter with external PSC
Known Issues
Dark theme might not render well for certain areas of the client. One such known area is for any VMware or partner plugins which are already ported over to HTML5 client. Give us feedback using feedback tool if you notice any areas which does not render well in dark mode.
I got the question today from Fabian Lenz if it is possible to send messages to end users using the Horizon API. I knew I had seen it somewhere already and here’s a quick explanation.
There are two method’s to do this, one for a single session and the other for a group of sessions. Both fall under the session service.
$services1.session | gm
You can see both the methods called session_sendmessage and session_sendmessages if we look at what’s required for both we see that the difference is a single sessionid or an array of session id’s.
Let’s see what the API explorer says what’s needed.
So the msgtype is a string that can have three values and the message is just a string, let’s test this.
I am lazy and will use get-hvlocalsession for the sessionid.
$session=get-HVlocalsession | select -first 1
I do the -first 1 so it isn’t an array but a single session.
Now let’s send a message.
$services1.session.Session_SendMessage($session.id,"INFO","This is a test message for retouw.nl at 30-10-2018 19:13h")
And the result:
Now let’s do the same for multiple sessions.
$sessions=get-HVlocalsession
$services1.session.Session_SendMessages($sessions.id,"ERROR","This is a test message with multiple recipients for retouw.nl at 30-10-2018 19:25h")
And to show that this also works for global sessions (both where connected to pod2cbr1)
$sessions=get-HVglobalsession
$services2.session.Session_SendMessages($globalsessions.id,"WARNING","This is a test message with multiple global recipients for retouw.nl at 30-10-2018 19:30h")
If you want to filter the sessions on user or machine name you can filter the $globalsessions on $globalsessions.namesdata.basenames
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here:
Cookie Policy