Prove null $T^k$ = null $T$ and range $T^k$ = range $T$

First for $S$ self-adjoint: suppose $S^kx = 0$. Then

$$0 = \langle S^{k}x, S^{k-2}x \rangle = \langle S^{k-1}x, S^{k-1}x\rangle$$

so by positive definiteness of inner product, $S^{k-1}x = 0$, and we can continue down to $Sx=0$.

If $T$ is normal, suppose $T^kx=0$. Then

$$ (T^*T)^kx = (T^*)^k (T^kx) = 0$$

(The key is $(T^*T)^k = (T^*)^k T^k$ since $T$ is normal). So by the first part (since $T^*T$ is self adjoint)

$$0 = \langle T^* Tx, x \rangle = \langle Tx, Tx \rangle$$

so $Tx = 0$.

To show $\operatorname{Rg}(T^k)=\operatorname{Rg}(T)$, note using the above result,

$$\operatorname{Rg}(T^k) = \operatorname{Ker}((T^k)^*)^\perp = \operatorname{Ker}((T^*)^k)^\perp\\ = \operatorname{Ker}(T^*)^\perp = \operatorname{Rg}(T).$$

Comment: this says that any normal operator has the same kernel as any of its powers. If $T$ is normal, then $T-\lambda I$ is normal, which shows that $(T-\lambda I)^kx = 0 \Rightarrow (T-\lambda I)x=0$. This shows that any normal operator in finite dimensions is diagonalizable over $\mathbb{C}$. Some short additional work is needed to show it is orthogonally diagonalizable.