Получите список подключенных дисков как службу Windows.

Я пытаюсь получить список подключенных дисков на моем компьютере в качестве службы Windows. Я могу получить правильный список, если запущу свой код как обычную программу, а не как службу Windows. Я видел несколько сообщений по этой теме, но ни одно из них не дает четкого решения.

Я запускаю службу в той же учетной записи, которая создала службу, и у службы есть права администратора.

Кто-нибудь знает, как это правильно сделать?


person Roka545    schedule 15.11.2017    source источник
comment
Не могли бы вы уточнить, что это означает, что я запускаю службу под той же учетной записью, которая создала службу, и у службы есть права администратора. Означает ли это, что вы используете службу как обычные пользователи Windows?   -  person Stuart Smith    schedule 15.11.2017
comment
Да. Поскольку подключенные диски относятся к конкретному пользователю, они будут отображаться только для пользователя, который их создал. Другими словами, я использую учетную запись, которая сможет видеть подключенный диск (у меня подключен только один).   -  person Roka545    schedule 15.11.2017
comment
Чтобы прояснить проблему, вы говорите, что учетная запись, под которой работает служба, имеет сопоставленные диски, о которых не сообщается?   -  person Rufus L    schedule 15.11.2017
comment
@RufusL Да, это проблема. Но о них не сообщается, когда я запускаю свой код как службу. О них сообщается, если я просто запускаю свой код из Visual Studio.   -  person Roka545    schedule 15.11.2017


Ответы (2)


Это невозможно

см. следующую статью MSDN

https://msdn.microsoft.com/en-us/library/windows/desktop/ms685143%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

Если служба настроена для запуска под учетной записью пользователя, система всегда создает новый сеанс входа для пользователя и запускает службу в этом новом сеансе входа. Поэтому служба не может управлять сопоставлениями дисков, установленными в других сеансах пользователя.

person Stuart Smith    schedule 15.11.2017

Если вы работаете в Windows 7 с включенным UAC, то административный сеанс имеет другие сопоставленные диски, чем обычный пользовательский сеанс. Откройте командную строку администратора, запустите net show и проверьте состояние подключенного диска.

Обновление: я установил EnabledLinkedConnections на своей рабочей станции с Windows 10, поэтому я не вижу этой проблемы.

person NetMage    schedule 15.11.2017
comment
хм... у меня Windows 10 - person Roka545; 15.11.2017
comment
У меня есть специальная запись в реестре в моей Windows 10, чтобы не было этой проблемы. Я обновил свой ответ. - person NetMage; 15.11.2017