如何从Cygwin内部执行Windows Runas命令

Jam*_*son 5 windows bash cygwin runas

如果我尝试从Cygwin内部使用Windows runas命令,则“输入密码”行将打印为标准输出,但它不会等待我在System.in中输入密码。

有没有解决的办法?

eel*_*EEz 4

我想我可以使用 2 个嵌套的命令提示符窗口弹出窗口来运行密码更改脚本,

cygstart cmd /c "runas /user:DOMAIN\\USER \"powershell %cd%\\changepw.ps1\" & pause"
Run Code Online (Sandbox Code Playgroud)

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)
Run Code Online (Sandbox Code Playgroud)