Bring a large pot of salted water to a boil. Add the pasta and cook according to the package directions. Drain and set aside.
Meanwhile, melt the butter in a large skillet over medium-high heat. Add the mushrooms and sliced onions. Cook, stirring, until it starts to brown, about 3 minutes. Add the ham and cook, stirring occasionally, until slightly browned, about 8 minutes.
Reduce the heat to low, add the spinach and 1 inch pieces of onion. (You may need to add the spinach in batches until it wilts enough to add more.)
Add the hot pasta to the skillet and add in Alfredo sauce, toss until everything is well coated and combined. Serve with Parmesan on top.