2016-06-24 2 views
1

Создание символических ссылок в Windows ограничено. Обычно у администратора достаточно прав для этого, но у пользователей этого нет.Как проверить, имеет ли пользователь достаточные права на создание символических ссылок в PowerShell

  • Как проверить, имеет ли текущий пользователь права на использование New-Symlink в PowerShell?
  • Есть ли какие-нибудь улучшения вокруг, используя cp, чтобы решить эту проблему, если New-Symlink недоступен?

Набор сценариев предварительной компиляции нескольких библиотек моделирования в каталогах, инструмента поставщика. Я использую символические ссылки для переключения и сопоставления выбранной библиотеки поставщиков с общим именем папки. В противном случае мне нужно предварительно скомпилировать библиотеку при каждом изменении библиотеки, которая занимает> 5 минут и создает ~ 2 GiB-данных.

+1

Почему бы не помещать символ 'New-Symlink' в блок' try/catch'? – sodawillow

+0

Рассматривается ли это «хороший стиль»? В Python да, но в PowerShell? – Paebbels

+0

https://userrights.codeplex.com/ и проверьте право SeCreateSymbolicLinkPrivilege. Может быть, это слишком сложно, если это единственное, что вы хотите сделать ... Вы также можете использовать: https://technet.microsoft.com/en-us/sysinternals/bb664922.aspx –

ответ

1

Я не лучший совет, чтобы дать вам, чем использовать try/catch:

try { 
    New-Symlink -... 
    "Symlink created successfully" 
} catch { 
    Write-Warning "Could not create symlink" 
    #workaround 
} 

Вы можете даже дифференцировать типы исключений см about_Try_Catch_Finally и некоторые примеры здесь слишком An Introduction to Error Handling in PowerShell

Sidenote:

I предположим, вы используете cmdlet from TechNet gallery? Если вы это сделаете, последнее обновление, видимо, удалено. Требование администратора (см. Описание скрипта на TechNet).

+0

Насколько я могу судить, У меня два CmdLets 'New-Symlink' ... Это немного странно: один из них задан в Pscx (3.2.1.0), который автоматически загружается $ PROFILE. Я также вижу это в ISE, но, ссылаясь на справочную страницу, он говорит, что это Pscx CmdLet. Так что нет, мой CmdLet не из TechNet :) – Paebbels

+0

Возможно, вам стоит попробовать другой? ;-) – sodawillow

 Смежные вопросы

  • Нет связанных вопросов^_^