Пользователь появляется в членах группы, но не получает права на ...Чтобы права появились, пользователю нужно перелогиниться - выйти из системы и снова зайти под своим именем. Это не зависит от Active Directory, это не зависит от Powershell. Тот же принцип работает, даже если пользователь локальный и вы добавите его в групу вручную без скриптов - перелогиниваться всё равно нужно, что права группы подействовали.
$templateuser='a.khramov'
$templatehours= Get-ADUser -Identity $templateuser -properties logonHours
Get-ADGroupmember "msk-VPN_Users" |foreach {Set-ADUSer $_.samaccountname -Replace @{logonHours = $templatehours.logonHours} }
systemctl restart
. У него все телодвижения происходят через врапперы, запускаемые местным питоном (см.).systemd
, а через shell/command
. Тогда точечные правила в судоерс проканают.Я пишу программу на c#, которая должна работать с этим самым PowerShell через стандартные потоки ввода/вывода
powershell -command "Start-Process "slmgr" -ArgumentList "/ipk W269N-WFGWX-YVC9B-4J6C9-T83GX" -Verb RunAs"
function Get-ResultFilePath {
param (
# Путь к файлу, который копируется
[Parameter(Mandatory = $true)]
[System.String]
$SourcePath,
# Путь к папке, в которую необходимо скопировать файл
[Parameter(Mandatory = $true)]
[System.String]
$DestinationFolder
)
# Вариант 1
$File = Get-Item -Path $SourcePath
$DestinationPath = Join-Path -Path $DestinationFolder -ChildPath "$($File.BaseName)$($File.Extension)"
$i = 1
While (Test-Path -Path $DestinationPath) {
$DestinationPath = Join-Path -Path $DestFolder -ChildPath ($File.BaseName, $File.Extension -join "($i)")
$i++
}
# Вариант 2
# $FileBaseName = [System.IO.Path]::GetFileNameWithoutExtension($SourcePath)
# $FileExtension = [System.IO.Path]::GetExtension($SourcePath)
# $DestinationPath = Join-Path -Path $DestinationFolder -ChildPath "$FileBaseName$FileExtension"
# $i = 1
# While (Test-Path -Path $DestinationPath) {
# $DestinationPath = Join-Path -Path $DestFolder -ChildPath ($FileBaseName, $FileExtension -join "($i)")
# $i++
# }
return $DestinationPath
}
$DestFolder = 'F:\tmp'
$Path = 'C:\tmp\FileName.pdf'
Copy-Item -Path $Path -Destination (Get-ResultFilePath -SourcePath $Path -DestinationFolder $DestFolder)
Set-ADUser -Identity $ADusername -LogonWorkstations $comparray
$ADusername - пользователь, $comparray - компьютер или набор компьютеров