Это, по сути, повторный ответ на этот вопрос: «Не удается открыть Vault» при доступе к PasswordVault на компьютере fre sh через WinRM
Это довольно старый файл, и мы не знаю, как его «поднять», поэтому мы отдыхаем здесь ...
После входа в PS-сессию на машине fre sh Azure Windows, сервер 2012r2 Примерно так:
$username = 'print-dev'
$uri = 'somevm.eastus.cloudapp.azure.com'
$port = '5986'
$remote_address = "https://" + $uri + ":" + $port
$password = 'somepassword'
$pass = ConvertTo-SecureString -string $password -AsPlainText -Force
$cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $username, $pass
Enter-PSSession -ConnectionUri $remote_address -Credential $cred -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)
... мы запускаем следующую команду и терпим неудачу:
[somevm.eastus.cloudapp.azure.com]: PS C:\Users\print-dev\Documents> [Windows.Security.Credentials.PasswordVault,Windows.Security.Credentials,ContentType=WindowsRuntime]
$vault = New-Object Windows.Security.Credentials.PasswordVault
$vault.RetrieveAll()
... со следующим результатом:
Exception calling "RetrieveAll" with "0" argument(s): "Access is denied.
Cannot open Vault"
At line:1 char:1
+ $vault.RetrieveAll()
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : UnauthorizedAccessException
"Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"
Если мы отправим RDP на компьютер с тем же пользователем, print-dev, выведем консоль и выполним команду таким образом, у нас все получится. Также последующие вызовы через удаленный доступ будут успешными после первого запуска из RDP.
Как мы можем обойти эту ошибку отказа в доступе?
В чем разница между командой PowerShell, выполняемой в сеансе RDP, и командой powershell, выполняемой в удаленном сеансе PS одним и тем же пользователем?
Любая помощь приветствуется!