Gunakan register parameter untuk pg_ctl program.
Direktori data tidak boleh disimpan di Program Files , lokasi %ProgramData% adalah misalnya pilihan yang bagus.
pg_ctl.exe register -N PostgreSQL -U some_windows_username -P windows_password -D "%ProgramData%/db_data" ...
Di Postgres versi yang lebih baru, akun Windows terpisah tidak lagi diperlukan, jadi yang berikut ini juga cukup
pg_ctl.exe register -N PostgreSQL -D "%ProgramData%/db_data" ...
Detailnya ada di manual:https://www.postgresql.org/docs/current/static/app-pg-ctl.html
Anda perlu memastikan direktori D:/Program Files/PostgreSQL/9.0.4/db_data memiliki hak istimewa yang benar untuk pengguna windows yang Anda tentukan dengan -U bendera.
Btw:menyimpan data program di Program Files adalah ide yang buruk . Anda harus memindahkan direktori data di suatu tempat di luar Program Files karena Program Files biasanya sangat dibatasi untuk pengguna biasa - dengan alasan yang sangat bagus.