Я пишу сценарий PowerShell для отключения и перемещения пользователей с помощью AD. эта часть отлично работает. Однако я хотел бы регистрировать каждое событие в журнале событий. Командлет Write-EventLog
отлично работает при вводе вручную.PowerShell Write-EventLog CmdLet работает вручную, а не в скрипте
Write-EventLog –LogName ManageAD –Source “ManageUsers Script” –EntryType Information –EventID 1 –Message “This is a test message"
Однако, когда я добавляю командлет к скрипту, это ошибки.
Write-EventLog –LogName ManageAD –Source “ManageUsers Script” –EntryType Information –EventID 1 –Message “User ” + $SAM + " has been disabled"
Write-EventLog : A positional parameter cannot be found that accepts argument 'Scriptâ??'.
At C:\test\ManageUsers.ps1:12 char:16
+ Write-EventLog <<<< â?"LogName ManageAD â?"Source â?oManageUsers Scriptâ?? â?"EntryType Information â?"EventID
â?"Message â?oUser â?? + $SAM + " has been disabled"
+ CategoryInfo : InvalidArgument: (:) [Write-EventLog], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.WriteEventLogCommand
Любые предложения приветствуются.
Если вы сохраняете скрипты в кодировке UTF8, чем использовать спецификацию. PowerShell не обнаруживает UTF8, если в файле нет спецификации. – PetSerAl
@PetSerAl Итак, если файл был закодирован с помощью UTF8, и спецификация присутствовала, это было бы нормально? Это верно для других кодировок или просто UTF8? – Matt
@Matt Для меня PowerShell корректно обрабатывает специальные кавычки в тире, пока он может правильно их прочитать из файла. Я тестирую только UTF8 и UTF16, которые правильно определены из спецификации. – PetSerAl