Версия AutoIt: 3.3.6.1
Описание:
Нужно написать скрипт который бы находил на ПК локальных админов, которые не должны быть такими и понизить им права... На данный момент проблема вытянуть каждого такого юзера в переменную из файла.
Примечания:
Вот мои наброски:
На этом этапе остаются записи вида:
как мне правильно вытащить их в переменные выда $user1 $user2 ... $usern
Также очень приветствуются предложения по улучшению кода... Заранее большое спасибо
Описание:
Нужно написать скрипт который бы находил на ПК локальных админов, которые не должны быть такими и понизить им права... На данный момент проблема вытянуть каждого такого юзера в переменную из файла.
Примечания:
Вот мои наброски:
Код:
#NoTrayIcon
#include <Constants.au3>
#include <Encoding.au3>
#include <File.au3>
$adminlist=@ScriptDir & '\adminlist.lst'
$line=''
$header='Имя псевдонима Администраторы' & @CRLF & 'Комментарий Администраторы имеют полные, ничем не ограниченные права доступа к компьютеру или домену' & @CRLF & @CRLF & 'Члены' & @CRLF & @CRLF & '-------------------------------------------------------------------------------'
if FileExists($adminlist) Then
$iMsgBoxAnswer= MsgBox(36,@ScriptName,'Файл ' & $adminlist &' уже существует в папке с програмой!' & @CRLF & 'Хотите удалить данный файл и продолжить!!!',30)
Select
Case $iMsgBoxAnswer = 6 ;Yes
FileDelete($adminlist)
RunWait(@ComSpec &' /c net localgroup Администраторы >>adminlist.lst','', @SW_HIDE);
Case $iMsgBoxAnswer = 7 ;No
Exit
EndSelect
Else
RunWait(@ComSpec &' /c net localgroup Администраторы >>adminlist.lst','', @SW_HIDE);запись пользователей с правами админимтраторов в файл
EndIf
$userlist=FileOpen($adminlist, 0)
$line=FileRead($userlist)
FileClose($userlist)
$line = _Encoding_OEM2ANSI($line)
$line = StringReplace($line, $header & @CRLF, ''); шапка файла котороя есть в файле и которая не нужна
$line = StringReplace($line, 'Administrator'& @CRLF, ''); пользователь права которому менять не стоит
$line = StringReplace($line, 'DOMEN\Администраторы домена'& @CRLF, ''); ненужная запись, которая может присутствовать
$line = StringReplace($line, 'Команда выполнена успешно.'& @CRLF & @CRLF, ''); ненужная запись в конце
$line = StringReplace($line, 'Администратор'& @CRLF, ''); пользователь права которому менять не стоит
$userlist=FileOpen($adminlist, 2)
FileWrite($userlist, $line)
MsgBox(0, "", $line)
На этом этапе остаются записи вида:
Код:
user1
user2
...
(пустая строка)
как мне правильно вытащить их в переменные выда $user1 $user2 ... $usern
Также очень приветствуются предложения по улучшению кода... Заранее большое спасибо