Получить буквы физического и сетевого драйверов с помощью команды WMIC с использованием SQL Server 2008
В моем Windows Server 2008 у меня есть физические диски с буквами "C:", "D:", "E:", "H:" и "Z:", а DVD-диск содержит букву "G:", а также наличие сети диск с буквой "Y:"
Если я выполнил следующий запрос в командной строке
wmic LOGICALDISK LIST INSTANCE
Я получу результат
Но если вы запускаете следующий запрос в SQL Server 2008 на том же сервере. Буква сетевого диска отсутствует на выходе
EXEC master..xp_cmdshell 'wmic LOGICALDISK LIST INSTANCE'
В результате
Отображаемые диски сопоставляются с помощью токена пользователя. SQL Server почти никогда не работает как пользователь, поэтому не имеет доступа к сопоставлениям пользовательских дисков.
Администратор имеет два токена пользователя. Ограниченный пользовательский и административный. Отображаемый диск применяется только к маркеру пользователя, который его сопоставил. Старые окна не позволят отображать оба токена.
Связанные диски стали устаревшими примерно в 1995 году. Но причудливо они живут. Используйте UNC-имя \\servername\sharename\foldername\filename.ext
.
- Вопросы
- Sql-server-2008-r2
- Получить буквы физического и сетевого драйверов с помощью команды WMIC с использованием SQL Server 2008