Лучший способ знать, есть ли у пользователя административные привилегии от VBScript

Создайте данные для примера:

l <- list("a" = c(1, 2), "b" =c(1, 3))
df <- data.frame(id = c("a", "b"), value = c(3, 2))

.

5
задан niton 17 April 2015 в 01:21
поделиться

3 ответа

Можно использовать сценарий, если Вы хотите видеть, является ли зарегистрированный пользователь администратором

Set objNetwork = CreateObject("Wscript.Network")
strComputer = objNetwork.ComputerName
strUser = objNetwork.UserName

isAdministrator = false

Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators")
For Each objUser in objGroup.Members
    If objUser.Name = strUser Then
        isAdministrator = true        
    End If
Next

If isAdministrator Then
    Wscript.Echo strUser & " is a local administrator."
Else
    Wscript.Echo strUser & " is not a local administrator."
End If

Я не уверен, как обработать его, когда скрипт запущен с "Runas", я боюсь.

3
ответ дан 18 December 2019 в 09:55
поделиться

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

4
ответ дан 18 December 2019 в 09:55
поделиться

Эта статья имеет хороший блок кода того, как перечислить членов группы (скопированный здесь для удобства и отредактированный для не использования адреса электронной почты):

Function RetrieveUsers(domainName,grpName)

dim GrpObj
dim mbrlist
dim mbr

'-------------------------------------------------------------------------------
' *** Enumerate Group Members ***
'-------------------------------------------------------------------------------

' Build the ADSI query and retrieve the group object
Set GrpObj = GetObject("WinNT://" & domainName & "/" & grpName & ",group")

' Loop through the group membership and build a string containing the names
for each mbr in GrpObj.Members
   mbrlist = mbrlist & vbTab & mbr.name & vbCrLf
Next

RetrieveUsers=mbrlist

End Function

Можно затем записать функцию, чтобы видеть, находится ли пользователь в списке...

Function IsAdmin(user)
    IsAdmin = InStr(RetrieveUsers("MachineName", "Administrators"), user) > 0
End Function

... и назовите его как это:

If IsAdmin("LocalAccount") Then
    Wscript.Echo "LocalAccount is an admin"
Else
    Wscript.Echo "LocalAccount is not an admin"
End If
1
ответ дан 18 December 2019 в 09:55
поделиться
Другие вопросы по тегам:

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