Я полагал, что я мог бы использовать 2 вложенного окно командной строки всплывающих окон для запуска пароля изменения сценария,
cygstart cmd /c "runas /user:DOMAIN\\USER \"powershell %cd%\\changepw.ps1\" & pause"
Сценарий changepw.ps1 следует,
# http://serverfault.com/questions/570476/how-can-a-standard-windows-user-change-their-password-from-the-command-line
# cygstart cmd /c "runas /user:DOMAIN\\USER \"powershell %cd%\\changepw.ps1\" & pause"
param (
[string]$oldPassword = $(Read-Host "Old password"),
[string]$newPassword = $(Read-Host "New password")
)
$ADSystemInfo = New-Object -ComObject ADSystemInfo
$type = $ADSystemInfo.GetType()
$user = [ADSI] "LDAP://$($type.InvokeMember('UserName', 'GetProperty', $null, $ADSystemInfo, $null))"
try {
$user.ChangePassword($oldPassword, $newPassword)
} catch [Exception] {
# echo $_.Exception.GetType().FullName, $_.Exception.Message
echo $_.Exception | format-list -force
}
write-host "Press any key to continue..."
[void][System.Console]::ReadKey($true)
Не удается запустить оболочка cygwin как администратор вместо этого? – devnull
Мне не нужно запускать оболочку Windows в качестве администратора, мне нужно выполнить ее как отдельную учетную запись с разными привилегиями. –
Тогда вы не можете запускать оболочку cygwin в качестве этой конкретной учетной записи? – anishsane