Некоторое приложение случайно изменяет полномочия во Всей Папке Пользователей/Данных приложения приблизительно на 500 ПК — Как я могу восстановить его к значению по умолчанию окон?

Fatherjack,

Вы могли предоставить больше подробную информацию? Вы используете какие-либо параметры с xp_logininfo? Вы выполняете его в каждой базе данных? Кроме того, какова конечная цель (т.е. Вы храните информацию где-нибудь, или действительно ли это - приложение, которое пытается выполнить xp_logininfo?)

Может быть обходное решение с некоторой другой системой procs, но прежде чем я предложу что-либо, что я должен знать больше о том, что это - Вы, пытаются выполнить. хм... я предполагаю, что это - мой способ сказать, "каковы требования?"

2
задан 9 October 2009 в 08:01
3 ответа

Попробуйте xcacls.vbs (http://support.microsoft.com/kb/825751). Это - свободная утилита командной строки VBScript от Microsoft, которая подобна команде cacls, но с большим количеством опций. Это имеет способность применить более мелкомодульные полномочия, чем cacls, но прочитать инструкции (отображенный путем ввода команды без любых опций: cscript xcacls.vbs) тщательно; они довольно сложны! Это действительно имеет способность применить полномочия только на "Эту папку и подпапки"; я использовал его прежде, чтобы сделать точно это.

При выполнении Windows Vista или позже включенная icacls утилита (http://technet.microsoft.com/en-us/library/cc753525 (WS.10) .aspx) могла бы быть более соответствующей.

После того как Вы обработали надлежащую команду (использующий любой инструмент), поместили его в *.cmd сценарий и затем добавляете сценарий к Объекту Групповой политики для применения его к машинам через Групповую политику. Обратите внимание, что необходимо будет также так или иначе загрузить xcacls.vbs на каждую машину, если Вы идете тем путем. Это могло быть выполнено включением команды для загрузки xcacls.vbs сценария из файла, совместно используют и сохраняют его локально в том же *.cmd сценарии, где устанавливающая разрешение команда находится (или Вы могли, возможно, попытаться выполнить его непосредственно от доли файла).

2
ответ дан 3 December 2019 в 10:27

Можно исправить это использование GPO довольно легко.

Если они хотят использовать Altiris, то установите задание для использования cacls.exe для сброса прав на папке.

1
ответ дан 3 December 2019 в 10:27
  • 1
    cacls.exe является утилитой, обеспеченной окнами для изменений разрешения командной строки. Это довольно просто для использования.. выполните его без аргументов для получения информации о справке. –  tomjedrz 9 October 2009 в 04:41
  • 2
    +1 - Используя Групповую политику для этого был бы самый легкий способ сделать это. Я никогда не понимал, почему у пользователей есть " Write" в той папке, BTW. I' m видящий вредоносное программное обеспечение, убирающее себя там, так как пользователи неадминистратора могут записать там. –  Evan Anderson 9 October 2009 в 04:42
  • 3
    Я прочитал документы о cacls.exe и этом doesn' t, кажется, могут к " Примените to" только " Эта папка и subfolders" как необходим. Аккуратный инструмент все же. Вы могли объяснить, как GPO был бы применен? Полномочия weren' t измененный на каждом компьютере через кампус. –  blak3r 9 October 2009 в 05:10
  • 4
    ?? cacls/E/R < < user/group> > (или некоторый вариант), похож на него, сделает то, в чем Вы нуждаетесь. –  tomjedrz 9 October 2009 в 06:21
  • 5
    Создайте или отредактируйте GPO. Перейдите к Конфигурации компьютера > политики > Windows Settings > Настройки безопасности > Файловая система. Создайте новый объект. Дайте ему путь, необходимо исправить и установить полномочия правильно. Можно применить его ко всем рабочим станциям как те который haven' t завинченный won' t имеют любое изменение, внесенное в них как, что Вы устанавливаете, должен соответствовать тому, что они уже имеют. Пользователи должны будут или выполнить gpupdate, перезагрузка туда рабочие станции или ожидать ~28 часов (или независимо от того, что почтамт повторно применяется, настройки) для установки, которая будет загружена. Можно отфильтровать с WMI для применения к подмножеству. –  mrdenny 9 October 2009 в 08:01

Вот получающийся код на основе предложения Jay Michaud.

Я закончил тем, что добавил пользовательское действие к своему установщику. Это бежало за файлами, были скопированы. Если Вы сделаете это, то Вы захотите этот код ниже, и Вы захотите передать по каналу в как аргументы: APPDIR|CommonAppDataFolder. (да это - канал, разграничивающий их),

dim XCACLS_EXEC, APPDATAFOLDER, WindowStyle

' COMMENT OUT THIS SECTION IF NOT RUNNING AS AN INSTALLER CUSTOM ACTION,
' SET XCACLS_EXEC and APPDATAFOLDER variables some other way.
actdata = Session.Property("CustomActionData")
tokens = Split( actdata, "|", -1)
XCACLS_EXEC = tokens(0) & "XCACLS.vbs"
APPDATAFOLDER = tokens(1)

WindowStyle=0 '0 for hide, 1 for show.
set objShell = CreateObject("WScript.Shell")

'MsgBox  XCACLS_EXEC & " " & APPDATAFOLDER & " " & Session.Property("CustomActionData")

objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /SPEC C /G users:W", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G users:X", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G ""Power Users"":M", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G ""CREATOR OWNER"":F", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G Administrators:F", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G Administrator:F", WindowStyle, True
objShell.Run "cscript """ & XCACLS_EXEC & """ """ & APPDATAFOLDER & """ /E /G SYSTEM:F", WindowStyle, True
1
ответ дан 3 December 2019 в 10:27

Теги

Похожие вопросы