- Remove From My Forums
-
General discussion
-
Добрый день!
Я в PS и программировании недавно, помогите, пожалуйста, разобраться с проблемой. Есть около 100 рабочих мест, все под Win7. На некоторых PC (около 15) не отрабатывает любой PS скрипт, который должен дозаписывать в файл, расположенный
в сети. Например такой(собирает данные о текущем пользователе):cls $user = [Environment]::UserName $date = Get-Date -Format "d.MM.yyyy H:mm:ss" $sys = Get-CimInstance CIM_ComputerSystem $hostname = $sys.name.ToString() $path_root = '\192.168.50.25commoncommonInventory' $path = $path_root +""+ $hostname #create work dir if (Test-Path $path) { Write-Host "Folder exist!" }Else{ New-Item -Path $path_root -Name $hostname -ItemType directory } $FIO = Get-WMIObject Win32_UserAccount | where name -eq $user #FIO from AD $hostname + "|" + $FIO.FullName + "|" + $date | Out-File -FilePath $pathfio.txt -Append -Encoding unicode
Права у пользователя на папку и файл есть все. Первый раз файл создается и туда записываются данные; при следующем выполнении Out-File происходит ошибка:
Out-File : Отказано в доступе по данному пути.
C:BATINVget_fio&usrname&last_logon.ps1:20 знак:50
+ $hostname + «|» + $FIO.FullName + «|» + $date | Out-File -FilePath $pathfio.tx …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Out-File], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.OutFileCommandГуглил ошибку, однако, ничего внятного не нашел.
-
Changed type
Thursday, September 3, 2015 11:34 AM
Отсутвие активности более 2х недель
-
Changed type
Доброго времени суток.
Windows 2012R2
Name : ConsoleHost Version : 4.0 InstanceId : 01df85c7-c3a3-4dc4-9f7c-82c26b02f24a UI : System.Management.Automation.Internal.Host.InternalHostUserInterface CurrentCulture : ru-RU CurrentUICulture : ru-RU PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy IsRunspacePushed : False Runspace : System.Management.Automation.Runspaces.LocalRunspace PS C:Windowssystem32> Get-ExecutionPolicy Unrestricted
В ISE (запущенном от имени администратора) сделал скрипт добавления пользователя в домен:
Import-Module activedirectory #Имя в оснастке dsa.msc $Name="vasyan" #Имя $GivenName="Василий" #Первая буква отчества $Initials="В" #Фамилия $SurName="Васильев" #Полное отображаемое имя $DisplayName="Васильев Василий Васильевич" #SamAccountname $SamAccountName="v.vasilyev" #UserPrincipalName $UserPrincipalName="v.vasilyev@nokogerra.local" #Email $EmailAddress="vvas@domain.ru" #Номер мобильного $MobilePhone="9236494338" #OU $Path="CN=Users,DC=nokogerra,DC=local" New-ADuser -Name $Name -SamAccountName $SamAccountName -Surname $Surname -GivenName $GivenName -DisplayName $DisplayName -ChangePasswordAtLogon $false -Company "somecompany" -Country ru -EmailAddress $EmailAddress -Enabled $true -MobilePhone $MobilePhone -PasswordNeverExpires $true -Path $Path -AccountPassword (ConvertTo-SecureString -AsPlainText "some_password" -Force) #Референсный пользователь, с которого берется членство в группах, которое будет применено к новому пользователю $groups=Get-ADPrincipalGroupMembership nokogerra foreach ($group in $groups) {Add-ADGroupMember -Identity $group -Members $SamAccountName} pause
При выполнении из ISE — отрабатывает, при попытке выполнить ps1 из контекстного меню файла (выполнить с помощью Powershell) получаю «Отказано в доступе», т.е. требуется запуск «от имени администратора», без отключения
UAC это как-то можно исправить?
И еще вопрос: при отработке части скрипта по добавлению пользователя в соответствующие группы получаю ошибку:
Add-ADGroupMember : Указанный пользователь уже является членом заданной группы, либо группа не может быть удалена, так как содержит к ак минимум одного пользователя C:UsersnokogerraDesktopadduser.ps1:25 знак:30 + foreach ($group in $groups) {Add-ADGroupMember -Identity $group -Members $SamAcc ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (CN=Пользователи...ogerra,DC=local:ADGroup) [Add-ADGroupMember], ADException + FullyQualifiedErrorId : ActiveDirectoryServer:1320,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember
Очевидно, что это из-за того, что пользователь уже состоит в группе «Пользователи домена» (в другие группы пользователь добавляется корректно). Можно на этапе foreach как-то исключить эту группу из обработки?
При работе с командлетами вносящими изменения в файловую систему (создание, изменение или удаление файлов и данных в них), может возникнуть ошибка
New-Item: Access to the path '...' is denied.
Пример команды, вызывающей данную ошибку:
New-Item c:test.txt
Эту же самую ошибку могут вызвать командлеты:
- Clear-Item
- New-Item
- Remove-Item
- Rename-Item
В сообщении ошибки сказано, что доступ к указанному пути отклонён. Причиной является недостаток прав на запись, изменение, удаление файла, например, из-за того, что вы не можете записывать в выбранную папку.
Чтобы исправить эту ошибку, нужно запустить PowerShell с правами администратора. Как это сделать смотрите в статье «Как запустить PowerShell с правами администратора».
Быстрый способ запустить PowerShell с правами администратора прямо в командной строке:
Start-Process PowerShell -Verb RunAs
Эта команда запустит версию PowerShell 5 или PowerShell 6 — в зависимости от того, что у вас установлено в системе по умолчанию. Чтобы запустить последнюю версию, которую вы установили вручную, то есть PowerShell 7, выполните команду:
Start-Process pwsh -Verb RunAs
Ошибка «Access to the path ‘…’ is denied» на Linux
На Linux может возникнуть такая же ошибка при выполнении аналогичных команд:
New-Item /test.txt
Текст ошибки:
New-Item: Access to the path '/test.txt' is denied.
Чтобы её исправить, запустите PowerShell с sudo:
sudo pwsh
В результате ошибка исчезнет и команды будут выполнять нужные вам действия:
Связанные статьи:
- Ошибка 0x800702e4 при запуске `C:Program FilesPowerShell7-previewpwsh.exe’ (РЕШЕНО) (75.6%)
- Как запустить PowerShell с правами администратора (75.6%)
- Как установить PowerShell в Linux (74.4%)
- Как проверить, запущен ли скрипт PowerShell или терминал PowerShell от имени администратора? (РЕШЕНО) (68.3%)
- Как получить справку по командам PowerShell (50%)
- Как проверить версию PowerShell в Windows 11 (RANDOM — 50%)
Рекомендуется Вам:
00aelx 1 / 1 / 1 Регистрация: 22.02.2014 Сообщений: 24 |
||||
1 |
||||
12.11.2018, 09:28. Показов 31425. Ответов 5 Метки нет (Все метки)
Нашел на просторах интернета вот такой скрипт:
Пытаюсь его запустить в powershell пишет отказано в доступе. Далее хочу его установить в планировщик задач, а планировщик задач только открывает его как текстовый документ. Как запустить этот скрипт от имени администратора, чтобы по двойному щелчку он запускался.
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
12.11.2018, 09:28 |
5 |
v_svitere 774 / 423 / 137 Регистрация: 03.06.2009 Сообщений: 1,223 Записей в блоге: 4 |
||||
12.11.2018, 09:57 |
2 |
|||
00aelx, Как залить его в планировщик задач чтобы он работал, а не запускался как текстовый файл? А как вы его запускаете через планировщик?
0 |
ilya0610 1 / 1 / 2 Регистрация: 18.11.2013 Сообщений: 337 |
||||
12.11.2018, 10:29 |
3 |
|||
00aelx,
Пытаюсь его запустить в powershell пишет отказано в доступе. введите команду
0 |
774 / 423 / 137 Регистрация: 03.06.2009 Сообщений: 1,223 Записей в блоге: 4 |
|
12.11.2018, 10:35 |
4 |
ilya0610,
0 |
162 / 74 / 23 Регистрация: 06.07.2017 Сообщений: 315 |
|
12.11.2018, 10:39 |
5 |
powershell -windowstyle hidden -exec bypass -file «myscript.ps1» Соответственно учетка от которой вы создаете задание должна иметь доступ до директории, в которой лежит скрипт.
0 |
774 / 423 / 137 Регистрация: 03.06.2009 Сообщений: 1,223 Записей в блоге: 4 |
|
12.11.2018, 10:45 |
6 |
kapitan_lyagysh,
0 |