I follow this MSDN article to alter an existing stored procedure with PowerShell:
https://msdn.microsoft.com/en-us/library/ms162190.aspx
(No need to read that)
Inside this example the following line throws an error:
$sp = New-Object -TypeName Microsoft.SqlServer.Management.SMO.StoredProcedure -argumentlist $db, "GetUserPhoneForService"
The error is
New-Object : The type [Microsoft.SqlServer.Management.SMO.StoredProcedure] cannot be found. Be sure you loaded the assembly containing this type.
(I translated the error message from German. So the wording might be a bit different)
Other database actions like simple updates work without any problem.
System.Data.SqlClient.SqlCommandis something in the default .NET Framework, where the SMO objects are only there if Management Studio is installed in my experience.