Quantcast
Channel: VMware Communities : All Content - All Communities
Viewing all 195209 articles
Browse latest View live

VSAN : disques SSD validés par VMware

$
0
0

Bonjour,

En vue de l'activation d'un VSAN (witness), il me faut établir un devis pour des disques SSD nécessaires.
L'objectif est d'en acheter au moins 4 (2 par serveur) (dont 1 en SPARE en ligne par serveur).

Je rappelle qu'une gros partie des disque SAS de chacun des 2 ESX serviront au VSAN.

Est-ce que VMware a validé une liste de disque SSD pour DELL R740 ?

Quelle capacité (Go) faut-il pour ces disques SSD ?

L'objectif est de pouvoir réaliser un devis.

 

J'espère que le VSAN permettra l'exécution d'une VM quelque soit l'endroit où cette VM sera stocké dans le VSAN, surtout en cas de défaillance d'un des 2 ESX, avec redémarrage automatique de la VM avec l'autre ESX, grâce au fonctionnalités HA.

 

Cdlt,


High Sierra host with High Sierra + FileVault guest - cannot boot

$
0
0

Hello;

 

I am using macOS running on VM Fusion 10.1.3 to test the deployment of software and settings.

In particular, I am experimenting setting up FileVault where the guest is a High Sierra.

Everything works well until I enable FileVault 2 and restart the guest.

When rebooting looks like Fusion cannot see the boot and stops at the Boot Manager and no option there works.

Any suggestions?

 

Regards!

Windows vCenter 6.0.0 migration to VCSA 6.5 U2

$
0
0

Hello,

 

Is it possible to migrate Windows vCenter 6.0.0 bulid 3634793 to vCSA 6.5 U2e?Because once the target vCSA is started, the "firstboot failed" pops up. DNS and NTP are work ok.

Has anyone had such a problem?

API call to open console

$
0
0

I am writing a python script to open a console to a virtual machine.  Looking for any direction on doing this either through the api or using the pyvmomi SDK.  I am able to connect and pull all VM information, but the examples I’ve found for opening a console just don’t seem to work.  I have found this.  https://programtalk.com/vs2/?source=python/13804/pyvmomi-community-samples/samples/generate_html5_console.py. In that example it says to talk to port 7331.  It does not look like the vcenter servers are listening on that port.

 

Also, is there a way to do this by opening a console window like the thick client uses vs an HTML page opened in a browser?

Feedback: VMware Workstation 15 new status icon state change harder to see

$
0
0

The status icons are harder to see in Workstation 15 as compared to Workstation 14. I have a number of images where the network adapter is disabled and I can no longer tell at a glance whether or not the adapter is enabled. There is a green dot now instead of a color change but the dot is too tiny. Here's a pic. Depending on your screen size and pixel density it may be easy to see. Like in my browser as I'm typing this the images are scaled a little so it's easier to see.

 

Workstation 15 status icons hard to see.PNG

I prefer the old icons simply because it was easier to see when they changed state with small icons. Again this will depend on your screen size and pixels. If I had to guess my icons probably show at 1/8th of an inch.

New installation of Vmware fusion 11 pro on macos Mojave Could not open /dev/vmmon: Broken pipe

$
0
0

Why is this happening on a an upgrade to the lates version on the latest version of Macos....

 

Any clues

 

I am getting fed up with these sort of issues with VMware when Parallels works perfectly...

 

 

????

VCenter Appliance VPXD service does not Start with Error

$
0
0

Hello. After rebooting, I could not connect to Vcentr every time I received a 503 error When I start vmware-vpxd manually, I get the following error. What is Stderr = Key not found: vpxd / secureSoapPort? How to fix  and what to do? Help me please! Thank!

 

service-control --start vmware-vpxd

INFO:root:Service: vmware-vpxd, Action: start

Service: vmware-vpxd, Action: start

2019-01-28T19:29:57.828Z   Running command: ['/sbin/chkconfig', u'vmware-vpxd']

2019-01-28T19:29:57.958Z   Done running command

2019-01-28T19:29:57.958Z   Running command: ['/sbin/service', u'vmware-vpxd', 'status']

2019-01-28T19:29:58.532Z   Done running command

2019-01-28T19:29:58.532Z   Running command: ['/sbin/chkconfig', '--force', u'vmware-vpxd', 'on']

2019-01-28T19:29:58.595Z   Done running command

2019-01-28T19:29:58.595Z   Running command: ['/sbin/service', u'vmware-vpxd', 'start']

2019-01-28T19:30:01.535Z   Done running command

2019-01-28T19:30:01.536Z   Invoked command: ['/sbin/service', u'vmware-vpxd', 'start']

2019-01-28T19:30:01.536Z   RC = 1

Stdout = Key not found: vpxd/secureSoapPort

vmware-vpxd: VC SSL Certificate does not exist, it will be generated by vpxd

Waiting for the embedded database to start up: success

Executing pre-startup scripts...

vmware-vpxd: Starting vpxd by administrative request.

success

vmware-vpxd: Waiting for vpxd to start listening for requests on

Waiting for vpxd to initialize: Usage: wait_for_vpxd.py [options]

 

 

wait_for_vpxd.py: error: -p option requires an argument

failed

failed

vmware-vpxd: vpxd failed to initialize in time.

vpxd is already starting up. Aborting the request.

 

 

Stderr = Key not found: vpxd/secureSoapPort

 

 

2019-01-28T19:30:01.536Z   {

    "resolution": null,

    "detail": [

        {

            "args": [

                "Command: ['/sbin/service', u'vmware-vpxd', 'start']\nStderr: Key not found: vpxd/secureSoapPort\n"

            ],

            "id": "install.ciscommon.command.errinvoke",

            "localized": "An error occurred while invoking external command : 'Сommand: ['/sbin/service', u'vmware-vpxd', 'start']\nStderr: Key not found: vpxd/                                                                      secureSoapPort\n'",

            "translatable": "An error occurred while invoking external command :'%(0)s'"

        }

    ],

    "componentKey": null,

    "problemId": null

}

ERROR:root:Unable to start service vmware-vpxd, Exception: {

    "resolution": null,

    "detail": [

        {

            "args": [

                "vmware-vpxd"

            ],

            "id": "install.ciscommon.service.failstart",

            "localized": "An error occurred while starting service 'vmware-vpxd'                                                                      ",

            "translatable": "An error occurred while starting service '%(0)s'"

        }

    ],

    "componentKey": null,

    "problemId": null

}

Unable to start service vmware-vpxd, Exception: {

    "resolution": null,

    "detail": [

        {

            "args": [

                "vmware-vpxd"

            ],

            "id": "install.ciscommon.service.failstart",

            "localized": "An error occurred while starting service 'vmware-vpxd'                                                                      ",

            "translatable": "An error occurred while starting service '%(0)s'"

        }

    ],

    "componentKey": null,

    "problemId": null

}

Wanted to ask about ESXi 6.7.0UI Sorting problem.

$
0
0

Hi, I have installed to latest VMWare ESXi 6.7, however, I find there seems to have a problem on the Hosts sorting function.

 

Each time I edited any configuration, doing any save or page refresh, the Sorting will reset and I have to re-sort it again.

 

I just wanted to ask it is belongs to the normal behavior? (Or it is system designs)

 

Here have an uploaded video to demonstrate the issue.

 

 

 

Thank you.


Hi,I am unable to play VMware workstation player 15 as it recognizes host OS version as Windows 6 while it is actually Windows 10(education) edition.Please help me out

$
0
0

Hi,I am unable to play VMware workstation player 15 as it recognizes host OS version as Windows 6 while it is actually Windows 10(education) edition. Please help me out

Win 10 - LTSB 2016 - instant Clone - Major Issues.

$
0
0

I'm NOT the only one having incredibly major issues w/ Windows 10 and Instant Clones am i ?

 

Has anyone got working IC's with LTSB 2016 ?  ( i.e. Good Enough to push out to users )

 

Even before i lock down Anything - the IC's have a severe pause when clicking anything typing anything. Calc.exe takes 10 seconds to open.

 

i Tried the VMware optimization tool Many times.. My start Menu is always dorked after i do that. Cant figure out how to fix that. So i stopped using it.

 

Then i went to Microsofts 'Recommended Settings for VDI Desktops" and added all those local Group Policies.. and task scheduler disables.

 

Now.. i cant type anything in the Start menu.

 

also getting endless "Host Process for windows tasks has stopped working"

 

Faulting Application name - Taskhostw.exe

 

Not even sure where to start

Management Console "Configure" button missing

$
0
0

Hi at all

 

The Server was booted while i am in the VMware UEM Console --> Configure settings. After the reboot, the "configure" button does not appear at all. How can i reactivate this button?

 

UEM_ConfigureButton_Not_Appears.PNG

 

UEM Console Version = 9.6

 

I have tested the UEM Configuration settings on a clean install and the "configure" button is displayed. It seems to me that this button is locked globaly because other users also can't see the button.

 

Does anyone have an idea?

 

Best Regards

tschuegy

Remote server

$
0
0

I suspend my machine and restart my computer and now i cannot connect on my own remote server, it always pop up connection timed out...

 

Any help?

Optane for VDI, is it overkill?

$
0
0

I have a small VDI environment, only 200 Windows 10 systems with 8Gb fiber channel connecting to the storage array. We are looking at buying new equipment and have a good size budget for an HCI solution using vSAN. Off the bat, I expect storage latency to drop, just having it in rack, but I want to know if NVMe SSD with an Optane caching tier is worth it. Keep in mind we will be encrypting the vSAN.

 

I know, I know... it is workload dependent. I am just trying to get a baseline on if Optane is overkill for VDI.


I am considering 3 SSD configurations

1. All NVMe with Optane Cache

2. NVMe cache + SAS storage

3. All SAS

 

Also, please let me know if I am overlooking another storage technology that is better for VDI.

Active Directory Connection Issue in v2.0.0.2

$
0
0

I am not able to associate VMWare Skyline into our AD to port 636. I get the following error. We dont have kerberos anonumous authentication in our environment. I read in earlier posts that it will be supported in future versions. Just checking if its being supported in this version or is there a workaround

 

 

Upgrading Powercli from 5.5 to 6.5

$
0
0

Hi Everyone,

     Recently in our environment, we moved from the thinkclient 5.5 Vsphere software to the Webclient 6.5 Software on our ESX host. During that time our integration is broken under Vsphere 5.5 Powercli (Based on .NET 2.0 Framework). Now it seems in 6.5 it's now called Vmware Powercli and one of the components inside is actually the VSphere PowerCli component which is what I want. I did the upgrade and it impacted the project on recompile giving a bunch of undefined errors for Vmware.Vim.virtualmachine. After that, I discovered I needed to move to .Net 4.5 but it seems the Passthrough Token SSPI authentication is no longer functioning as normal. Everything else seems to work like a charm. My code is below for the SSPI authentication. This code was tested and verified to work with 5.5

 

 

[code]

Imports System.Runtime.InteropServices

Imports System.Security.Principal

Imports VMware.Vim

Imports System.Xml.Serialization

Imports System.Xml

Imports System.Runtime.Serialization

 

 

Module SSPIClient

 

 

End Module

 

 

Public Class SspiClients

    Private ReadOnly _sspiHelper As SspiHelper

    Private ReadOnly _sspiPackageType As SspiPackageType

 

 

    Private _clientToken As Byte()

    Private _continueProcessing As Boolean

 

 

    Public Sub New(ByVal principalName As String, ByVal sspiPackageType As SspiPackageType)

        _sspiHelper = New SspiHelper(principalName)

        _sspiPackageType = sspiPackageType

 

 

        _sspiHelper.InitializeClient(_clientToken, Nothing, _continueProcessing, _sspiPackageType)

    End Sub

 

 

    Public ReadOnly Property Token() As Byte()

        Get

            Return _clientToken

        End Get

    End Property

 

 

    Public Sub Initialize(ByVal serverToken As Byte())

        _sspiHelper.InitializeClient(_clientToken, serverToken, _continueProcessing, _sspiPackageType)

    End Sub

End Class

 

 

Public Enum SspiPackageType

    Kerberos

    NTLM

    Negotiate

End Enum

 

 

Friend NotInheritable Class FaultConverter

    Private Sub New()

    End Sub

    Public Shared Function CreateMethodFault(ByVal exception As Exception) As MethodFault

        Dim fault As MethodFault = Nothing

 

 

        If exception Is Nothing Then

            Return Nothing

        End If

 

 

        Dim soapException As SoapException = If(TryCast(exception, SoapException), TryCast(exception.InnerException, SoapException))

 

 

        If soapException IsNot Nothing Then

            'fault = ConvertSoapException(soapException)

        End If

 

 

        Return fault

    End Function

End Class

 

 

Public Class MethodFaultUnused

    Public Sub New()

    End Sub

 

 

    <XmlElement("dynamicProperty")> _

    Public Property dynamicProperty() As DynamicProperty()

        Get

            Return m_dynamicProperty

        End Get

        Set(ByVal value As DynamicProperty())

            m_dynamicProperty = value

        End Set

    End Property

    Private m_dynamicProperty As DynamicProperty()

    Public Property dynamicType() As String

        Get

            Return m_dynamicType

        End Get

        Set(ByVal value As String)

            m_dynamicType = value

        End Set

    End Property

    Private m_dynamicType As String

    Public Property faultCause() As LocalizedMethodFault

        Get

            Return m_faultCause

        End Get

        Set(ByVal value As LocalizedMethodFault)

            m_faultCause = value

        End Set

    End Property

    Private m_faultCause As LocalizedMethodFault

    <XmlElement("faultMessage")> _

    Public Property faultMessage() As LocalizableMessage()

        Get

            Return m_faultMessage

        End Get

        Set(ByVal value As LocalizableMessage())

            m_faultMessage = value

        End Set

    End Property

    Private m_faultMessage As LocalizableMessage()

End Class

 

 

Friend Class SspiHelper

    Private Const MAX_TOKEN_SIZE As Integer = 12288

 

 

 

 

    Public Const STANDARD_CONTEXT_ATTRIBUTES As Integer = NativeContants.ISC_REQ_CONFIDENTIALITY Or NativeContants.ISC_REQ_REPLAY_DETECT Or NativeContants.ISC_REQ_SEQUENCE_DETECT Or NativeContants.ISC_REQ_CONNECTION

 

 

    Public Const TOKEN_QUERY As Integer = &H8

 

 

    Private ReadOnly _sAccountName As String

 

 

    Private _bGotClientCredentials As Boolean

    Private _bGotServerContext As Boolean

    Private _bGotServerCredentials As Boolean

    Private _hClientContext As New SECURITY_HANDLE(0)

    Private _hInboundCred As New SECURITY_HANDLE(0)

    Private _hOutboundCred As New SECURITY_HANDLE(0)

    Private _hServerContext As New SECURITY_HANDLE(0)

 

 

    Public Sub New()

        Dim windowsIdentity__1 As WindowsIdentity = WindowsIdentity.GetCurrent()

        If windowsIdentity__1 IsNot Nothing Then

            _sAccountName = windowsIdentity__1.Name

        End If

    End Sub

 

 

    Public Sub New(ByVal sRemotePrincipal As String)

        _sAccountName = sRemotePrincipal

    End Sub

 

 

 

 

    Public Sub InitializeClient(ByRef clientToken As Byte(), ByVal serverToken As Byte(), ByRef bContinueProcessing As Boolean, Optional ByVal sspiPackageType__1 As SspiPackageType = SspiPackageType.Negotiate)

        clientToken = Nothing

        bContinueProcessing = True

 

 

        Dim clientLifeTime = New SECURITY_INTEGER(0)

 

 

        If Not _bGotClientCredentials Then

            Dim result As Integer = NativeMethods.AcquireCredentialsHandle(_sAccountName, sspiPackageType__1.ToString(), NativeContants.SECPKG_CRED_OUTBOUND, IntPtr.Zero, IntPtr.Zero, 0, _

             IntPtr.Zero, _hOutboundCred, clientLifeTime)

 

 

            If result <> NativeContants.SEC_E_OK Then

                Throw New SspiException("Couldn't acquire client credentials", result)

            End If

 

 

            _bGotClientCredentials = True

        End If

 

 

        Dim ss As Integer

 

 

        Dim clientTokenSecBufferDesc = New SecBufferDesc(MAX_TOKEN_SIZE)

 

 

        Try

            Dim contextAttributes As UInteger

 

 

            If serverToken Is Nothing Then

                ' null string pszTargetName,

                'int Reserved1,

                'int TargetDataRep

                'Always zero first time around...

                'int Reserved2,

                'pHandle CtxtHandle = SecHandle

                'ref SecBufferDesc pOutput, //PSecBufferDesc

                'ref int pfContextAttr,

                'ref IntPtr ptsExpiry ); //PTimeStamp

                ss = NativeMethods.InitializeSecurityContext(_hOutboundCred, IntPtr.Zero, _sAccountName, STANDARD_CONTEXT_ATTRIBUTES, 0, NativeContants.SECURITY_NATIVE_DREP, _

                 IntPtr.Zero, 0, _hClientContext, clientTokenSecBufferDesc, contextAttributes, clientLifeTime)

            Else

                Dim serverTokenSecBufferDesc = New SecBufferDesc(serverToken)

 

 

                Try

                    ' null string pszTargetName,

                    'int Reserved1,

                    'int TargetDataRep

                    'Always zero first time around...

                    'int Reserved2,

                    'pHandle CtxtHandle = SecHandle

                    'ref SecBufferDesc pOutput, //PSecBufferDesc

                    'ref int pfContextAttr,

                    'ref IntPtr ptsExpiry ); //PTimeStamp

                    ss = NativeMethods.InitializeSecurityContext(_hOutboundCred, _hClientContext, _sAccountName, STANDARD_CONTEXT_ATTRIBUTES, 0, NativeContants.SECURITY_NATIVE_DREP, _

                     serverTokenSecBufferDesc, 0, _hClientContext, clientTokenSecBufferDesc, contextAttributes, clientLifeTime)

                Finally

                    serverTokenSecBufferDesc.Dispose()

                End Try

            End If

 

 

            If ss <> NativeContants.SEC_E_OK AndAlso ss <> NativeContants.SEC_I_CONTINUE_NEEDED Then

                Throw New SspiException("InitializeSecurityContext() failed!!!", ss)

            End If

 

 

            clientToken = clientTokenSecBufferDesc.GetSecBufferByteArray()

        Finally

            clientTokenSecBufferDesc.Dispose()

        End Try

 

 

        bContinueProcessing = ss <> NativeContants.SEC_E_OK

    End Sub

 

 

    Public Sub InitializeServer(ByVal clientToken As Byte(), ByRef serverToken As Byte(), ByRef bContinueProcessing As Boolean, Optional ByVal sspiPackageType__1 As SspiPackageType = SspiPackageType.Negotiate)

        serverToken = Nothing

        bContinueProcessing = True

        Dim newLifeTime = New SECURITY_INTEGER(0)

 

 

        If Not _bGotServerCredentials Then

            Dim result As Integer = NativeMethods.AcquireCredentialsHandle(_sAccountName, sspiPackageType__1.ToString(), NativeContants.SECPKG_CRED_INBOUND, IntPtr.Zero, IntPtr.Zero, 0, _

             IntPtr.Zero, _hInboundCred, newLifeTime)

 

 

            If result <> NativeContants.SEC_E_OK Then

                Throw New SspiException("Couldn't acquire server credentials handle!!!", result)

            End If

 

 

            _bGotServerCredentials = True

        End If

 

 

        Dim serverTokenSecBufferDesc = New SecBufferDesc(MAX_TOKEN_SIZE)

        Dim clientTokenSecBufferDesc = New SecBufferDesc(clientToken)

 

 

        Try

            Dim ss As Integer

            Dim uNewContextAttr As UInteger

 

 

            If Not _bGotServerContext Then

                ' [in] handle to the credentials

                ' [in/out] handle of partially formed context.  Always NULL the first time through

                ' [in] pointer to the input buffers

                ' [in] required context attributes

                ' [in] data representation on the target

                ' [in/out] receives the new context handle   

                ' [in/out] pointer to the output buffers

                ' [out] receives the context attributes       

                ' [out] receives the life span of the security context

                ss = NativeMethods.AcceptSecurityContext(_hInboundCred, IntPtr.Zero, clientTokenSecBufferDesc, STANDARD_CONTEXT_ATTRIBUTES, NativeContants.SECURITY_NATIVE_DREP, _hServerContext, _

                 serverTokenSecBufferDesc, uNewContextAttr, newLifeTime)

            Else

                ' [in] handle to the credentials

                ' [in/out] handle of partially formed context.  Always NULL the first time through

                ' [in] pointer to the input buffers

                ' [in] required context attributes

                ' [in] data representation on the target

                ' [in/out] receives the new context handle   

                ' [in/out] pointer to the output buffers

                ' [out] receives the context attributes       

                ' [out] receives the life span of the security context

                ss = NativeMethods.AcceptSecurityContext(_hInboundCred, _hServerContext, clientTokenSecBufferDesc, STANDARD_CONTEXT_ATTRIBUTES, NativeContants.SECURITY_NATIVE_DREP, _hServerContext, _

                 serverTokenSecBufferDesc, uNewContextAttr, newLifeTime)

            End If

 

 

            If ss <> NativeContants.SEC_E_OK AndAlso ss <> NativeContants.SEC_I_CONTINUE_NEEDED Then

                Throw New SspiException("AcceptSecurityContext() failed!!!", ss)

            End If

 

 

            If Not _bGotServerContext Then

                _bGotServerContext = True

            End If

 

 

            serverToken = serverTokenSecBufferDesc.GetSecBufferByteArray()

 

 

            bContinueProcessing = ss <> NativeContants.SEC_E_OK

        Finally

            clientTokenSecBufferDesc.Dispose()

            serverTokenSecBufferDesc.Dispose()

        End Try

    End Sub

 

 

    Public Sub EncryptMessage(ByVal message As Byte(), ByVal bUseClientContext As Boolean, ByRef encryptedBuffer As Byte())

        encryptedBuffer = Nothing

 

 

        Dim encryptionContext As SECURITY_HANDLE = _hServerContext

 

 

        If bUseClientContext Then

            encryptionContext = _hClientContext

        End If

 

 

        Dim contextSizes As SecPkgContext_Sizes

 

 

        Dim result As Integer = NativeMethods.QueryContextAttributes(encryptionContext, NativeContants.SECPKG_ATTR_SIZES, contextSizes)

        If result <> NativeContants.SEC_E_OK Then

            Throw New SspiException("QueryContextAttribute() failed!!!", result)

        End If

 

 

        Dim thisSecHelper = New MultipleSecBufferHelper(1) {}

        thisSecHelper(0) = New MultipleSecBufferHelper(message, SecBufferType.SECBUFFER_DATA)

        thisSecHelper(1) = New MultipleSecBufferHelper(New Byte(contextSizes.cbSecurityTrailer - 1) {}, SecBufferType.SECBUFFER_TOKEN)

 

 

        Dim descBuffer = New SecBufferDesc(thisSecHelper)

 

 

        Try

            result = NativeMethods.EncryptMessage(encryptionContext, 0, descBuffer, 0)

 

 

            If result <> NativeContants.SEC_E_OK Then

                Throw New SspiException("EncryptMessage() failed!!!", result)

            End If

 

 

            encryptedBuffer = descBuffer.GetSecBufferByteArray()

        Finally

            descBuffer.Dispose()

        End Try

    End Sub

 

 

    Public Sub DecryptMessage(ByVal messageLength As Integer, ByVal encryptedBuffer As Byte(), ByVal bUseClientContext As Boolean, ByRef decryptedBuffer As Byte())

        decryptedBuffer = Nothing

 

 

        Dim decryptionContext As SECURITY_HANDLE = _hServerContext

 

 

        If bUseClientContext Then

            decryptionContext = _hClientContext

        End If

 

 

        Dim encryptedMessage = New Byte(messageLength - 1) {}

        Array.Copy(encryptedBuffer, 0, encryptedMessage, 0, messageLength)

 

 

        Dim securityTrailerLength As Integer = encryptedBuffer.Length - messageLength

 

 

        Dim securityTrailer = New Byte(securityTrailerLength - 1) {}

        Array.Copy(encryptedBuffer, messageLength, securityTrailer, 0, securityTrailerLength)

 

 

        Dim thisSecHelper = New MultipleSecBufferHelper(1) {}

        thisSecHelper(0) = New MultipleSecBufferHelper(encryptedMessage, SecBufferType.SECBUFFER_DATA)

        thisSecHelper(1) = New MultipleSecBufferHelper(securityTrailer, SecBufferType.SECBUFFER_TOKEN)

        Dim descBuffer = New SecBufferDesc(thisSecHelper)

        Try

            Dim encryptionQuality As UInteger

            Dim result As Integer = NativeMethods.DecryptMessage(decryptionContext, descBuffer, 0, encryptionQuality)

 

 

            If result <> NativeContants.SEC_E_OK Then

                Throw New SspiException("DecryptMessage() failed!!!", result)

            End If

 

 

            decryptedBuffer = New Byte(messageLength - 1) {}

            Array.Copy(descBuffer.GetSecBufferByteArray(), 0, decryptedBuffer, 0, messageLength)

        Finally

            descBuffer.Dispose()

        End Try

    End Sub

 

 

    Public Sub SignMessage(ByVal message As Byte(), ByVal bUseClientContext As Boolean, ByRef signedBuffer As Byte(), ByRef hServerContext As SECURITY_HANDLE)

        signedBuffer = Nothing

 

 

        Dim encryptionContext As SECURITY_HANDLE = _hServerContext

 

 

        If bUseClientContext Then

            encryptionContext = _hClientContext

        End If

 

 

        Dim contextSizes As SecPkgContext_Sizes

        Dim result As Integer = NativeMethods.QueryContextAttributes(encryptionContext, NativeContants.SECPKG_ATTR_SIZES, contextSizes)

        If result <> NativeContants.SEC_E_OK Then

            Throw New SspiException("QueryContextAttribute() failed!!!", result)

        End If

 

 

        Dim thisSecHelper = New MultipleSecBufferHelper(1) {}

        thisSecHelper(0) = New MultipleSecBufferHelper(message, SecBufferType.SECBUFFER_DATA)

        thisSecHelper(1) = New MultipleSecBufferHelper(New Byte(contextSizes.cbMaxSignature - 1) {}, SecBufferType.SECBUFFER_TOKEN)

 

 

        Dim descBuffer = New SecBufferDesc(thisSecHelper)

 

 

        Try

            result = NativeMethods.MakeSignature(encryptionContext, 0, descBuffer, 0)

            If result <> NativeContants.SEC_E_OK Then

                Throw New SspiException("MakeSignature() failed!!!", result)

            End If

 

 

            'SSPIHelper.SignAndVerify(ref _hClientContext,ref hServerContext,ref DescBuffer);

            Dim encryptionQuality As UInteger

            NativeMethods.VerifySignature(_hServerContext, descBuffer, 0, encryptionQuality)

 

 

            signedBuffer = descBuffer.GetSecBufferByteArray()

        Finally

            descBuffer.Dispose()

        End Try

    End Sub

 

 

    Public Sub VerifyMessage(ByVal messageLength As Integer, ByVal signedBuffer As Byte(), ByVal bUseClientContext As Boolean, ByRef verifiedBuffer As Byte())

        verifiedBuffer = Nothing

 

 

        Dim decryptionContext As SECURITY_HANDLE = _hServerContext

 

 

        If bUseClientContext Then

            decryptionContext = _hClientContext

        End If

 

 

        Dim signedMessage = New Byte(messageLength - 1) {}

        Array.Copy(signedBuffer, 0, signedMessage, 0, messageLength)

 

 

        Dim signatureLength As Integer = signedBuffer.Length - messageLength

 

 

        Dim signature = New Byte(signatureLength - 1) {}

        Array.Copy(signedBuffer, messageLength, signature, 0, signatureLength)

 

 

        Dim thisSecHelper = New MultipleSecBufferHelper(1) {}

        thisSecHelper(0) = New MultipleSecBufferHelper(signedMessage, SecBufferType.SECBUFFER_DATA)

        thisSecHelper(1) = New MultipleSecBufferHelper(signature, SecBufferType.SECBUFFER_TOKEN)

        Dim descBuffer = New SecBufferDesc(thisSecHelper)

        Try

            Dim encryptionQuality As UInteger

 

 

            Dim result As Integer = NativeMethods.VerifySignature(decryptionContext, descBuffer, 0, encryptionQuality)

 

 

            If result <> NativeContants.SEC_E_OK Then

                Throw New SspiException("VerifySignature() failed!!!", result)

            End If

 

 

            verifiedBuffer = New Byte(messageLength - 1) {}

            Array.Copy(descBuffer.GetSecBufferByteArray(), 0, verifiedBuffer, 0, messageLength)

        Finally

            descBuffer.Dispose()

        End Try

    End Sub

End Class

 

 

Public NotInheritable Class NativeContants

    Private Sub New()

    End Sub

    Public Const ISC_REQ_CONFIDENTIALITY As Integer = &H10

    Public Const ISC_REQ_CONNECTION As Integer = &H800

 

 

    Public Const ISC_REQ_REPLAY_DETECT As Integer = &H4

    Public Const ISC_REQ_SEQUENCE_DETECT As Integer = &H8

 

 

    Public Const SEC_E_OK As Integer = 0

    Public Const SEC_I_CONTINUE_NEEDED As Integer = &H90312

 

 

    Public Const SECPKG_ATTR_SIZES As Integer = 0

    Public Const SECPKG_CRED_INBOUND As Integer = 1

    Public Const SECPKG_CRED_OUTBOUND As Integer = 2

    Public Const SECURITY_NATIVE_DREP As Integer = &H10

End Class

 

 

Friend NotInheritable Class NativeMethods

    Private Sub New()

    End Sub

    'SEC_CHAR*

    'SEC_CHAR* //"Kerberos","NTLM","Negotiative"

    '_LUID AuthenticationID,//pvLogonID, //PLUID

    'PVOID

    'SEC_GET_KEY_FN

    'PVOID

    'SecHandle //PCtxtHandle ref

    <DllImport("secur32", CharSet:=CharSet.Unicode)> _

    Friend Shared Function AcquireCredentialsHandle(ByVal pszPrincipal As String, ByVal pszPackage As String, ByVal fCredentialUse As Integer, ByVal pAuthenticationId As IntPtr, ByVal pAuthData As IntPtr, ByVal pGetKeyFn As Integer, _

  ByVal pvGetKeyArgument As IntPtr, ByRef phCredential As SECURITY_HANDLE, ByRef ptsExpiry As SECURITY_INTEGER) As Integer

    End Function

    'PTimeStamp //TimeStamp ref

    'PCredHandle

    'PCtxtHandle

    'PSecBufferDesc SecBufferDesc

    'PCtxtHandle

    'PSecBufferDesc SecBufferDesc

    'managed ulong == 64 bits!!!

    <DllImport("secur32", CharSet:=CharSet.Unicode, SetLastError:=True)> _

    Friend Shared Function InitializeSecurityContext(ByRef phCredential As SECURITY_HANDLE, ByVal phContext As IntPtr, ByVal pszTargetName As String, ByVal fContextReq As Integer, ByVal reserved1 As Integer, ByVal targetDataRep As Integer, _

  ByVal pInput As IntPtr, ByVal reserved2 As Integer, ByRef phNewContext As SECURITY_HANDLE, ByRef pOutput As SecBufferDesc, ByRef pfContextAttr As UInteger, ByRef ptsExpiry As SECURITY_INTEGER) As Integer

    End Function

    'PTimeStamp

    'PCredHandle

    'PCtxtHandle

    'PSecBufferDesc SecBufferDesc

    'PCtxtHandle

    'PSecBufferDesc SecBufferDesc

    'managed ulong == 64 bits!!!

    <DllImport("secur32", CharSet:=CharSet.Unicode, SetLastError:=True)> _

    Friend Shared Function InitializeSecurityContext(ByRef phCredential As SECURITY_HANDLE, ByRef phContext As SECURITY_HANDLE, ByVal pszTargetName As String, ByVal fContextReq As Integer, ByVal reserved1 As Integer, ByVal targetDataRep As Integer, _

  ByRef secBufferDesc As SecBufferDesc, ByVal reserved2 As Integer, ByRef phNewContext As SECURITY_HANDLE, ByRef pOutput As SecBufferDesc, ByRef pfContextAttr As UInteger, ByRef ptsExpiry As SECURITY_INTEGER) As Integer

    End Function

    'PTimeStamp

    'managed ulong == 64 bits!!!

    <DllImport("secur32.Dll", CharSet:=CharSet.Auto, SetLastError:=False)> _

    Friend Shared Function AcceptSecurityContext(ByRef phCredential As SECURITY_HANDLE, ByVal phContext As IntPtr, ByRef pInput As SecBufferDesc, ByVal fContextReq As UInteger, ByVal targetDataRep As UInteger, ByRef phNewContext As SECURITY_HANDLE, _

  ByRef pOutput As SecBufferDesc, ByRef pfContextAttr As UInteger, ByRef ptsTimeStamp As SECURITY_INTEGER) As Integer

    End Function

 

 

    'managed ulong == 64 bits!!!

    <DllImport("secur32.Dll", CharSet:=CharSet.Auto, SetLastError:=False)> _

    Friend Shared Function AcceptSecurityContext(ByRef phCredential As SECURITY_HANDLE, ByRef phContext As SECURITY_HANDLE, ByRef pInput As SecBufferDesc, ByVal fContextReq As UInteger, ByVal targetDataRep As UInteger, ByRef phNewContext As SECURITY_HANDLE, _

  ByRef pOutput As SecBufferDesc, ByRef pfContextAttr As UInteger, ByRef ptsTimeStamp As SECURITY_INTEGER) As Integer

    End Function

 

 

    <DllImport("secur32.Dll", CharSet:=CharSet.Auto, SetLastError:=False)> _

    Friend Shared Function ImpersonateSecurityContext(ByRef phContext As SECURITY_HANDLE) As Integer

    End Function

 

 

    <DllImport("secur32.Dll", CharSet:=CharSet.Auto, SetLastError:=False)> _

    Friend Shared Function QueryContextAttributes(ByRef phContext As SECURITY_HANDLE, ByVal ulAttribute As UInteger, ByRef pContextAttributes As SecPkgContext_Sizes) As Integer

    End Function

 

 

    'managed ulong == 64 bits!!!

    <DllImport("secur32.Dll", CharSet:=CharSet.Auto, SetLastError:=False)> _

    Friend Shared Function EncryptMessage(ByRef phContext As SECURITY_HANDLE, ByVal fQop As UInteger, ByRef pMessage As SecBufferDesc, ByVal messageSeqNo As UInteger) As Integer

    End Function

    'managed ulong == 64 bits!!!

    <DllImport("secur32.Dll", CharSet:=CharSet.Auto, SetLastError:=False)> _

    Friend Shared Function DecryptMessage(ByRef phContext As SECURITY_HANDLE, ByRef pMessage As SecBufferDesc, ByVal messageSeqNo As UInteger, ByRef pfQop As UInteger) As Integer

    End Function

 

 

    ' Context to use

    ' Quality of Protection

    ' Message to sign

    <DllImport("secur32.Dll", CharSet:=CharSet.Auto, SetLastError:=False)> _

    Friend Shared Function MakeSignature(ByRef phContext As SECURITY_HANDLE, ByVal fQop As UInteger, ByRef pMessage As SecBufferDesc, ByVal messageSeqNo As UInteger) As Integer

    End Function

    ' Message Sequence Num.

    ' Context to use

    ' Message to sign

    ' Message Sequence Num.

    <DllImport("secur32.Dll", CharSet:=CharSet.Auto, SetLastError:=False)> _

    Friend Shared Function VerifySignature(ByRef phContext As SECURITY_HANDLE, ByRef pMessage As SecBufferDesc, ByVal messageSeqNo As UInteger, ByRef pfQop As UInteger) As Integer

    End Function

    ' Quality of Protection

End Class

 

 

#Region "NetResource Struct"

 

 

<StructLayout(LayoutKind.Sequential)> _

Public Structure NetResource

    Public Scope As UInteger

    Public Type As UInteger

    Public DisplayType As UInteger

    Public Usage As UInteger

    Public LocalName As String

    Public RemoteName As String

    Public Comment As String

    Public Provider As String

End Structure

 

 

#End Region

 

 

#Region "Enums"

 

 

Public Enum Scope

    RESOURCE_CONNECTED = 1

    RESOURCE_GLOBALNET

    RESOURCE_REMEMBERED

    RESOURCE_RECENT

    RESOURCE_CONTEXT

End Enum

 

 

Public Enum Type As UInteger

    RESOURCETYPE_ANY

    RESOURCETYPE_DISK

    RESOURCETYPE_PRINT

    RESOURCETYPE_RESERVED = 8

    RESOURCETYPE_UNKNOWN = 4294967295UI

End Enum

 

 

Public Enum DisplayType

    RESOURCEDISPLAYTYPE_GENERIC

    RESOURCEDISPLAYTYPE_DOMAIN

    RESOURCEDISPLAYTYPE_SERVER

    RESOURCEDISPLAYTYPE_SHARE

    RESOURCEDISPLAYTYPE_FILE

    RESOURCEDISPLAYTYPE_GROUP

    RESOURCEDISPLAYTYPE_NETWORK

    RESOURCEDISPLAYTYPE_ROOT

    RESOURCEDISPLAYTYPE_SHAREADMIN

    RESOURCEDISPLAYTYPE_DIRECTORY

    RESOURCEDISPLAYTYPE_TREE

    RESOURCEDISPLAYTYPE_NDSCONTAINER

End Enum

 

 

Public Enum Usage As UInteger

    RESOURCEUSAGE_CONNECTABLE = 1

    RESOURCEUSAGE_CONTAINER = 2

    RESOURCEUSAGE_NOLOCALDEVICE = 4

    RESOURCEUSAGE_SIBLING = 8

    RESOURCEUSAGE_ATTACHED = 16

    RESOURCEUSAGE_ALL = 31

    RESOURCEUSAGE_RESERVED = 2147483648UI

End Enum

 

 

Public Enum ConnectionFlags As UInteger

    CONNECT_UPDATE_PROFILE = 1

    CONNECT_UPDATE_RECENT = 2

    CONNECT_TEMPORARY = 4

    CONNECT_INTERACTIVE = 8

    CONNECT_PROMPT = 16

    CONNECT_NEED_DRIVE = 32

    CONNECT_REFCOUNT = 64

    CONNECT_REDIRECT = 128

    CONNECT_LOCALDRIVE = 256

    CONNECT_CURRENT_MEDIA = 512

    CONNECT_DEFERRED = 1024

    CONNECT_COMMANDLINE = 2048

    CONNECT_CMD_SAVECRED = 4096

    CONNECT_CRED_RESET = 8192

    CONNECT_RESERVED = 4278190080UI

End Enum

 

 

#End Region

 

 

#Region "for sspi helper"

 

 

Public Enum SecBufferType

    SECBUFFER_VERSION = 0

    SECBUFFER_EMPTY = 0

    SECBUFFER_DATA = 1

    SECBUFFER_TOKEN = 2

End Enum

 

 

<StructLayout(LayoutKind.Sequential)> _

Public Structure SecHandle

    '=PCtxtHandle

    Private ReadOnly dwLower As UInteger

    Private ReadOnly dwUpper As UInteger

End Structure

 

 

<StructLayout(LayoutKind.Sequential)> _

Public Structure SecBuffer

    Public cbBuffer As Integer

    Public BufferType As Integer

    Friend pvBuffer As IntPtr

 

 

    Public Sub New(ByVal bufferSize As Integer)

        cbBuffer = bufferSize

        BufferType = CInt(SecBufferType.SECBUFFER_TOKEN)

        pvBuffer = Marshal.AllocHGlobal(bufferSize)

    End Sub

 

 

    Public Sub New(ByVal secBufferBytes As Byte())

        cbBuffer = secBufferBytes.Length

        BufferType = CInt(SecBufferType.SECBUFFER_TOKEN)

        pvBuffer = Marshal.AllocHGlobal(cbBuffer)

        Marshal.Copy(secBufferBytes, 0, pvBuffer, cbBuffer)

    End Sub

 

 

    Public Sub New(ByVal secBufferBytes As Byte(), ByVal bufferType__1 As SecBufferType)

        cbBuffer = secBufferBytes.Length

        BufferType = CInt(bufferType__1)

        pvBuffer = Marshal.AllocHGlobal(cbBuffer)

        Marshal.Copy(secBufferBytes, 0, pvBuffer, cbBuffer)

    End Sub

 

 

    Public Sub Dispose()

        If pvBuffer <> IntPtr.Zero Then

            Marshal.FreeHGlobal(pvBuffer)

            pvBuffer = IntPtr.Zero

        End If

    End Sub

End Structure

 

 

Public Structure MultipleSecBufferHelper

    Public Buffer As Byte()

    Public BufferType As SecBufferType

 

 

    Public Sub New(ByVal buffer__1 As Byte(), ByVal bufferType__2 As SecBufferType)

        If buffer__1 Is Nothing OrElse buffer__1.Length = 0 Then

            Throw New ArgumentException("buffer cannot be null or 0 length")

        End If

 

 

        Buffer = buffer__1

        BufferType = bufferType__2

    End Sub

End Structure

 

 

<StructLayout(LayoutKind.Sequential)> _

Public Structure SecBufferDesc

    Public ulVersion As Integer

    Public cBuffers As Integer

    Public pBuffers As IntPtr

    'Point to SecBuffer

    Public Sub New(ByVal bufferSize As Integer)

        ulVersion = CInt(SecBufferType.SECBUFFER_VERSION)

        cBuffers = 1

        Dim thisSecBuffer = New SecBuffer(bufferSize)

        pBuffers = Marshal.AllocHGlobal(Marshal.SizeOf(thisSecBuffer))

        Marshal.StructureToPtr(thisSecBuffer, pBuffers, False)

    End Sub

 

 

    Public Sub New(ByVal secBufferBytes As Byte())

        ulVersion = CInt(SecBufferType.SECBUFFER_VERSION)

        cBuffers = 1

        Dim thisSecBuffer = New SecBuffer(secBufferBytes)

        pBuffers = Marshal.AllocHGlobal(Marshal.SizeOf(thisSecBuffer))

        Marshal.StructureToPtr(thisSecBuffer, pBuffers, False)

    End Sub

 

 

    Public Sub New(ByVal secBufferBytesArray As MultipleSecBufferHelper())

        If secBufferBytesArray Is Nothing OrElse secBufferBytesArray.Length = 0 Then

            Throw New ArgumentException("secBufferBytesArray cannot be null or 0 length")

        End If

 

 

        ulVersion = CInt(SecBufferType.SECBUFFER_VERSION)

        cBuffers = secBufferBytesArray.Length

 

 

        'Allocate memory for SecBuffer Array....

        pBuffers = Marshal.AllocHGlobal(Marshal.SizeOf(GetType(SecBuffer)) * cBuffers)

 

 

        For index As Integer = 0 To secBufferBytesArray.Length - 1

            'Super hack: Now allocate memory for the individual SecBuffers

            'and just copy the bit values to the SecBuffer array!!!

            Dim thisSecBuffer = New SecBuffer(secBufferBytesArray(index).Buffer, secBufferBytesArray(index).BufferType)

 

 

            'We will write out bits in the following order:

            'int cbBuffer;

            'int BufferType;

            'pvBuffer;

            'Note that we won't be releasing the memory allocated by ThisSecBuffer until we

            'are disposed...

            Dim currentOffset As Integer = index * Marshal.SizeOf(GetType(SecBuffer))

            Marshal.WriteInt32(pBuffers, currentOffset, thisSecBuffer.cbBuffer)

            Marshal.WriteInt32(pBuffers, currentOffset + Marshal.SizeOf(thisSecBuffer.cbBuffer), thisSecBuffer.BufferType)

            Marshal.WriteIntPtr(pBuffers, currentOffset + Marshal.SizeOf(thisSecBuffer.cbBuffer) + Marshal.SizeOf(thisSecBuffer.BufferType), thisSecBuffer.pvBuffer)

        Next

    End Sub

 

 

    Public Sub Dispose()

        If pBuffers <> IntPtr.Zero Then

            If cBuffers = 1 Then

                Dim thisSecBuffer = CType(Marshal.PtrToStructure(pBuffers, GetType(SecBuffer)), SecBuffer)

                thisSecBuffer.Dispose()

            Else

                For index As Integer = 0 To cBuffers - 1

                    'The bits were written out the following order:

                    'int cbBuffer;

                    'int BufferType;

                    'pvBuffer;

                    'What we need to do here is to grab a hold of the pvBuffer allocate by the individual

                    'SecBuffer and release it...

                    Dim currentOffset As Integer = index * Marshal.SizeOf(GetType(SecBuffer))

                    Dim secBufferpvBuffer As IntPtr = Marshal.ReadIntPtr(pBuffers, currentOffset + Marshal.SizeOf(GetType(Integer)) + Marshal.SizeOf(GetType(Integer)))

                    Marshal.FreeHGlobal(secBufferpvBuffer)

                Next

            End If

 

 

            Marshal.FreeHGlobal(pBuffers)

            pBuffers = IntPtr.Zero

        End If

    End Sub

 

 

    Public Function GetSecBufferByteArray() As Byte()

        Dim buffer As Byte() = Nothing

 

 

        If pBuffers = IntPtr.Zero Then

            Throw New InvalidOperationException("Object has already been disposed!!!")

        End If

 

 

        If cBuffers = 1 Then

            Dim thisSecBuffer = CType(Marshal.PtrToStructure(pBuffers, GetType(SecBuffer)), SecBuffer)

 

 

            If thisSecBuffer.cbBuffer > 0 Then

                buffer = New Byte(thisSecBuffer.cbBuffer - 1) {}

                Marshal.Copy(thisSecBuffer.pvBuffer, buffer, 0, thisSecBuffer.cbBuffer)

            End If

        Else

            Dim bytesToAllocate As Integer = 0

            Dim Index As Integer

            For Index = 0 To cBuffers - 1

                'The bits were written out the following order:

                'int cbBuffer;

                'int BufferType;

                'pvBuffer;

                'What we need to do here calculate the total number of bytes we need to copy...

                Dim currentOffset As Integer = Index * Marshal.SizeOf(GetType(SecBuffer))

                bytesToAllocate += Marshal.ReadInt32(pBuffers, currentOffset)

            Next

 

 

            buffer = New Byte(bytesToAllocate - 1) {}

 

 

            Index = 0

 

 

            Dim BufferIndex As Integer = 0

            While Index < cBuffers

                'The bits were written out the following order:

                'int cbBuffer;

                'int BufferType;

                'pvBuffer;

                'Now iterate over the individual buffers and put them together into a

                'byte array...

                Dim currentOffset As Integer = Index * Marshal.SizeOf(GetType(SecBuffer))

                Dim bytesToCopy As Integer = Marshal.ReadInt32(pBuffers, currentOffset)

                Dim secBufferpvBuffer As IntPtr = Marshal.ReadIntPtr(pBuffers, currentOffset + Marshal.SizeOf(GetType(Integer)) + Marshal.SizeOf(GetType(Integer)))

                Marshal.Copy(secBufferpvBuffer, buffer, BufferIndex, bytesToCopy)

                BufferIndex += bytesToCopy

                Index += 1

            End While

        End If

 

 

        Return (buffer)

    End Function

End Structure

 

 

 

 

<StructLayout(LayoutKind.Sequential)> _

Public Structure SECURITY_INTEGER

    Public LowPart As UInteger

    Public HighPart As Integer

 

 

    Public Sub New(ByVal dummy As Integer)

        LowPart = 0

        HighPart = 0

    End Sub

End Structure

 

 

<StructLayout(LayoutKind.Sequential)> _

Public Structure SECURITY_HANDLE

    Public LowPart As UInteger

    Public HighPart As UInteger

 

 

    Public Sub New(ByVal dummy As Integer)

        LowPart = 0

        HighPart = 0

    End Sub

End Structure

 

 

<StructLayout(LayoutKind.Sequential)> _

Public Structure SecPkgContext_Sizes

    Public cbMaxToken As UInteger

    Public cbMaxSignature As UInteger

    Public cbBlockSize As UInteger

    Public cbSecurityTrailer As UInteger

End Structure

 

 

#End Region

 

 

<Serializable()> _

Public Class SspiException

    Inherits ApplicationException

    Private ReadOnly _errorCode As Integer

 

 

    Public Sub New(ByVal message As String, ByVal errorCode As Integer)

        MyBase.New(String.Format("{0}. Error Code = '{1:X}'.", message, errorCode))

        _errorCode = errorCode

    End Sub

 

 

    Public ReadOnly Property ErrorCode() As Integer

        Get

            Return _errorCode

        End Get

    End Property

End Class

 

 

<Serializable()> _

Public Class SoapException

    Inherits SystemException

    Public Shared ReadOnly ClientFaultCode As XmlQualifiedName

    Public Shared ReadOnly DetailElementName As XmlQualifiedName

    Public Shared ReadOnly MustUnderstandFaultCode As XmlQualifiedName

    Public Shared ReadOnly ServerFaultCode As XmlQualifiedName

    Public Shared ReadOnly VersionMismatchFaultCode As XmlQualifiedName

 

 

    Public Sub New()

    End Sub

    Protected Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext)

    End Sub

    Public Sub New(ByVal message As String, ByVal code As XmlQualifiedName)

    End Sub

    Public Sub New(ByVal message As String, ByVal code As XmlQualifiedName, ByVal innerException As Exception)

    End Sub

    Public Sub New(ByVal message As String, ByVal code As XmlQualifiedName, ByVal subCode As SoapFaultSubCode)

    End Sub

    Public Sub New(ByVal message As String, ByVal code As XmlQualifiedName, ByVal actor As String)

    End Sub

    Public Sub New(ByVal message As String, ByVal code As XmlQualifiedName, ByVal actor As String, ByVal innerException As Exception)

    End Sub

    Public Sub New(ByVal message As String, ByVal code As XmlQualifiedName, ByVal actor As String, ByVal detail As XmlNode)

    End Sub

    Public Sub New(ByVal message As String, ByVal code As XmlQualifiedName, ByVal actor As String, ByVal detail As XmlNode, ByVal innerException As Exception)

    End Sub

    Public Sub New(ByVal message As String, ByVal code As XmlQualifiedName, ByVal actor As String, ByVal role As String, ByVal detail As XmlNode, ByVal subCode As SoapFaultSubCode, _

     ByVal innerException As Exception)

    End Sub

    Public Sub New(ByVal message As String, ByVal code As XmlQualifiedName, ByVal actor As String, ByVal role As String, ByVal lang As String, ByVal detail As XmlNode, _

     ByVal subCode As SoapFaultSubCode, ByVal innerException As Exception)

    End Sub

 

 

    Public ReadOnly Property Actor() As String

        Get

 

 

        End Get

    End Property

    Public ReadOnly Property Code() As XmlQualifiedName

        Get

 

 

        End Get

    End Property

    Public ReadOnly Property Detail() As XmlNode

        Get

 

 

        End Get

    End Property

    <ComVisible(False)> _

    Public ReadOnly Property Lang() As String

        Get

 

 

        End Get

    End Property

    <ComVisible(False)> _

    Public ReadOnly Property Node() As String

        Get

 

 

        End Get

    End Property

    <ComVisible(False)> _

    Public ReadOnly Property Role() As String

        Get

 

 

        End Get

    End Property

    <ComVisible(False)> _

    Public ReadOnly Property SubCode() As SoapFaultSubCode

        Get

 

 

        End Get

    End Property

Public Overrides Sub GetObjectData(info As SerializationInfo, context As StreamingContext)

    End Sub

    Public Shared Function IsClientFaultCode(ByVal code As XmlQualifiedName) As Boolean

    End Function

    Public Shared Function IsMustUnderstandFaultCode(ByVal code As XmlQualifiedName) As Boolean

    End Function

    Public Shared Function IsServerFaultCode(ByVal code As XmlQualifiedName) As Boolean

    End Function

    Public Shared Function IsVersionMismatchFaultCode(ByVal code As XmlQualifiedName) As Boolean

    End Function

End Class

 

 

<Serializable()> _

Public Class SoapFaultSubCode

    Public Sub New(ByVal code As XmlQualifiedName)

    End Sub

    Public Sub New(ByVal code As XmlQualifiedName, ByVal subCode As SoapFaultSubCode)

    End Sub

 

 

    Public ReadOnly Property Code() As XmlQualifiedName

        Get

 

 

        End Get

    End Property

    Public ReadOnly Property SubCode() As SoapFaultSubCode

        Get

 

 

        End Get

    End Property

End Class

 

 

Public Class SSPIChallengeUnused

    Inherits VimFault

    Public Sub New()

    End Sub

 

 

    Public Property base64Token() As String

        Get

            Return m_base64Token

        End Get

        Set(ByVal value As String)

            m_base64Token = value

        End Set

    End Property

    Private m_base64Token As String

End Class[/code]


SSD with SAS cache tier, SATA capacity tier - Horizon 7 VDI

$
0
0

Doing a build out for a VDI cluster and we are getting quotes for an AF-vSAN. The vSAN will be running in RAID 6 with compression, dedup, and encryption enabled with a workload of Windows 10 full-clones and persistent data.

 

The vendor is doing a mix with the following:

Cache: 800GB SSD SAS 12Gb x 2 (4k reads @ 240k, 4k writes at 130k)

Capacity: 1.92TB SSD SATA 6Gb x 6 (4KB reads @ 90k, 4KB writes @ 50k)

 

Each node will have two disk groups comprised of a 800GB cache drive with 3x1.92TB drives for capacity.

 

I have some room in the budget to jump up to 1.6TB SAS drives for the capacity tier. This increases cost per drive and I lose 1.8TB of space per a node. The gain is a capacity tier where each drive has 4KB reads @ 200k and 4KB writes @ 90k.

 

Does anyone here have experience with using a mixed SAS cache and SATA capacity tier for an AF-vSAN deployment? For VDIs, would you save money and use a mix of SAS and SATA or SAS across both tiers?

WS 14.1.5 build-10950780 not always posting VM

$
0
0

I have been noticing when I power on my VMs, sometimes it boots just fine, most other times, it does not even post. I am unable to force them off, only solution is to reboot host, remove the lck files for the guest and try again.

 

Attached you will find the bundle created with vm-support.vbs, the log file with debugs enabled and periodic status as well as the config for one of the problematic VMs (the rest are in the support bundle).

 

I tested this with WS 15 as well, issue present there as well.

No graphic card when sharing a VM

$
0
0

When i share a VM (vm>manage>share) to be accessed thought remote server, my vm graphic card dont get recognized.

 

 

This photo is  from the VM without sharing:

 

Now when i enable vm>share and run the same application:

Im running on host and guest window 7 x64.

Could somebody help me

VMtools + NSX Micro Segmentation

$
0
0

1 basic question.

To use NSX Micro Segmetation for Virutal workloads is it mandatory to have VMtools on the Virtual Work loads.

For ex - I have a virtual workload (appliance kind) in which no VMtools are installed.

Can it be part of NSX Micro Segmentation where policies can be applied ?

Datastore Heartbeat

Viewing all 195209 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>