Приложение для Магазина Windows с PowerShell
Я занимаюсь разработкой приложения для магазина Windows 8.1 и хочу получить GAL и добавить GAL с помощью скрипта Power Shell. Когда я пытался добавить ссылку на System.Security.SecurityString, он выдает ошибку, подобную приведенной ниже. Я пытаюсь выполнить аутентификацию, используя данные моего администратора office365, но при сборке приложения выдает ошибку.
System.Management.Automation.PSCredential не содержит конструктор, который принимает 2 аргумента
Но он содержит конструктор с двумя аргументами. Тот же код хорошо работает, когда я создаю приложение Windows Forms. Что будет не так с приложением Windows 8.1?
System.Uri psURL = new Uri("https://ps.outlook.com/powershell/");
System.Security.SecureString securePassword1 = safeString("test");
System.Management.Automation.PSCredential creds1 = new System.Management.Automation.PSCredential("test", securePassword1);
Вопросы
1) Совместим ли System.Security.SecurityString с приложением Windows 8.1 или эта ошибка происходит из PSCredential, почему, потому что, когда я удалил ссылку на защищенную строку, ошибка PSCredential не произошла, но пропустила ошибку securestring?
2) Есть ли альтернативный метод для подключения к PowerShell без безопасной строки с помощью кода C#?
1 ответ
System.Security.SecureString
является частью.NET Framework.
В вашем примере кода не видно, как вы конвертируете свою строку в безопасную строку:
$secure_string_pwd = convertto-securestring "P@ssW0rD!" -asplaintext -force
$username = "username@yourdomain.com"
$cred = New-Object System.Management.Automation.PSCredential $username, $secure_string_pwd
Попробуйте подключиться к O365 с помощью следующего кода:
Import-Module MSOnline
$O365Cred = Get-Credential
$O365Session = New-PSSession –ConfigurationName Microsoft.Exchange
-ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred
-Authentication Basic -AllowRedirection
Import-PSSession $O365Session
Connect-MsolService –Credential $O365Cred
Вы также можете найти эту статью интересной - пример кода взят оттуда...