Я выполняю сценарий TCL, но мне нужно значение, которое называется сценарием Powershell, чтобы вернуть значение атрибута AD обратно в TCL. Я понятия не имею, как использовать TCLscript для вызова сценария Powershell или файла сценария PowerShell, но я нашел приведенный ниже образец, но не смог заставить его работать.
proc execPowershellCmd {cmd} {
set cmd "-command $cmd"
foreach chan {stdin stdout stderr} {
lassign [chan pipe] rd$chan wr$chan
}
if {[catch {
package require twapi_process
set cmd [string map [list \" \\\"] $cmd]
twapi::create_process [auto_execok powershell] -cmdline $cmd -showwindow hidden \
-inherithandles 1 -stdchannels [list $rdstdin $wrstdout $wrstderr]
} ret]} {
return [list -1 "" $ret]
}
chan close $wrstdin; chan close $rdstdin; chan close $wrstdout; chan close $wrstderr
foreach chan [list $rdstdout $rdstderr] {
chan configure $chan -encoding cp850 -blocking true; # -buffering full?; # -enc?
}
set out [read $rdstdout]; set err [read $rdstderr]
chan close $rdstdout; chan close $rdstderr
return [list [string compare $err ""] $out $err]
}