Schweinsteiger did not train the last two days and ran only briefly before feeling pain in his knee, said the Spaniard, chasing the domestic league and Cup double in his first season in charge.
"Schweini is injured. In the last game he had problems in the first half and this week he could not train," Guardiola told reporters in a joint news conference with Dortmund counterpart Juergen Klopp. "He is not playing."
Guardiola said he had also decided to leave top scorer Mario Mandzukic in Munich despite the Croatian being fit to play with reports of his departure after being on the bench often this season increasing.
"This was my decision. He was fit he could play but we have 18 players and I will play with them," he said. "It is my decision."
Bayern, already without Thiago Alcantara who underwent knee surgery on Thursday, are desperate to end the season on a high with a domestic double after their form nose-dived spectacularly following their title victory in March with seven games remaining.
They missed out on becoming the first team to successfully defend their Champions League title after being eliminated by Real Madrid in the semi-finals.
"This is a final and we want to win it. It is the final game of the season and it is a final. It is that simple," said Guardiola.
Dortmund are in fine form and beat Bayern 3-0 in the league last month to reclaim some bragging rights after their rivals' treble season last year which included beating Dortmund in the Champions League final.
"This is the biggest final you can play as it is the realistic goal at the end of the season," Klopp said. "And you have to beat Bayern either en route or in the final."
Their dress rehearsal in Berlin on Saturday was perfect with a 4-0 victory over Hertha Berlin and forward Robert Lewandowski becoming the league's top scorer following his two goals.
His return to the capital's Olympic stadium will be his last appearance with a Dortmund shirt as the Poland international will join Bayern next season.
Broadcast to a record 189 countries, the German Cup final is a repeat of the 2012 edition when Dortmund demolished Bayern 5-2 to win the trophy.
"The result of that game will give us a lot of strength for tomorrow's game and we hope it will end the same way tomorrow," Dortmund captain Sebastian Kehl said.
- Sports & Recreation
- Mario Mandzukic