Для второй опции, сколько чисел, вероятно, будет на самом деле помещено?
Если будет только каждое тысячное, или 10K, 100K, и т.д., то, храня диапазоны используемых (или неиспользованный) числа могли сохранить триллионы записей. например: хранение ('свободный', 0,100000), ('взятый', 100000,100003), ('свободный', 100004,584234) - строки разделения в две или три строки как требуется и индексация на первом числе, ища x <= {игла}, чтобы видеть, взят ли диапазон, содержащий искавшее число, или свободный.
Вам даже, возможно, не понадобятся оба состояния. Просто сохраните, какой бы ни состояние маловероятно.
Нет. Windows не предлагает тот тип возможности олицетворения пользователя, о котором вы здесь спрашиваете. В Windows нет эквивалента sudo
или даже приближения.
Я не могу найти документ или статью в настоящий момент, но не разрешаю функцию олицетворения пользователя в стиле sudo
в Windows было намеренным дизайнерским решением еще на заре создания ядра NT, и в результате мы очень его придерживаемся. (Нет даже каких-либо умных обходных путей или хаков, чтобы обойти это, как обычно - это просто слишком глубоко укоренилось, чтобы обойти его.)
В мире Windows, чтобы выполнять [практически] любое действие как пользователю (запускает ли он программу, выполняет аутентификацию в AD или что-то еще), вам потребуется токен доступа , который используется для идентификации и аутентификации доступа / привилегий пользователя. Этот токен доступа создается только , когда вводятся имя и пароль учетной записи пользователя (при входе в систему, для RunAs
и т. Д.).
Потенциально важное предупреждение (для ваших целей ) заключается в том, что существующий токен доступа может быть дублирован в токен олицетворения , который может быть передан в функцию ImpersonateLoggedOnUser , которая может использоваться для ] олицетворяют контекст безопасности вошедшего в систему пользователя .
Учитывая, что вы один из тех разработчиков / программистов, которые могут знать, как работать с загадочными магиями .NET, это может быть полезно для вас в написании небольшого приложения для достижения того, что вы хотите сделать.
Однако, чтобы быть точным,
Если пользователи вошли в систему, вы можете использовать что-то вроде owexec
для запуска процессов от их имени. Это не требует их пароля. Мы используем его для чего-то очень похожего на то, что вы описываете, за исключением части служб терминалов.
Вам может потребоваться добавить скрипт для сбора всех активных сеансов, а затем настроить таргетинг на каждый из них по отдельности с параметром -u
.
Если вы говорите о локальном программном обеспечении, а не об RemoteApp, то я думаю, что наиболее полезным в вашем случае будет использование PsExec:
http://technet.microsoft.com/ en-us / sysinternals / bb897553.aspx
Чтобы увидеть еще несколько примеров использования, вы можете перейти на http://windowsitpro.com/systems-management/psexec