MADISON, Wis. — It was a flashback to 2011: Hundreds of union members in hard hats and work boots waved signs under falling snow, denouncing Gov. Scott Walker and his fellow Republican lawmakers outside this Capitol building on Wednesday. Yet this time, their numbers were smaller, their chants softer.

As Mr. Walker builds a presidential run on his effort to take on unions four years ago, he is poised to deliver a second walloping blow to labor. After saying for months that an effort to advance so-called right-to-work legislation would be “a distraction” from dealing with larger issues like the state’s economy and job growth, Mr. Walker is now preparing to sign a measure — being fast-tracked through the Republican-held State Legislature — that would bar unions from requiring workers to pay the equivalent of dues.

The State Senate passed the bill, 17 to 15, mostly along party lines, Wednesday night after about eight hours of debate. As the results were announced and senators left the chamber, protesters chanted “Shame” from the balcony. The State Assembly is expected to take up the measure next week. Where Mr. Walker’s earlier high-profile strike against labor cut collective bargaining rights for most public-sector unions, this one is aimed at workers in the private sector. And where Mr. Walker led the drive in 2011, he has taken a far less publicly forceful role this time, saying only that he will sign a bill. Yet the political effect will be the same, burnishing Mr. Walker’s record as an unafraid foe of Big Labor, who has been able to prevail in a state where Democrats have won presidential elections.

The move has significant upsides for Mr. Walker, who has been cheered by conservatives for significantly diminishing the political power of public sector union numbers here. Leaders of some unions say membership has dropped by more than half since 2011. It would seal Wisconsin’s place on the issue, even as other states — like Missouri, where lawmakers are considering a similar provision — have moved more slowly. As roughly 2,000 union supporters protested outside the Capitol for a second day and a few people interrupted proceedings in the state Senate with angry objections, some seemed resigned to what was ahead.