Category: English

English version of my posts.

  • Disable Default Untitled Tab in Visual Studio

    A new tab with name “Untitled-1” is opened by default when you run Visual Studio if you closed all files last time run Visual Studio. It’s not big deal but annoying. Following is how to disable the default untitled tab in Visual Studio

    1. Click “Manage” button on lower left corner of Visual Studio.
    2. Search keyword “Untitled“.
    3. You will find a option call “Workbench: Startup Editor“.
    4. It’s “newUntitiledFile” by default.
    5. Change it to “none“.

    Now. “Untitled-1” tab goes away when you launch Visual Studio next time.

  • Cisco UCS Error: Applying moref properties. Remote-Invocation-Error.

    Cisco UCS Manager shows following errors with code “F1001201”.

    Applying moref properties(FSM:sam:dme:MorefImportRootApplyMoRefs)​. Remote-Invocation-Error: FSM Retries Exhausted.
    

    The reason is Cisco UCS Manager cannot imports some configurations when the UCS is setup.

    Solution:

    1. Login to Cisco UCS Manager by SSH.
    2. Run following commands:
      • # scope system
    3. If you want to see what is pending on importing please run following commands, otherwise skip this step:
      • # show pending-import
      • # show pending-import fsm status expand detail
    4. Delete pending imports:
      • # delete pending-import
      • # commit-buffer
    5. The alerts should go away now in Cisco UCS Manager GUI.

    This procedure is online operation without downtime required.

  • Agentless Management with PowerShell for DELL iDRAC

    DELL provides agentless management of iDRAC by PowerShell. It’s more convenience for enterprise level infrastructure compare with HPE Scripting Tools or Cisco PowerTools. You don’t have to install any extra software to retrieve hardware data from iDRAC

    DELL provides an article “Agentless Management with PowerShell 3.0 – CIM Cmdlets and iDRAC/Lifecycle Controller” with a sample code which is very detail. The scripts leverage public repos on internet: schemas.dell.com.

    But what if your infrastructure is offline or internet is blocked?

    After few hours dig into it. I found a workaround works in my environment.

    1. Go to DCIM library profile to find profile of what your iDRAC. (I use DCIM System Info Profile for example)
    2. The document tells what’s the ” Implementation Namespace” and “Central Class”.
    3. Follow sample code in DELL document but when you connect CIM session use following format:
    Get-CimInstance -CimSession $session -ClassName <class name> -Namespace <Name space name>

    In my sample, the command is:

    Get-CimInstance -CimSession $session -ClassName DCIM_SystemView -Namespace "root/dcim"

    I have some posts talk about PowerShell. Here is the article to get space utilization of Windows Servers.

  • Thoughts of VMworld 2019

    This is my 7th time been VMworld. It’s a great IT conference. Meet genius people, experience latest technologies, discuss with experts, and listen to other’s ideas. Technology is changing really fast. I still remember VMworld was talking about ‘be pioneers’ few years ago. But now we have moved to cloud world.

    ‘Virtualization’ was the big focusing when I first time attended VMworld. Now VMware, Microsoft and Red Hat grabbed most of market shares. ‘Virtualization’ is very maturely today. I could see most of 3rd party vendors were focused on ‘performance monitor’ on VMworld 2017. I think the reason was no space on ‘virtualization’ market, but performance monitor was a big market. After two years, we could see lot of great virtualization performance products, such as vRealize Operation Managers, NetApp OCI, Uila…etc. Even open source product like Zabbix, added more support of ‘virtualization’ product. What’s the next?

    When I went to Solution Exchange this year. Backup product everywhere, they have big booths and great shows out there. My view is cloud backup would be under spotlights in next few years. The reason is customers are moving from premises to cloud, or somehow leverage cloud. Data protection is a new demand. Every storage vendor plans or already published their data protection product aims to cloud backup. Such as VMware Cloud for AWS for DR. Some new innovators also provide pure cloud based backup services. Such as Clumio, it backups data from premises to AWS cloud with 0 traffic charge.

    VMware released ‘Project Pacific’ on VMworld 2019. It aims to native apps and containers. It’s a evolution of vSphere. I think it will renew vSphere product lifecycle and give vSphere administrators more opportunities for next decade if it can be successfully. Think about containers can be vMotion between ESXi hosts, and HA protected…all these vSphere attributes will be part of containers. And everything is manageable under vSphere Client HTML 5 version. I believe it will be VMware’s next big thing.

    I joined a session of ESXi on ARM. Looks like it’s still on very early stage. People is still discussing use case of that architecture. One thing is it can be witness node of vSAN cluster. I think the advantage of ESXi on ARM is services are running on a virtual machine on ESXi on ARM. Virtual machine is something easy to protect, recovery or program. It means services are more stable and flexible. This attribute matches mission critical product line. It maybe more usefully on manufacturing. For example a ESXi on Raspberry Pi. It’s portable, low cost, low power consumption, can be survived in hard environment. Looks like a ideal solution. Only thing is service providers may need to cover hardware, ESXi, virtual machine, guest OS and applications. The reason is ESXi on ARM need to be well tuned. I don’t think end users like to do such complex things. What they need is ‘power up, plugin and use’ when they have a small device on hands.

    Few other things of vSphere. vMotion performance will be increased. The suspending time will be significantly reduced. It will big help for database virtual machine migration. VMware technical support model will be changed. Current higher level supports will be transferred to ‘Primer Support’. For me, it’s just another way to increasing support cost. 🙂

    I hope VMworld will be hosted in other city next year (Looks like not possible). San Francisco downtown is not a ideal place for big conference. It’s tight and expensive. It leads to lower quality of hotel and food.

  • Convert Virtual Machine of VirtualBox to ESXi

    My coworker want to build a virtual machine on ESXi, but vendor only support virtual appliance of Oracle VirtualBox format. VMware has a KB article to show how to “Importing Virtual Machine from Oracle VirtualBox to VMware Fusion, Workstation, or Player (2053864)“. It’s working fine. But it’s not applicable for VMware ESXi.

    If you follow the guide to export .ova file and import to ESXi. It will show error below on ESXi 6.0 or later:

    Issues detected with selected template. Details….No supported hardware versions among….

    After couple of hours’ deep dive. I figured out a way to convert VirtualBox to ESXi. You need Oracle VirtualBox, VMware Workstation or VMware Player and VMware ESXi host.

    1. Select the virtual machine -> Go to main menu -> File -> Export appliance.
    2. Choose the virtual machine.
    3. Make sure Format is “Open virtualization format 1.0“.
    4. Export to a .ova file.
    5. Open the .ova file in VMware Workstation or VMware Player.
    6. The import of the VM maybe failed with following error. Just click Retry button it will work.
      The import failed because xxxxx did not pass OVF specification conformance or virtual hardware compliance checks.
    7. Select the virtual machine and go to main menu -> File -> Export to OVF.
    8. VMware Workstation or VMware Player generates .ovf, .mf and .vmdk files.
    9. Edit .ovf file and find the line with keyword “VirtualSystemType“.
    10. Change the value “vmx-XX” to the version lower or equal to your ESXi version.
    11. Edit .mf file and remove SHA256 value of .ovf file in first line.
      SHA256(XXXXX.ovf)= xxxxxxxxxxxxxxxxx
    12. Now it’s ready to import to VMware ESXi host.

    Conclusion

    This procedure is not involve any code or command. There are also couple of other ways to convert VirtualBox to ESXi by ovftool command line. I tried several ways but didn’t work. Maybe I did something wrong.

    In step 10, I changed VM version in .ovf file directly. I think you can also leverage VMware Workstation or VMware Player to downgrade the virtual machine’s version in GUI. It should work as long as the version is lower than your ESXi supported VM version.

  • Enable Windows Update on SCCM Managed Computer

    Computer cannot contact Microsoft update service to upgrade latest patches if it’s managed by SCCM policy. Sometimes we may need to keep latest patch for testing, security or other purpose, such as when you create a golden image, you always want to keep the system up to date.

    I found an article “How To: Remove WSUS Settings and Restore Windows Update Defaults” talks about how to delete registry keys to workaround the restriction.

    I also found actually just need to change two keys in registry if you want to enable Windows Update service temporarily.

    1. Backup registry path below.
      HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdate
    2. Go to the same path above.
    3. Change value of “DisableWindowsUpdateAccess” from “1” to “0”
    4. Go to following registry path.
      HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdateAU
    5. Change value of “UseWUServer” from “1” to “0”

    I also wrote another post about solution of install standalone patch on Windows Server 2016 for your reference: “The update is not applicable to your computer” When Install Standalone Patch on Windows Server 2016

  • Cannot Open Cisco UCS KVM Console By Java

    When you lunch KVM console in Cisco UCS Manager. You probably get following error message:

    Unable to launch the application

    Error: you can not run this program because your system deployment.config file states that an enterprise configuration file is mandatory…

    This is caused by Java. There are two things you can try to fix KVM console:

    • Install Java on a directory without “space”. For example, install it on C:javajre7.
    • Delete Sun folder in C:windows. But please make a backup of the folder since it may contains some special configuration of your enterprise.

    I have another blog talking about UCS KVM issue: Cisco UCS Blade Cannot Get IP Address for KVM

  • Validating Connection Result of Connect-VIServer

    Validating connection result of Connect-VIServer is trick since VMware doesn’t use the standard way of throwing errors.

    There are different error messages for different scenarios. We can leverage “Try Catch Finally” of PowerShell to testing connection result and output customized errors.

    The essential format of testing vCenter connection is below. PowerShell cannot catch error message if you don’t add “-ErrorAction Stop” when connect vCenter.

    try{
        connect-viserver vcenter-xxxx -ErrorAction Stop
    }
    catch [VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.InvalidLogin]{
        Write-Host "Permission issue"
    }
    catch [VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ViServerConnectionException]{
        Write-Host "Cannot connect to vCenter Server"
    }
    catch
        {Write-Host "Other issue"}
    finally{
        write-host "the end."
    }

    How to know error types of the validating connection result?

    You probably have question how did I know which error types are for what? I used a very simple way that just give it a try. 🙂

    # Simulating connection error
    Connect-VIServer vCenter.zhengwu.org -User "xxx" -Password "yyy"
    
    # Format output of $Error. $Error stores output of errors in PowerShell.
    $error[0] | fl * -force
    
    # You will see similar lines below
    writeErrorStream      : True
    PSMessageDetails      :
    Exception             : VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.InvalidLogin: 7/29/2019 9:27:30 AM   Connect-VIServer                Cannot complete login due to an
                            incorrect user name or password.         ---> VMware.Vim.VimException: Cannot complete login due to an incorrect user name or password. --->
                            System.ServiceModel.FaultException`1[VimApi_67.InvalidLogin]: Cannot complete login due to an incorrect user name or password.
    

    VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.InvalidLogin is the error type we want to find.

    Conclusion

    This is very simple way to validating connection result of Connect-VIServer. Looks like the result errors coming from different assemblies. For example, connection error is VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ViServerConnectionException. It’s hard to find out all possible errors. I’m looking for a official document but no lucky. Please let me know if you know where I can reference.

  • Bitbucket Server Integration With Visual Studio Code on Windows

    There is an official Bitbucket extension for Visual Studio Code if you use Bitbucket Cloud. Bitbucket has not yet released official extension for Bitbucket Server users. Following is how to configure Visual Studio Code to use Bitbucket Server.

    Before the procedure you need to collect the following information:

    • Your user name on Bitbucket Server.
    • Your email on Bitbucket Server.
    • Decide the local path to store code. (It’s c:tempgit in this guide)
    • Your account has permission to modify repositories on Bitbucket Server.
    • Assume project name is “ExampleProject” on Bitbucket Server.
    • Assume repository name in the project is “ExampleRepository“.
    • Get the URL of the target repository. (It’s https://[email protected]/scm/exampleproject/examplerepository.git in this guide)
    • Make sure you have the latest Visual Studio Code installed.

    Time needed: 30 minutes

    1. Download and install Git.

      Download windows installer in Github.
      Installation is simple. Only thing is to make sure to choose “Visual Studio Code” when it asks editor integration.

    2. Configure user name and email in Git.

      Name and email should match your account information on Bitbucket server.
      Run the commands in Windows command prompt.
      $ git config --global user.name "Name"
      $ git config --global user.email "[email protected]"

    3. Clone repository to local.

      Open a command prompt. Go to a folder you want to clone the remote “ExampleRepositiry” to. Run command:
      git clone https://[email protected]/scm/exampleproject/examplerepository.git
      You will see a sub-folder with the name “ExampleRepository” is created in local.
      A hidden folder “.git” is created in the sub-folder. It’s used to tracking changes.

    4. Open workspace in Visual Studio Code

      Bitbucket Server configuration is completed in local.
      Now open Visual Studio Code -> File -> Add folder to workspace -> Open “ExampleRepository” folder.
      Visual Studio Code is integrated with Git in-the-box. It detects the repository automatically.
      It shows “Unrack” if you create a new file in the folder.

    Conclusion

    This is an expressway to integrate Bitbucket Server with Visual Studio Code. I’m still new on Git. Following are some useful information.

    https://www.atlassian.com/git/tutorials/install-git?section=windows

    https://www.atlassian.com/git?utm_campaign=learn-git&utm_medium=in-app-help&utm_source=stash

  • Virtual Machine Cannot Mount ISO on System Center Virtual Machine Manager 2012 R2

    A few days ago a user report to me that he cannot mounts ISO image to virtual machines on SCVMM 2012 R2. The error message is the following:

    Error (2912)
    
    An internal error has occurred trying to contact the dcahyv01.amat.com server: NO_PARAM: NO_PARAM.
    
     
    
    WinRM: URL: [http://hyper01.contoso.com:5985], Verb: [INVOKE], Method: [GetError], Resource: [http://schemas.microsoft.com/wbem/wsman/1/wmi/root/microsoft/bits/BitsClientJob?JobId={89EC51A2-633C-4E06-8B09-3A84146830B5}]

    The reason is the communication between SCVMM and Hyper-V servers are blocked due to certification on SCVMM application is expired. The default expiry date of SCVMM certification is 1/1/2019. The issue got fixed after renewing certificates in System Center 2012 R2 Virtual Machine Manager.