Запуск powershell без useriteraction

#powershell

Вопрос:

start "odopen://sync/?siteId=$siteid17amp;webId=$webid17amp;listId=$listid17amp;userEmail=$upnamp;webUrl=$URL17amp;webtitle=$webtitle17amp;listtitle=$listtitle17"

Как можно выполнить следующую команду внутри Powershell без появления всплывающего окна или какого-либо взаимодействия с пользователем? Я попытался добавить /Список аргументов «/S», «/Фон». Также попробовал с-WindowStyle, скрытым в конце. Ценю некоторую помощь 🙂

Ответ №1:

Ваша команда «как есть» в основном гласит » Запустите программу, которая открывает odopen:// ссылки (OneDrive)», и на самом деле вам не могут быть даны какие-либо инструкции в стиле «без звука». Правильный способ настроить такие вещи-использовать групповые политики OneDrive, но мы можем обмануть и установить ключи реестра.

Приведенная выше ссылка подробно описывает, как настроить групповую политику, но также сообщает нам, что конкретный параметр групповой политики «Настройка библиотек сайта группы для автоматической синхронизации» устанавливает этот раздел реестра:

[HKCUSoftwarePoliciesMicrosoftOneDriveTenantAutoMount]"LibraryName"="LibraryID"

И что ваш идентификатор библиотеки находится в этом формате, который выглядит знакомым:

tenantId=xxxamp;siteId=xxxamp;webId=xxxamp;listId=xxxamp;webUrl=httpsxxxamp;version=1

Поэтому, чтобы поместить это в сценарий, я бы использовал что-то подобное, адаптированное из поста Николы Сутер в блоге здесь:

 $tenantAutoMountRegKey = "HKLM:SOFTWAREPoliciesMicrosoftOneDriveTenantAutoMount"

$autoMountTeamSitesList= @{
    #Enter your SharePoint libraries to configure here as key/value pairs
    MySharePoint="odopen://sync/?siteId=$siteid17amp;webId=$webid17amp;listId=$listid17amp;userEmail=$upnamp;webUrl=$URL17amp;webtitle=$webtitle17amp;listtitle=$listtitle17"
}

# Check if the key exists and create if missing:
if (-not (Test-Path $tenantAutoMountRegKey)){ New-Item -Path $tenantAutoMountRegKey -Force }

# Add the sites for automatic mounting
$autoMountTeamSitesList | Set-ItemProperty -Path $tenantAutoMountRegKey -Name $_.Key -Value $_.Value
 

Как правило, это вступает в силу при следующем входе пользователя в OneDrive, хотя Microsoft предупреждает, что для начала синхронизации может потребоваться до 8 часов (не позволяет сотням пользователей синхронизировать одну и ту же библиотеку одновременно).

Ответ №2:

TL;DR: Вы не можете.

При использовании odopen всегда будет отображаться окно входа в систему (как указано здесь: https://docs.microsoft.com/en-us/onedrive/deploy-on-windows#help-users-sign-in), что вы можете сделать, это только заполнить его данными, что вы уже делаете.

Если вы хотите сделать это молча, об этом есть документация: https://docs.microsoft.com/en-us/onedrive/use-silent-account-configuration